株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。前回までの記事でSkyWayのJavaScriptでの動作確認を行いました。Piでの動作も確認出来ました。Piの遠隔操作をしてみようという内容です。PiのGPIOを操作するという内容です。Piでの遠隔操作について書きました。これらの記事で書いた方法はMQTTをインターネット上で利用して遠隔操作を行うという方法です。Pi内で利用して、インターネット上はSkyWayを利用します。この方法のメリットはSkyWayのP2Pのイメージの延長線で遠隔操作が出来るということです。直接的な遠隔操作のイメージになると思います。最終的にはリモート側で以下のように遠隔操作と映像モニターが出来ます。PiローカルでのMQTTの通信の確認です。Piローカルの部分です。Piと通信してGPIOを操作するということです。以下のような構成(キーボード、マウスもUSBで接続しています。Piに接続されたLEDのオンとオフを操作出来ます。Pi側ではPythonプログラムでMQTTのsubscribeをしています。Piにpublishします。これでGPIOを操作します。PiでMosquitto(Broker)をインストールします。mosquitto以下のように状態を確認します。activeが確認出来ます。status次にMosquittoクライアントをインストールします。mosquitto-clientsインストール時のスクリーンショットや基本的な動作確認は以下で書きました。必要な場合はこちらも参照して下さい。設定ファイルの編集(重要です。以下の内容を追記します。websocketsこれは、以下を指定しています。MQTTが1883番ポートWebSocketが9090番ポートこれがないとブラウザと通信出来ないので必ず指定しておきます。ポート番号は何でもいいですが、この番号が比較的既定のようです。ここから先はこのポート番号を前提にして進みます。PiのGPIO操作(Lチカ)のためのsubscribepython3のプログラムを作成して利用します。paho-mqttというライブラリを使用しますので以下のようにインストールしておきます。paho-mqtt以下のようなpythonプログラムを作成しました。on_messageclient.connect("localhost",1883,60)client.loop_forever()コメントが全くないですが、プログラムの説明は後にして先に動作確認をします。ここまでのmosquittoの準備が出来ているという前提でこのsubscribeプログラムを起動します。GPIOには何も接続されていなくていいです。待ちの状態になります。別のターミナルでpublishをします。ホスト、ポート、topicを指定してonというメッセージを送信します。subscribe側に戻ります。確かにメッセージを受け取りました。プログラムの説明を書きます。mqttの処理とgpioの処理で構成されています。mqttの操作はpaho-mqttのclientを利用しています。clientを生成してmqttのbrokerに対しての接続、切断時とメッセージ到着時の処理を準備してローカルのブローカーに接続して待機しています。gpioの処理はgpioを出力に設定して、clientのメッセージ到着時の処理で、onが来たらgpio21をonにしてoffが来たらgpio21をoffにしています。これでgpioにLEDを正確に接続しておけばLチカが出来ます。ローカル上で稼働するという前提でsslは考慮していないです。Pi側の準備は完了です。ここではターミナルからpublishして動作確認しましたが以下からはブラウザから同様のことをやります。以下のようなページを作成して利用可能なWebサーバに公開します。Webサーバはどこで稼働していても問題ないです。ボタンが2個あってLEDのオンとオフを想定しています。Piのpythonプログラムと同様にpaho-mqttのライブラリ(こちらはJavaScript)を利用しています。brokerと通信するためのclientを生成して(ポート番号はwebsocketの9090の方です。)接続時の処理、メッセージ到着時の処理を定義しています。今回はボタンからのメッセージ送信がメインですが、一応メッセージ到着時を想定して画面に表示するようにしています。GPIOのボタン処理ですが、mqttのclientで直接送信しています。このように直接送信が出来るのでプログラムも簡単になると思います。WebSocketを利用するポイントです。Pi上でブラウザから操作すると写真の構成でLEDのオンとオフが確認出来ました。これもローカル上で稼働するという前提でsslは考慮していないです。WebSocketでの動作が確認出来ました。次回は今回の操作をSkyWayを経由して遠隔のブラウザから操作してカメラでモニタしてみます。OSでは、初期状態ではSSHは無効になっています。そのため、初期設定(raspi-config)でSSHを有効にする必要があります。Pi(Raspbian)でwifiを使って無線LANに接続してみました。その際のハードウェアや接続の設定についてです。NTTコミュニケーションズ株式会社提供のリアルタイムコミュニケーションのためのプラットフォームであるSkyWayを使ってみます。前回は概要的な内容を書きました。Piでタッチスクリーン付モニタを使ってみました。タッチスクリーン付です。株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。