« Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させる | Main | Arduino+Ethernet ShieldがiPod nanoのケースに収まる件 »

2009.07.25

ArduinoでLivedoor Reader未読数チェックのEthernet Shield版

Ethernet_shield

ArduinoにTCP/IPを喋らせるEthernet Shieldというのがあるのは知っていたが、ちょっと高いし「TCP/IPなんてパソコンに喋らせればいいじゃん」と思っていた。ただ、Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させるを作りながら、未読チェックのためだけにパソコンを起動させておくのも逆に面倒なので、習作のつもりでEthernet Shiled版を作ってみた。

Rubyなどでネットワークプログラムを書くのと比べ

  • 自身のIPと接続先のIPを指定する。DNSは引けない
    (接続先がレンタルサーバなどバーチャルホストの場合、HOSTヘッダを指定する)
  • サーバからのレスポンスはヘッダ部もボディ部も全て受け取り、自分で処理する
  • 1バイトごとに1パケットで送ってしまう。相手によっては、ちょっと顰蹙

といったところでハードルがある。ArduinoでTwitterにポストするのが人気なのは、レスポンスを処理するのに苦労しなくても、投げっぱなしで面白いものになるからだろう。

それはともかく、LEDを点灯するだけなので、

  • Livedoor Readerの未読が100以上であれば1を返すCGIをレンタルサーバ上に置き、
  • Arduino側はHTTPレスポンスを空行が来るまで読み飛ばし、ボディ部の最初が1のときLEDを点灯

というコードを書いた。小型ブレッドボードもEthernet Shieldにすっぽり収まっていい感じ。30分に1回チェックに行くだけなので「おお、快適!」という感じはしないが、パソコンを触る前に「パソコンを立ち上げても、どうせ見るニュースは少ないんだよな」と確認できるのは、ジワジワと手放せないものになってくるんじゃないだろうか。

ソースは相変わらずgistで公開中

http://gist.github.com/154718

Arduino側で指定しているldr.cgi?user=XX&thr=100の部分を書き換えれば、僕の借りているサーバ経由にはなるが、Arduino+Ethernet Shieldだけで動作チェックにはなる。ただし、あまり頻繁にやると僕がLivedoorとさくらインターネットから締め出されるので、豪快にやりたい方はご自身の環境でお願いします。

【AD】

一応、ネットワークプログラミングなので、飛んでいるパケットをWiresharkなどで見た方がデバッグがはかどると思います。変に再送しまくっても相手に迷惑ですし。

パケットキャプチャ入門―LANアナライザWireshark活用術
パケットキャプチャ入門―LANアナライザWireshark活用術 竹下 恵

おすすめ平均
starsネットワークを視覚的に理解
starsトラブルシューティングやケーススタディーがもう少しほしかった
starsWIRESHARKのリファレンス本
stars入門書です
stars自習用には申し分ない、中高生にもどうぞ。

Amazonで詳しく見る
by G-Tools

Ethernet Shieldから出ているパケットを見るために必要なミラーリング対応のHUB。自分のPCをサーバにする場合はサーバで見ればいいので不要ですが、外部のサーバとArduinoを喋らせる場合は必須。

アライドテレシス CentreCOM FS808TP V1 レイヤー2スイッチ(10/100M) RoHS版 0014R アライドテレシス CentreCOM FS808TP V1 レイヤー2スイッチ(10/100M) RoHS版 0014R

アライドテレシス 
売り上げランキング : 54632

Amazonで詳しく見る
by G-Tools

洋書で、かつ予約受付中だけど、凄く気になる。

Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks
Joshua Noble

Oreilly & Associates Inc  2009-07
売り上げランキング : 5201

Amazonで詳しく見る
by G-Tools

|

« Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させる | Main | Arduino+Ethernet ShieldがiPod nanoのケースに収まる件 »

自作」カテゴリの記事

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 ArduinoでLivedoor Reader未読数チェックのEthernet Shield版:

« Livedoor Readerの未読数が100件以上のときにArduinoでLEDを点灯させる | Main | Arduino+Ethernet ShieldがiPod nanoのケースに収まる件 »