この夏,チャレンジ!中学生でも開発可能なM2Mシステム Part2 ―― 3G通信モジュールとArduinoはこう使う![技術編]

高本 孝頼


●Arduino+3Gシールド側のスケッチ

 つぎのArduino+3Gシールド側には,サーバ側にあるデータ・ファイル[(2)で書出しされたコマンドの内容]を読み込む機能や,温度センサの値をメール送信する際に,図1の(3)を起動する機能などを備えたスケッチ(4)が用意されます.このスケッチは,基本的には立ち上がって自動的に無限ループによるWeb上のコマンド出力ファイルを3秒おき(スケッチの最後に「delay(3000);」と記述)に見に行き,その中身が変わった時点で,それぞれ四つの処理を区別して行います.このWeb上のコマンド出力ファイルを読みに行くのがポーリング作業で,Arduino+3Gシールド側は,繰り返しコマンド出力ファイルが何に置き換わったかを見に行くことが必要となります.
また,メール送信と圧電スピーカの連続的な操作を避けるため,制御を見送る処理を取っています.この見送るための変数として,二つのブーリアン値「swm」と「swa」を使って制御を行っています.

 

リスト4.Arduino+3Gシールド側のスケッチ(3GsaALL.ino)

 

 このスケッチの中では,3Gシールド専用の関数群は,赤字のわずか四つしか使っていません.最初の初期化で「a3Gs.start」と「a3Gs.begin」を使い,つぎに3Gシールド上のLEDをOn/Offさせるための「a3Gs.setLED」,それにインターネットとの接続のために「a3Gs.httpGET」の四つとなります.

 この「a3Gs.httpGET」は,最初のものが「コマンド出力」ファイルの内容を読み取るもので,後のものは温度センサ値をメール送信する「3Gsendmail.php」を起動するものとなっています.

 このように,httpGETでは,サーバ側のプログラム位置のアドレス(変数の「server」
と「path」または「path2」)が設定され,ポート番号「port」それに引き渡す「res」とのその長さ「len」の引数だけで,インターネットとの送受信ができるようになっています.

 如何でしょうか?これだけ簡単に,インターネットとの連携ができることは,自分でもできると思われるのではないでしょうか?これらのプログラムを応用するだけで,Arduino+3Gシールド側の入出力の電子部品を,簡単に遠隔地から操作でき,またセンサ値などを簡単に取得することができるようになります.

 
 Part3では,フリーのクラウドサービスXively.comに,センサ値をアップしたり,ツイッターにセンサ値をアップしたりする事例(クラウド編)を紹介します.こちらもとても簡単にできる仕組みとなっています.以前某大学の先生が,3Gシールドを手に取って僅か数時間後にクラウドにセンサ値をアップされました.この驚異的な時間は,技術ハードルの低さを物語っていると言えると思います.それでは次回をお楽しみにしてください.

 

たかもと・たかより
NPO法人3Gシールドアライアンス 代表理事
 

●参考URL
(1) 3Gシールドアライアンス;NPO法人3Gシールドアライアンスのwebサイト
(2) 3Gシールドアライアンス;3Gシールド技術情報および保守のwebサイト
(3) 3Gシールドアライアンス;Facebookでの最新情報紹介
(4) 3Gシールドアライアンス;「3Gシールド」アイデア・コンテスト&カンファレンス

 

 

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日