ArduinoでLivedoor Reader未読数チェックの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で公開中
Arduino側で指定しているldr.cgi?user=XX&thr=100の部分を書き換えれば、僕の借りているサーバ経由にはなるが、Arduino+Ethernet Shieldだけで動作チェックにはなる。ただし、あまり頻繁にやると僕がLivedoorとさくらインターネットから締め出されるので、豪快にやりたい方はご自身の環境でお願いします。
【AD】
一応、ネットワークプログラミングなので、飛んでいるパケットをWiresharkなどで見た方がデバッグがはかどると思います。変に再送しまくっても相手に迷惑ですし。
| パケットキャプチャ入門―LANアナライザWireshark活用術 | |
![]() |
竹下 恵 おすすめ平均 ![]() ネットワークを視覚的に理解 トラブルシューティングやケーススタディーがもう少しほしかった WIRESHARKのリファレンス本 入門書です 自習用には申し分ない、中高生にもどうぞ。Amazonで詳しく見る by G-Tools |
Ethernet Shieldから出ているパケットを見るために必要なミラーリング対応のHUB。自分のPCをサーバにする場合はサーバで見ればいいので不要ですが、外部のサーバとArduinoを喋らせる場合は必須。
![]() |
アライドテレシス CentreCOM FS808TP V1 レイヤー2スイッチ(10/100M) RoHS版 0014R アライドテレシス 売り上げランキング : 54632 Amazonで詳しく見る by G-Tools |
洋書で、かつ予約受付中だけど、凄く気になる。
![]() |
Programming Interactivity: Unlock the Power of Arduino, Processing, and Openframeworks Joshua Noble Oreilly & Associates Inc 2009-07 売り上げランキング : 5201 Amazonで詳しく見る by G-Tools |


ネットワークを視覚的に理解
入門書です













