mbed
milkcocoa
node-red

ハードウェアとの連携

Node-RED Advent Calendar 2017 8日目の記事です。
この記事を書いた私は組み込みソフトのエンジニアで、Webサービスやスクリプト言語には詳しくありません。もし間違ったことを書いていた場合はご指摘ください。

ハードウェアとNode-REDの連携

Web上またはローカルマシン上で動作するNode-REDと実物のハードウェアを連携させるには、さまざまな方法があると思いますが、ここではMilkcocoaを使った例を紹介します。
Milkcocoaはリアルタイムにデータのやり取りができるBaaSですが、Node-REDにもノードがありますし、今回題材としたMbedにも私が作ったライブラリがあります。
リアルタイム且つインターネット経由でデータのやり取りができるので、最適だと思いました。
(自社のサービスなので、推してるわけではありませんw)

作ったもの

10月末に社内でハロウィンパーティーがあったので、ドラキュラに仮装したマントにLEDテープを取り付け、Twitterのリツイート数に応じて点灯していくというものを作りました。

image.png

設定したハッシュタグ付きのツイートをすれば点灯するLEDがどんどん増えていく様になっています。
反応を楽しみにツイートしてもらえば、イベントの情報拡散にもなります。

仕組み

ハードウェア側

使ったのはmbed LPC1768と私が設計して、ランニングエレクトロニクスで製造販売されているJKsoft Blue mbed Boardです。
image.png

JKsoft Blue mbed BoardはテープLEDの駆動回路とバッテリー用の昇圧回路等などが搭載されているので、用途にちょうど合いました。(自分が設計したものなので、合わせてるんですがw)
有線LANのインターフェースしかないので、有線LAN-無線LANコンバータを使ってます。そのUSBの電源はJKsoft Blue mbed BoardのUSBコネクタから取れるようになっています。
ハード側のコードは要望があれば公開しますが、Milkcocoaのライブラリを使ってMilkcocoaの通知があったら変数をカウントアップして、その値でJKsoft Blue mbed BoardのライブラリLEDを点灯する数を決めているだけです。

Node-RED側

こちらもシンプルです。次のフローになります。
image.png
Twitterノードをハッシュタグ付きツイートがトリガになるように設定して、Milkcocoaノードに入れられるJSONデータに変換してるだけです。
Twitter側の情報はトリガだけしかいらないので、JSONのデータは固定の値を作るようにFunctionノードに数行書いてあるだけです。

最後に

冒頭にも書きましたが、Webサービスやスクリプト言語には詳しくありません。
しかし、Node-REDを使うと繋ぐだけで簡単に作ることができました。