RPi + Node.js を Arduinoと連携させて流行りの IoT をやって見ようと考え連携方法について事前勉強しています。
- [RPi + Node.js] —–<USB.Serial>——[Arduino]
- Serialportモジュールをインストールする。
参考サイト1:https://www.npmjs.com/package/serialport
参考サイト2:https://github.com/voodootikigod/node-serialport - RPiとArduinoに独自の通信プログラムを書く。
- ArduinoでFirmataを走らせRPi側でfirmataプロトコルのプログラムを自前で書く
- Serialportモジュールをインストールする。
- [RPi + Node.js] —–<johnny-five>——[Arduino]
- johnny-fiveモジュールを使う。
参考サイト:https://www.npmjs.com/package/johnny-five - johnny-fiveモジュールはArduinoとの通信にfirmataプロトコルを使っている。
- io-pluginを追加することでjohnny-fiveでRPiのGPIOなども操作することができる。
参考サイト:http://qiita.com/masato/items/55847fd24b77f1b19222 - O’ReillyのJavaScript Roboticsに利用例がたくさん記載さあれている。
- JSconf(javascript系カンファレンス)でハード制御の研究発表にはjohnny-fiveを使っているのが圧倒的に多い。
- Node.jsからモノを制御するときの,ほぼデファクトスタンダード。
- johnny-fiveモジュールを使う。
- [RPi + Node.js] —–<Firmata>——[Arduino]
- arduino-firmataモジュールを使う。
参考サイト:http://shokai.org/blog/archives/8559
- arduino-firmataモジュールを使う。
- [RPi + Node.js] —–<I2C>——[Arduino] / [I2C device]
- I2Cモジュールを使う。
参考サイト:https://www.npmjs.com/package/i2c - request,asyncモジュールも必要
- 具体例:https://www.joyzo.co.jp/blog/618
- I2Cモジュールを使う。
- [RPi + Node.js]<GPIO>—— Device
- GPIOのビット入出力で直接デバイスを制御してIoT
- GPIOに結び付けられたファイルにデータを書く(出力)
- Googleで検索すると先行例が沢山ある。
- Node.jsのモジュールも沢山ある。
- リアルタイムWebアプリ
- Socket.ioを使う
http://socket.io/ - 検索すると先行事例がたくさんある。
- Socket.ioを使う
2015.12.08 update