「Node-RED」がつなげるWeb系エンジニアとIoT:IoT観測所(41)(2/3 ページ)
IoTソリューションの開発に用いられているフローベースの開発環境「Node-RED」。IBMによって生み出された後、2016年10月にLinux Foundationに移管されてから、一気に普及が進んでいる。
Webサービス開発環境に見えなくもないが……
具体的にどんな作業になるのか?という実例は、Node-REDの「Getting Started」に簡単に触れられている。英語がちょっと、という方はNode-RED User Group Japanによる日本語版の「はじめてのFlow」と「Flow作成」をご覧いただくのが良いと思う(余談だが、英語版だとそれぞれ“Creating your first flow”と"“Creating your second flow”で分かりやすいのだが、日本語版の題はちょっと混乱しそうな気がする)。
これらの作例は、あまりIoT(モノのインターネット)と関係ないというか、むしろWebサービス的なサンプルしか掲載されていないので、どこがIoT? と思われる方も少なくないだろう。日本語版の作例だとここから英国の電力需要と周波数/時間のデータを取得する(またまた余談だが、このサービス、原稿執筆時点ではサーバのエラーなのかまともにデータが返ってこない)するためのものだし、英語版だとここから米国の今週の地震情報をCSVの形で取得するというものだからだ。
もちろん、こうしたWebベースのサービスでもある程度はIoTらしいものを構築できる(センサーノード上にWebサーバを立てて、そこをアクセスするとデータが取れる様にすればいいからだ)が、実はもうちょっと直接的な方法もある。先にターゲットデバイスにArduinoが含まれていると書いたが、さすがにArduino上でNode.jsを動かし、さらにその上でNode-REDを動かすのはかなり無理がある。その代わりに用意されているのが「Firmata」と「Johnny-Five」である。Firmata用のファームウェアをArduinoにロードする(これはArduino IDEで行える)と、ArduinoはCOMポートでつながるリモートI/Oボックスのように扱える。
一方、ホスト(ArduinoがつながっているPC)の方にArduino nodeをインストールすると、Arduinoの入出力をNode-REDから制御できるようになる。このサンプルは、Node-REDからArduinoを使ってLチカ(LED点滅)させるものだが、単に任意のピンへの出力を行うだけではなく、入力も可能である。このため、Arduinoに対応したセンサー類をつなげて、それをNode-REDで読み取ることも同様に可能である。
Johnny-Fiveも同様にArduinoをリモートI/Oボックスのように扱うものだが、接続がCOMポートというよりもI2C風になっており、また複数のArduinoにも対応する。そもそもJohnny-Fiveは、Arduino用ではなくさまざまなボードに対応している(Raspberry Piもその1つ)。例えば、Raspberry Pi上でNode-REDを動かして、ここにJohnny-FiveのNodeをインストールすれば、Raspberry Piの入出力ポートをNode-REDから直接アクセスできるようになり、これを使ってデータの収集とか周辺機器の制御といったことを行えるようになる。このあたりで、やっとIoTっぽくなってきた訳だ。
Copyright © ITmedia, Inc. All Rights Reserved.