« Arduinoのシリアル出力をRubyで処理してみた | Main | ArduinoでLivedoor Reader未読数チェックのEthernet Shield版 »

2009.07.21

Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させる

前にArduinoからPC(MacBook)へのシリアル通信について書いた(その1その2)。例えばArduinoに接続した加速度センサの値を、PCに処理させたいときに使える。

逆に、PCからArduinoにシリアルで何かを送ってArduinoに仕事をさせることはできないかと考えてみた。

で、具体的な例として、Livedoor Readerの未読数を下記のURLから取得するスクリプト(Rubyとか)をPC上で定期的に走らせ

http://rpc.reader.livedoor.com/notify?user=<userId>

未読が100件以上であれば、PCからArduinoにUSB経由のシリアル通信で送信する。Rubyであれば、下記のように書ける。(ruby-serialportのインストールが必要)

port = "/dev/cu.usbserial-A7006SUC"
sp = SerialPort.new(port,9600,8,1,SerialPort::NONE)
sp.puts(1)
sp.close

Arduino側はSerial.read()で読み込むのだが、この関数は最初の1バイトしか読めないので、LEDを光らせたいときは「1」、消したいときは「0」を送信するということにした。

ソースは、いつも通りgithubに置いておく。

http://gist.github.com/150230

Rubyのスクリプトをcronで定期的に回せば、未読数が100件以上のときだけLEDが光る。LEDを消したいときはArduino の基盤上のリセットボタンを押せばよい。なぜかArduinoにUSBが刺さっているだけなくArduino IDEでシリアルモニタを開いていないと動いてくれないが、これは仕様だろうか。

もちろん、Livedoor Readerの未読数に限らず、PCで(もしくはRubyで)条件判定できるものであれば何でもよい。流行ものとしては

  • twitterのダイレクトメッセージに反応してみる
  • WebHookに反応してみる

なんてことが考えられるが、そもそもPCが稼働していなければいけないのは面倒だと思う。PCを常時起動しなくてもすむよう、Ethernetシールドを試してみようか。

【追記】

実際に試してみました。→こちら

Arduinoイーサネット・シールド Arduinoイーサネット・シールド

スイッチサイエンス 
売り上げランキング : 11038

Amazonで詳しく見る
by G-Tools

|

« Arduinoのシリアル出力をRubyで処理してみた | Main | ArduinoでLivedoor Reader未読数チェックのEthernet Shield版 »

自作」カテゴリの記事

Arduino」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させる:

« Arduinoのシリアル出力をRubyで処理してみた | Main | ArduinoでLivedoor Reader未読数チェックのEthernet Shield版 »