Node-RED Advent Calendar 2017 8日目の記事です。
この記事を書いた私は組み込みソフトのエンジニアで、Webサービスやスクリプト言語には詳しくありません。もし間違ったことを書いていた場合はご指摘ください。
#ハードウェアとNode-REDの連携
Web上またはローカルマシン上で動作するNode-REDと実物のハードウェアを連携させるには、さまざまな方法があると思いますが、ここではMilkcocoaを使った例を紹介します。
Milkcocoaはリアルタイムにデータのやり取りができるBaaSですが、Node-REDにもノードがありますし、今回題材としたMbedにも私が作ったライブラリがあります。
リアルタイム且つインターネット経由でデータのやり取りができるので、最適だと思いました。
(自社のサービスなので、推してるわけではありませんw)
#作ったもの
10月末に社内でハロウィンパーティーがあったので、ドラキュラに仮装したマントにLEDテープを取り付け、Twitterのリツイート数に応じて点灯していくというものを作りました。
設定したハッシュタグ付きのツイートをすれば点灯するLEDがどんどん増えていく様になっています。
反応を楽しみにツイートしてもらえば、イベントの情報拡散にもなります。
#仕組み
###ハードウェア側
使ったのはmbed LPC1768と私が設計して、ランニングエレクトロニクスで製造販売されているJKsoft Blue mbed Boardです。
JKsoft Blue mbed BoardはテープLEDの駆動回路とバッテリー用の昇圧回路等などが搭載されているので、用途にちょうど合いました。(自分が設計したものなので、合わせてるんですがw)
有線LANのインターフェースしかないので、有線LAN-無線LANコンバータを使ってます。そのUSBの電源はJKsoft Blue mbed BoardのUSBコネクタから取れるようになっています。
ハード側のコードは要望があれば公開しますが、Milkcocoaのライブラリを使ってMilkcocoaの通知があったら変数をカウントアップして、その値でJKsoft Blue mbed BoardのライブラリLEDを点灯する数を決めているだけです。
###Node-RED側
こちらもシンプルです。次のフローになります。
Twitterノードをハッシュタグ付きツイートがトリガになるように設定して、Milkcocoaノードに入れられるJSONデータに変換してるだけです。
Twitter側の情報はトリガだけしかいらないので、JSONのデータは固定の値を作るようにFunctionノードに数行書いてあるだけです。
#最後に
冒頭にも書きましたが、Webサービスやスクリプト言語には詳しくありません。
しかし、Node-REDを使うと繋ぐだけで簡単に作ることができました。