IoTの動作として、デバイス側に最終的にアクションを起こす必要があるのでデモとしてはRaspberry PiのLEDを点灯させて見みます。

単純に遊んでも普通なので敢えて Node-RED でLチカをしてみました。

Raspberry Pi上で、起動させたNode−REDにはGPIOを操作するための「ノード」が用意されています。(これ以外のも公式サイトにはライブラリがありますので探して見てください)

NewImage

今回は、OutPutとしてGPIOをON/OFFしてみたいと思います。
配線はよくあるLEDを取り付けるものなのでここでは割愛したいと思います。

IMG 3288

単純にNode-REDの話になりますが、for-loopをするようなものがないのとLEDを点滅させるためにSleep(1)のような型式で動かすのであれば Inject のノードで同じようなことができます。

NewImage

OutputのGPIOについては以下の様な設定になっています。

NewImage

ON/OFFは、GPIOのNodeに対して 0 または 1を送ると良いので偶数・奇数判定してその数字を送っています。拙いコードですがNode-REDのコードを貼っておきますので興味のある方はImportしてみてください。

  • Funtion(Even,odd Number)の関数
if( context.global.i == undefined ) context.global.i = 0;
context.global.i += 1;
if (context.global.i %2 === 0 ){
    msg.payload = 0;
} else {
    msg.payload = 1;
}
return msg;
  • Node−RED全体のコード
[{"id":"daee5f58.2511a","type":"rpi-gpio out","name":"LED","pin":"40","set":"","level":"0","out":"out","x":404,"y":113,"z":"40f1e45a.bf0e1c","wires":[]},{"id":"38211be8.c7dee4","type":"inject","name":"","topic":"","payload":"0","payloadType":"none","repeat":"","crontab":"","once":false,"x":150,"y":84,"z":"40f1e45a.bf0e1c","wires":[["3dbe910f.c2416e"]]},{"id":"cf5499d0.30ab68","type":"debug","name":"","active":true,"console":"false","complete":"false","x":423,"y":183,"z":"40f1e45a.bf0e1c","wires":[]},{"id":"3dbe910f.c2416e","type":"function","name":"even,odd number","func":"if( context.global.i == undefined ) context.global.i = 0;\n\ncontext.global.i += 1;\n//node.log(context.global.i);\nif (context.global.i %2 === 0 ){\n    msg.payload = 0;\n} else {\n    msg.payload = 1;\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":242,"y":169,"z":"40f1e45a.bf0e1c","wires":[["cf5499d0.30ab68","daee5f58.2511a"]]}]

特に難しいことはなくLチカが出てきてよかったです。GPIOを制御できますのである程度これですすめる事ができそうです。デモとしてはBluemix側で処理をしたうえで最終的にこのLEDを光らせる事で反応を表現して行きたいと思います。

Node-REDではGPIOをこのように操作することができるので非常に便利です。センサー等はi2C経由で取得することも多いので別途ノードの導入が必要かもしれません。また例えば温度センサーのBMP085などは個別に node-red-contrib-bmp085 というノードもあったりするので是非 npmライブラリを探してみることをお勧めします。

Raspberry Pi + SORACOM + Bluemix のIoTデモ環境構築

  1. Raspberry Pi + L-03D + SORACOM SIM で通信を行う
  2. Raspberry PiからSORACOM Beam経由でBluemixのMQTTへデータ送信を行う
  3. Raspberry PiのLEDを Node-RED を使ってLチカする
  4. SORACOM Beam を利用してMQTTプロトコル経由でIMSI情報を付与してみる
  5. MQTT経由のデータをSORACOM APIでSIM単位の認証/受信したデータをCloudantに格納
  6. Cloudantに格納したデータを可視化