安価なマイコンボード「Arduino」とLinuxサーバーを組み合わせ、家電を制御してみましょう。前回全体像を説明した、出先でスマートフォンなどから手動でエアコンをON/OFFしたり、部屋の気温が高くなったとき自動でエアコンをつけたりするシステムです。ECサイトの特売情報もチェックして、目覚ましを鳴らします。それでは、製作に取りかかりましょう。
それではまず、自宅に設置するマイコンボードを製作します。
Arduinoは、非常に安価ながら、簡単にネットワーク通信ができます。2011年11月に発表されたバージョン1.0でDHCPに対応し、LANにつなぐだけで利用できるようになりました。
Arduinoの基本機能だけを実装したボードが「Arduino Uno」として販売されています。それに追加ボードの「イーサネットシールド」を取り付けると、イーサネット通信の機能を付加できます(写真2)。多様なシールドが販売されていて、どれもArduinoボードの上からソケットに差し込むだけで使えます。現在は、それらを1枚にまとめた割安な「Arduino Ethernet」が販売されているので、今回はそれを使います。取り付けるセンサーなどの部品一覧を表1に示しました。
部品名 | 購入価格 | 購入場所 |
---|---|---|
Arduino Ethernet | 5020円 | スイッチサイエンス |
3色LED OSTA5131A | 80円 | 秋月電子 |
抵抗 1kΩ | 100本100円 | 秋月電子 |
気温センサー LM61CIZ | 4個200円 | 秋月電子 |
ブザー PB04-SE12SHPR | 100円 | 秋月電子 |
赤外線LED OSI5LA5113A | 10個100円 | 秋月電子 |
赤外線センサー OSRB38C9AA | 2個100円 | 秋月電子 |
シールド基板 UB-ARD01WH | 570円 | 千石電商 |
部品を実際にArduinoへ取り付けていく前に、ネット接続を体感してみましょう。意外に手軽なことが分かるでしょう。
Webサーバーにアクセス
ネットワーク通信は、Arduinoで充実している優れたライブラリを使って簡単に実装できます。図2に示したように、今回はArduinoからLinuxサーバーのWebサーバーに対して、定期的に室温を送信します。試しに、ArduinoからWebサーバーにアクセスするプログラムを動かしてみましょう。
開発用PCを用意して、Arduinoの統合開発環境(IDE)を導入してください。Ubuntuならコマンド1個で済みます。
$ sudo apt-get install arduino

IDEはWindows版やMac版もあり、操作方法はほぼ同じです。筆者はMacを使っているので、画面例はMacで示します。