sshdが起動しているサーバーにArduino Firmata on Rubyをインストールして、firmataをインストールしたArduinoを刺すだけでok


Arduinoの準備

Arduino IDEで [File] -> [Examples] -> [Firmata] -> [StandardFirmata] を書き込む


サーバー側の準備

ArduinoをUSBポートに刺す。


rubyのarduino_firmata gemをインストールする。
sudo gem install arduino_firmata
arduino_firmata --help
arduino_firmata gemをインストールすると、arduino_firmataという実行コマンドが使えるようになる。

arduino_firmata analog_read 1
これだけでanalog 1の値が読める。

arduino_firmata servo_write 11, 135
11ピンに接続したサーボモータが135度に回転させる。
コマンドからarduinoの基本的な機能は全部使える。


手元のMacからサーバーのArduinoを動かす

sshコマンドプロキシでセンサー読める
ssh user@example.com arduino_firmata analog_read 0
sshは、「ssh 接続先 コマンド」でサーバーにコマンドを実行させて結果を得てすぐ切断する事ができる。
arduino_firmataコマンドと組み合わせれば、全くプログラム書かずにコマンド1行で家のサーバーに刺さってるArduinoのCdSで明るさが取得したり、サーボモーターを動かしたりできる。


その他の例

例えばtweetさせたり
echo "明るさ `arduino_firmata analog_read 0`" | tw --pipe
Twを使ってる




Ruby以外の言語からでもセンサーを読むぐらいならできるし、cronに組み込んだりもできるし、そこそこ便利なのでは