20100903

Archiduino Project - vol.1

建築系におけるArduino利用計画としての「Archiduino Project」。

センサノードからデータを受信する「ハブノード」の外観を添付する。データの送信エラーを警告するための圧電ブザーを搭載し、同時に、送信成功を緑色LED、送信失敗を赤色LEDの点灯で知らせる。

ノードは4階建てで、下から順に、Arduino、Ethernet Shield、XBee Shield、自作基盤、である。1階のArduino基盤と3階のXBee基盤との間には、自作のケーブルによってICSP間が連結されている。各階の階高が非常に狭いので、直角ピンヘッダなどをうまく工夫して作成している。

4階のエラー警告用の自作基盤は、圧電ブザーとLEDいずれもがArduinoのdigitalOutを一定の間隔でON/OFFするだけで鳴動したり点灯したりするので、プログラム自体も大して複雑ではない。各端子の+極をdigital I/O端子につなぎ、-極をGNDにつなぐだけである。

Arduinoで走らせるSketchにはちょっと工夫を施した。Arduinoに最初から添付されているEthernet用のプログラムは、サーバのIPアドレスが固定である事が前提となったものであるが、必ずしも静的アドレスであるとは限らない。つまり、いわゆるURLからIPアドレスを逆引きする「名前解決」を実装する必要がある。

また、ハブノードのネットワークに対する柔軟性を担保するため、ローカルアドレスを固定するのではなく、ネットワークないのDHCPサーバから動的にアドレスを受け取るような仕様にした。つまり、ハブノードにEthernetケーブルをつなぎ、AC電源をつなぐだけで機能するようにした。

センサノードは随時ハブノードに対してデータを送信するが、ハブノードはこれを受け取り、適当な書式に形を整えて、データ記録用サーバにデータを送信する。送信の方式はHTTPのGETメソッドを用いている。この形式を採用したのは、単に実装が簡単だったからという事のほかには理由がない。

データ記録用サーバにはこのGETで送られたデータを受信し、ファイルに記録するためのプログラムが設置されている。特にこれといった工夫はない。