「Node-RED」がつなげるWeb系エンジニアとIoTIoT観測所(41)(2/3 ページ)

» 2018年01月31日 10時00分 公開
[大原雄介MONOist]

Webサービス開発環境に見えなくもないが……

 具体的にどんな作業になるのか?という実例は、Node-REDの「Getting Started」に簡単に触れられている。英語がちょっと、という方はNode-RED User Group Japanによる日本語版の「はじめてのFlow」と「Flow作成」をご覧いただくのが良いと思う(余談だが、英語版だとそれぞれ“Creating your first flow”と"“Creating your second flow”で分かりやすいのだが、日本語版の題はちょっと混乱しそうな気がする)。

図1 図1 Node-REDの「Getting Started」(クリックでWebサイトへ)

 これらの作例は、あまり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っぽくなってきた訳だ。

関連キーワード

IoT | IBM | 開発環境 | Node.js | Webサービス | Linux Foundation


Copyright © ITmedia, Inc. All Rights Reserved.