Aruduino のイーサネットシールドでHTTP通信(GET受信)
Aruduino uno 3を兄上に紹介されたので、購入してみた。
ついでに、イーサネットシールドも共立電子で購入。
驚く程簡単にAruduinoは、HTTPサーバに変身をする。
なんと、スニペットの様に、例文がIDEの中に入っているので、キーボードを一切打たずにサーバになる。すごい。
で、HTTP通信ができるとなると、HTTPサーバを作りたくなるというのが、人情というもの。
こうなると、結構面倒で昔のcgi(C言語)の様な香りがする。面倒で一からフルスクラッチするには心が折れる・・・。
そこで、そのあたりのくだりは、別のサイトをそのまま頂戴することにした。
http://cubic9.com/Devel/%C5%C5%BB%D2%B9%A9%BA%EE/Arduino/%C0%D6%B3%B0%C0%FE%B3%D8%BD%AC%A5%EA%A5%E2%A5%B3%A5%F3R2-D2/
こんなサイトとか、超参考にさせてもらった。
というか、これを作りたくてAruduinoを勉強しようと思った訳なので、これで完成となるのだが、
一方で、ソースコードを読んでみると、HTTP通信でGet受信する際、Irパケット以外の情報を取得していない仕様となっている。
個人的にはHTTPのGetリクエストには、すべてを受信して、あとでプログラムの方で処理をさせたいと考えていた。
例えば、
abc.html?abc=10&def=20&ghi=TEST
とかで送られると、
abc | 10
def | 20
ghi |test
といった感じで配列とかに格納したかった。
そこで、上記のGETリクエストの文字列からAruduinoで格納するためのプログラムを書くことに。
本当に久しぶりのC言語で懐かしいが、やっぱりポインタがややこしい。
超汚いコードになったが、一応動くはず。MACのgccで作ったので、もしかしたらAruduinoでは動いていたかも。