RPi + Node.js を Arduinoと連携させて流行りの IoT をやって見ようと考え連携方法について事前勉強しています。

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

2015.12.08 update