この夏,チャレンジ!中学生でも開発可能なM2Mシステム Part2 ―― 3G通信モジュールとArduinoはこう使う![技術編]
Tech Villageでは,8月23日(金)応募締め切りの「3Gシールド・アイデア・コンテスト」と9月7日(土)開催の「3Gシールド・カンファレンス」に企画・運営で参加している.そこで,今回のコンテストとカンファレンスの中心となる「Arduino」と「3Gシールド」について3回シリーズで解説する.今回は,開発事例のプログラム(スケッチ)を参考にして,「Arduino」と「3Gシールド」の技術解説を行う.この夏,3G通信モジュールとArduinoを使って何か開発してみては・・・(Tech Village編集部)
●Arduinoと3Gシールドの技術ハードル
Part1では,Arduinoおよび3Gシールドの概要を解説しました.ここでは,具体的なArduinoと3Gシールドを使った技術的な解説をします.
Arduino側では,多くのセンサ類やアクチュエータ類を簡単に,しかも短時間で制御できます.例えば新しいセンサなどを購入した場合でも,アナログ接続かデジタル接続,もしくはシリアル通信(I2CやSPI)による接続のいずれかであれば,web上に多くの事例と,そのサンプル・スケッチ(Arduinoではプログラムのことをスケッチと呼びます)があります.
また3Gシールドを使うことで,インターネット上のWebアプリケーションやクラウドサービス,ツイッター連携,それにメール送信などが利用できるようになります.つまりArduinoと3Gシールドを使うことで,ワイヤレス・センサ・ネットワークや,そのデータを収集し分析するビック・データのビジネス,それに前回紹介したM2Mビジネスなどへと繋げることができます.また,その他の3Gシールドの機能としては,GPS(位置情報取得)機能や,時刻の取得機能,SMS(Short Message Service)送受信機能などを持ち合わせています.以下は,Arduinoと3Gシールドを使う上での技術ハードルとして,どのようなものがあるか,またそれがどれだけ簡単かを解説します.
●Arduinoと3Gシールドの利用環境の準備
Arduinoは,ハードウェアのマイコン・ボードと,統合開発環境(IDEと呼ばれる)の二つのことを指します(写真1).マイコン・ボードは,ネット上で簡単に購入でき,1~2日間ほどですぐに入手できます.(スイッチサイエンスのサイトなど参照)
写真1.Arduinoとはマイコンボード(左)と統合開発環境(右)
また,統合開発環境は,Arduinoのweb サイトから,PCにダウンロードできるようになっています.PICマイコンやH8マイコンなどに比べ,Arduino といくつかの電子部品,それにUSBケーブルさえあれば,直ぐに動かすことができるようになっています.ただ,Arduinoのドライバを一度だけ,PCにインストールしておく必要はあります.
つぎに3Gシールドですが,こちらもネットから購入できるようになっていています.しかし,利用するには,SIMカードが必要となります.手持ちのものか,別途手配する必要があります.現在3Gシールドで利用できるSIMカードは,NTTドコモのFOMAのSIMカードに限定されます.また,3Gシールドのソフトウェアの最新版は,3Gシールドアライアンスのホームページ,もしくはWikiページから,ダウンロードできるようになっています.
このArduinoと3Gシールドを繋いで使う上では,3Gシールド側に出ている複数のピンを,Arduino側に差し込むだけで利用できるようになっています.特にソフトウェアの設定などは不要です.
●スマホなどのクライアント側からArduino+3Gシールド側の操作
それではArduinoと3Gシールドを使ったプログラミングがどれだけ簡単かを解説していきます. まず解説する事例の全体像を説明します.
図1 Arduino+3Gシールドによる開発事例
この図1は,まず(1)のクライアント側からサーバ上にあるHTML(3Gform.html)を起動します.この起動によって,以下のようなメニューがスマートフォンやPCなどに表示されます.ここでは単純に,四つのメニューの選択ができるようになっています.
1) LED 点灯
2) LED 消灯
3) 温度センサ値をメールで受信
4) スピーカのアラームを発生(5秒間)
つまり,Arduinoと3Gシールド上に付けたLEDや圧電スピーカ,それに温度センサを使って,遠隔でのクライアント側(スマートフォンやPC)から,LEDを点滅させたり,スピーカを鳴らしたり,また温度センサの値を取り出し自分のメールアドレスに受信したりするものです.
ここでは,サーバ側に,HTMLプログラムが一つと,PHPプログラムの二つの計三つを用意しておきます.また,Arduino+3Gシールドを使う上では,Arduino上に一つのスケッチ(制御プログラム)を用意しておきます.それでは,以下にそれぞれのプログラムとスケッチをご紹介していきましょう.
●サーバ側の三つのプログラム
サーバ側には,図1で示した番号のとおり,(1)クラウドから直接呼び出されるHTMLの「選択メニュー」プログラム(3Gform.html)と,(2)「選択メニュー」から自動的に起動する「コマンドファイル出力」プログラム(3Gmakefile.php),それに(3) 3Gシールド側から起動される「メール送信機能」が用意されます.それぞれのプログラムについて解説します.
(1)「選択メニュー」プログラム:3Gform.html (HTMLプログラム)
このプログラムはとても簡単で,選択肢メニュー(LED点灯やメール送信,アラーム発生)を表示させ,「送信」ボタンが押されると,(2)の「コマンドファイル出力」プログラム(3Gmakefile.php)が,引数渡しで起動されます(図2).
図2.クライアント側で起動した「選択メニュー」(3Gform.html)の画面
リスト1に,そのプログラム内容を紹介します.つまり,このプログラムは,端末側から「http://****/3Gfrom.html」で起動すると,図2の選択メニューが表示され,四つの選択された後に「送信」ボタンが押されると同時に,「3Gmakefile.php」のHTTPリクエストが行われます.
リスト1.メニュー選択プログラム(3Gform.html)