konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【Xi IoTで映えるデモがしたい 第18回】Data Pipelineにつなげてみる

RasPi+BrickPiからどうやらPubできているような感じを確認できたので、今回はXi IoT Pipelineでの動きを見てみたいと思います

LEGOをスマートファクトリー化する道のり

  1. 画像取得
  2. MQTT送信(Publish)
  3. Xi IoT Data Pipelineで MQTT受信(Subscribe) ←今回はココ
  4. Xi IoT Data Pipelineで画像処理して送信(Publish)
  5. 管理画面を作って確認(Subscribe/Publish)
  6. 結果に応じてモーター制御

では Data Pipeline で、Subして何らかの処理を行ってみたいと思います
処理したい内容のFunctionを作って、この真ん中の「Transformation」のところに配置してやります

f:id:konchangakita:20191218031144p:plain
Data Pipelineの画面

Functionをつくるのは、作ったプロジェクトの「Apps & Data」-「functions」を選んで Create

f:id:konchangakita:20191218004443p:plain    f:id:konchangakita:20191218011501p:plain:w360
今回はXi IoTであらかじめ用意されている Tensorflow Pythonの環境で実装してみます

  • Name: picamera_receive
  • Project: 固定
  • Language: Python
  • Runtime Environment: Tensorflow Python


ここにコードを書き込みます

f:id:konchangakita:20191218011629p:plain
function実装

今回は受信確認だけを行いたいので、受け取ったメッセージをそのまま返すサンプルコード


Data Pipeline画面で今作ったfunctionを指定してやります
この時のOutputのEndpoint NameがData Pipelineから送信される(Subscribe)トピック名になります
この場合は「mqtt-test」

f:id:konchangakita:20191218032014p:plain
Data Pipelineの画面


Data PipelineからOutputされてくるMQTTを受け取ります(Publish)
RasPi+BrickPi上にPub用のpythonコード作ってやります。トピック名は「mqtt-test」で



無事受け取れました!

$ python3 picamera_mqtt_sub_test.py
mqtt-test - b'{"SherlockTimestamp":1576605847212,"msg":"/9j/4QFWR~


次回、functionの中で使える関数についてもう少しみてみることにします