図 1.Arduino とはマイコンボード( 左 )と 統 合 開 発 環 境 ( 右 ) また 統 合 開 発 環 境 は http://arduino.cc/ のサイトから PC にダウンロードするよう になっています PIC マイコンや H8 マイコンなどに 比 べ Arduino といくつか



Similar documents
目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

もくじ はじめに 本 書 はスマートフォンやタブレットのアプリ LINE の 設 定 を 行 うためのマニュアルとなります 詳 しい 操 作 方 法 については メーカーホームページ 上 の 基 本 的 な 使 い 方 を 参 照 ください LINE 基 本 的 な 使 い 方

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

同 期 を 開 始 する( 初 期 設 定 ) 2 1 Remote Link PC Sync を 起 動 する 2 1 接 続 機 器 の [PIN コード ] [ ユーザー 名 ] [ パスワード ] を 入 力 する [PIN コード ] などの 情 報 は 接 続 機 器 の 設 定 画 面

技術報告会原稿フォーマット

HTG-35U ブルーバック表示の手順書 (2014年12月改定)

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

Thunderbird のメール/設定を別PCへ移行する方法(「MozBackup」を使って)

あいち電子調達共同システム

Gmail 利用者ガイド

研究者情報データベース


スライド 1

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

ユーザーマニュアル

メール 受 信 画 面 のレイアウトを 変 更 することができます ここでは 初 期 設 定 のレイアウトで 表 示 されているボタ ンやマークについて 解 説 します メール 一 覧 画 面 には 受 信 したメールが 一 覧 表 示 されます メール 受 信 タブをクリックすると 受 信 箱 フ

オートビズにPayPalを対応させる方法

<4D F736F F D20819A837A815B B83578DEC90AC837D836A B2E646F6378>

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

AGT10 ( Android(TM) 4.1) ファームウェア更新方法

- INDEX - 1 ご 利 用 時 間 1 2 メニュー 1 3 ご 利 用 になる 前 に 行 っていただきたいこと 3 (1) 所 在 地 沿 線 設 定 3 (2) 会 員 情 報 の 管 理 ( 自 社 情 報 の 設 定 ) 5 4 物 件 情 報 の 登 録 8 (1) 操 作 概

スライド 1

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

パソコンバンクWeb21 操作マニュアル[導入・事前設定編]

スマートフォン版 ログイン画面

WEBメールシステム 操作手順書

アスラテック株式会社 会社案内

V-CUBE One

Microsoft PowerPoint - 04_H26material_practice_No3-3.pptx

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 15ページに 汎 用 データ 受 入 に 関 する よくあるお 問 い 合 わせをご 紹 介 しています Step1 (

Windows 10

新 規 団 体 登 録 ボタンをクリック

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

改 訂 履 歴 版 概 要 区 分 更 新 日 1.0 新 規 作 成 新 規 2014/06/26 2

POWER EGG V2.01 ユーザーズマニュアル グループウェア編

Microsoft Word - Active.doc

ソフトウェア説明書

< AD82E98AC7979D89E696CA837D836A B A B817A5F E786C73>

Microsoft Word - CiNii&RefWorks doc

1.ログインするためのパソコンの 設 定 (USBトークンの 設 定 ) Internet Explorer(IE)の 場 合 方 法 1 情 報 バーからアドオン(ActiveXコントロール)をインストールする 画 面 はIE8です またIEのバージョンにより 操 作 方 法 画 面 や 表 示

Transcription:

3G シールドの 魅 力 高 本 孝 頼 2013 年 8 月 パート2:Arduino+3G シールドの 技 術 例 紹 介 1.Arduino+3G シールドの 技 術 可 能 性 前 回 において Arduino および3G シールドの 概 要 をご 紹 介 しました ここでは 具 体 的 な Arduino と3G シールドを 使 った 技 術 的 な 可 能 性 を 紹 介 していきます Arduino 側 では 多 くのセンサ 類 やアクチュエータ 類 を 簡 単 に しかも 短 時 間 で 制 御 でき ます 例 えば 新 しいセンサなどを 購 入 した 場 合 でも アナログ 接 続 かデジタル 接 続 もしく はシリアル 通 信 (I2C や SPI)による 接 続 のいずれかであれば ネット 上 に 多 くの 事 例 紹 介 とともに そのサンプルスケッチ(Arduino ではプログラムのことをスケッチと 呼 びます) によるヒントが 頂 けるようになっています また3G シールドを 使 うことで インターネット 上 の Web アプリケーションやクラウドサ ービス ツイッタ 連 携 それにメール 送 信 などが 利 用 できるようになります つまり Arduino と3G シールドを 使 うことで ワイヤレスセンサネットワークや そのデ ータを 収 集 し 分 析 するビックデータのビジネス それに 前 回 紹 介 した M2M ビジネスなどへ と 繋 げることができます また その 他 の3G シールドの 機 能 としては GPS( 位 置 情 報 取 得 ) 機 能 や 時 刻 の 取 得 機 能 SMS 送 受 信 機 能 などを 持 ち 合 わせています 以 下 では Arduino と3G シールドを 使 う 上 での 技 術 ハードルとして どのようなものが あるか またそれがどれだけ 簡 単 かをご 紹 介 していきたいと 思 います 2.Arduino と3G シールドの 利 用 環 境 の 準 備 Arduino は ハードウェアのマイコンボードと 統 合 開 発 環 境 (IDE と 呼 ばれる)の2つ のことを 指 して 言 います マイコンボードは ネット 上 で 簡 単 に 購 入 でき 1-2 日 間 ほどで すぐに 入 手 できるようになっています (スイッチサイエンス 社 のサイトなど 参 照 ) 1

図 1.Arduino とはマイコンボード( 左 )と 統 合 開 発 環 境 ( 右 ) また 統 合 開 発 環 境 は http://arduino.cc/ のサイトから PC にダウンロードするよう になっています PIC マイコンや H8 マイコンなどに 比 べ Arduino といくつかの 電 子 部 品 それに USB ケーブルさえあれば 直 ぐに 動 かすことができるようになっています ただ Arduino のドライバを 一 度 だけ PC にインストールしておく 必 要 はあります つぎに3G シールドですが こちらもネットから 購 入 できるようになっていていますが 利 用 するための SIM カードは 手 持 ちのものか 別 途 手 配 する 必 要 があります ( 現 在 3G シールドで 利 用 できる SIM カードは NTT ドコモの FOMA の SIM カードに 限 定 ) また3G シールドのソフトウェアの 最 新 版 は ホームページの http://3gsa.org/からか もしくは Wiki ページの http://a3gs.wiki.fc2.com/ に 掲 載 されているところから ダウン ロードできるようになっています この Arduino と3G シールドを 繋 いで 使 う 上 では 3G シールド 側 に 出 ている 複 数 のピン を Arduino 側 に 差 し 込 むだけで 利 用 できるようになっています 特 にソフトウェアの 設 定 などは 不 要 となっています 3.スマホなどのクライアント 側 から Arduino+3G シールド 側 の 操 作 それでは Arduino と3G シールドを 使 ったプログラミンがどれだけ 簡 単 かをご 紹 介 してい きましょう まずご 紹 介 する 事 例 の 全 体 像 を 説 明 していきましょう 2

図 2.Arduino+3G シールドによる 開 発 事 例 この 図 においては まず1のクライアント 側 からサーバ 上 にある HTML(3gform.html) を 起 動 します この 起 動 によって 以 下 のようなメニューがスマホや PC などに 表 示 されま す ここでは 単 純 に 4つのメニューの 選 択 ができるようになっています 1) LED 点 灯 2) LED 消 灯 3) 温 度 センサ 値 をメールで 受 信 4) スピーカのアラームを 発 生 (5 秒 間 ) つまり Arduino と3G シールド 上 に 付 けた LED や 圧 電 スピーカ それに 温 度 センサを 使 って 遠 隔 でのクライアント 側 (スマホや PC)から LED を 点 滅 させたり スピーカを 鳴 らしたり また 温 度 センサの 値 を 取 り 出 し 自 分 のメールアドレスに 受 信 したりするものです ここでは サーバ 側 に HTML プログラムが1つと PHP プログラムの2つの 計 3つを 用 意 しておきます また Arduino+3G シールドを 使 う 上 では Arduino 上 に1つのスケッチ ( 制 御 プログラム)を 用 意 しておきます それでは 以 下 にそれぞれのプログラムとスケッチをご 紹 介 していきましょう 4.サーバ 側 の3つのプログラム サーバ 側 には 上 の 図 で 示 した 番 号 のとおり 1クラウドから 直 接 呼 び 出 される HTML の 選 択 メニュー プログラム(3gsaform.html)と 2 選 択 メニュー から 自 動 的 に 起 動 す る コマンドファイル 出 力 プログラム(3gmakefile.php) それに3 3G シールド 側 から 起 動 される メール 送 信 機 能 が 用 意 されます 3

それでは それぞれのプログラムについて 紹 介 していきましょう 1 選 択 メニュー プログラム:3gform.html (HTMLプログラム) このプログラムはとても 簡 単 で 上 記 選 択 肢 メニュー(LED 点 灯 やメール 送 信 アラ ーム 発 生 )を 表 示 させ 送 信 ボタンが 押 されると 2の コマンドファイル 出 力 プ ログラム(3gmakefile.php)が 引 数 渡 しで 起 動 されます 図 3.クライアント 側 で 起 動 した 選 択 メニュー (3gform.html)の 画 面 リスト1に そのプログラム 内 容 を 紹 介 します つまり このプログラムは 端 末 側 から http://****/3gfrom.html で 起 動 すると 図 3の 選 択 メニューが 表 示 され 4つの 選 択 された 後 に 送 信 ボタンが 押 されると 同 時 に 3gmakefile.php の HTTP リクエストが 行 われます <form action = "3gmakefile.php" method = "post"> <p> 3G シールド 起 動 メニュー <br> <select name="cmd" id="cmd"> <option value="led on">led on</option> <option value="led off">led off</option> <option value="send E-mail">Send E-mail</option> <option value="speaker Alarm">Speaker Alarm</option> </select></p> <input type="submit" value=" 送 信 "> </form> リスト1.メニュー 選 択 プログラム(3gform.html) 2 コマンド 出 力 プログラム:3gmakefile.php (php プログラム) このプログラムは 上 記 1で 選 択 された 値 が $_POST[ cmd ] 経 由 で 渡 され そ れを 変 数 $x に 代 入 し 一 旦 temp.xxx というファイル 名 に 値 を 出 力 します その 4

後 ファイル 名 3gsa.xxx にファイルをコピーしています <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <?php // echo $_POST["cmd"]; $x=$_post["cmd"]. ""; $fn1="temp.xxx"; $fp=fopen($fn1,'w'); fputs($fp, $x); fclose($fp); $fn2 = 3gsa.xxx ; copy($fn1, $fn2); echo ' 実 行 コマンド = ['. $x. ']';?> <br> <input type="submit" name="buttonname" value=" 戻 る " onclick="history.back()" /> リスト2.コマンド 出 力 プログラム(3gmakefile.php) この 中 で 一 旦 ファイル 名 を 置 き 換 えているのは ファイルをオープンした 状 態 で 3G シー ルド 側 からのポーリングによる 読 込 みによって エラーとなるのを 防 ぐためのものとなって います 図 4.クライアント 側 に 表 示 される コマンド 出 力 プログラムの 表 示 例 このプログラムが 終 了 すると 選 択 されたコマンドの 内 容 がクライアント 画 面 に 図 4のよ うに 表 示 されます 3 メール 送 信 機 能 プログラム:3gsendmail.php (php プログラム) 5

このプログラムは Arduino+3G シールド 側 から 読 み 込 みされるプログラムで メール 送 信 先 $_GET[ email ] に 引 数 で 渡 されてくる 温 度 センサの 値 $_GET[ temp ] を 書 き 込 んで 送 信 するプログラムとなります <HTML> <HEAD><TITLE> 3G send e-mail </TITLE><HEAD> <BODY> <H3> 3G shield temp get </H3> <?php メールアドレス if(mail($_get["email"], // to 'Hi 3G shield',// タイトル ' 3Gshield ALARM '. "\r\n". 'DATE = '. date('y-m-d'). 'TIME = '. date('h:i:s'). "\r\n". 'TEMP = '. $_GET["temp"],// 本 文 'From: 3GSA<info@***.jp>'. "\n". 'X-Mailer: PHP/'. phpversion())) 温 度 センサ 値 echo '<B>SUCCESS TO SEND</B><BR>'; else echo '<B>faile to mb_send_mail</b><br>';?> </BODY> リスト3.メール 送 信 機 能 コマンド 出 力 プログラム(3gmakefile.php) このプログラムを 起 動 することで つぎの 図 5のようなメールが 送 られてきます 図 5. 温 度 センサ 値 のメール 受 信 画 面 ここでは 温 度 センサ 値 のほかに 日 付 と 時 間 も 同 時 に 添 えてメールで 送 ってきます 5.Arduino+3G シールド 側 のスケッチ 6

つぎの Arduino+3G シールド 側 には サーバ 側 にあるデータ ファイル(2で 書 出 しさ れたコマンドの 内 容 )を 読 み 込 む 機 能 や 温 度 センサの 値 をメール 送 信 する 際 に 上 記 3を 起 動 する 機 能 などを 備 えたスケッチ4が 用 意 されます (Arduino のプログラムのことをスケ ッチと 呼 びます) このスケッチは 基 本 的 には 立 ち 上 がって 自 動 的 に 無 限 ループによる Web 上 のコマンド 出 力 ファイルを 3 秒 おき(スケッチの 最 後 に delay(3000); と 記 述 )に 見 に 行 き その 中 身 が 変 わった 時 点 で それぞれ4つの 処 理 を 区 別 して 行 います この Web 上 のコマンド 出 力 ファイルを 読 みに 行 くのがポーリング 作 業 で Arduino+3G シールド 側 は 繰 り 返 しコマ ンド 出 力 ファイルが 何 に 置 き 換 わったかを 見 に 行 くことが 必 要 となります またここでは メール 送 信 と 圧 電 スピーカの 連 続 的 な 操 作 を 避 けるため 制 御 を 見 送 る 処 理 を 取 っています この 見 送 るための 変 数 として 2つのブーリアン 値 swm と swa を 使 って 制 御 を 行 っています #include <SoftwareSerial.h> #include "a3gs.h // LM61BIZ output pin: A1 #define LM61BIZ_Pin 1 int port = 80; int spk=8; //char res[15]; char path2[100]; //メールアドレス+ 温 度 センサ 値 バッファ int gettemp(void) 温 度 センサ 値 の 計 算 関 数 { int mv = analogread(lm61biz_pin) * 4.88; return (mv - 600); void spkalarm() { 圧 電 スピーカを 5 秒 間 鳴 らす 関 数 for(int i=0; i<500; i++) { digitalwrite(spk,high); delay(3); digitalwrite(spk,low); delay(2); void setup() 温 度 センサのピン 接 続 (A0,A1,A2 利 用 { pinmode(a0, OUTPUT); // A0(LM61BIZ - GND) digitalwrite(a0, LOW); pinmode(a2, OUTPUT); // A2(LM61BIZ - VSS+) digitalwrite(a2, HIGH); 圧 電 スピーカを D8 に 接 続 7

Serial.begin(9600); pinmode(8,output); pinmode(13,output); LED を D13 に 接 続 while(!(a3gs.start() == 0 && a3gs.begin()==0)) ; Serial.println("Start.."); a3gs.setled(true); 3G シールドの 初 期 化 void loop() 3G シールド 上 の LED 点 灯 { 3G シールド 上 の LED 点 滅 static boolean swa=true, swm=true; if(swa==false swm==false) a3gs.setled(false); const char *server = "www.*****.jp"; サーバ 側 のサイト const char *path = /****/3gsa.xxx"; char res[15]; コマンドファイルのフォルダ const int len = 15; コマンド 読 込 み res に 設 定 if (a3gs.httpget(server, port, path, res, len) == 0) { Serial.println(res); if(strncmp(res,"led on",6)==0 ) { LED on の 場 合 swa=true; swm= true; digitalwrite(13,high); else if(strncmp(res,"led off",7)==0) { LED off の 場 合 swa=true; swm= true; digitalwrite(13,low); else if(strncmp(res,"send E-mail",11)==0) { 温 度 センサ 値 のメール 送 信 の 場 合 if ( swm ) { int temp = gettemp(); 送 信 先 メールアドレス sprintf(path2, /*****/3gsendemail.php?email=*****&temp=%d.%d", temp/10, temp%10); if (a3gs.httpget(server, port, path2, res, len) == 0) Serial.println( res ); delay(5000); 3gsendmail.php 起 動 swm = false; else if(strncmp(res,"speaker Alarm",13)==0) { if (swa) { spkalarm(); ; swa = false; 圧 電 スピーカアラームの 場 合 8

delay(100); Serial.print("."); delay(3000); ポーリングを 行 う 待 機 時 間 (3 秒 ) リスト4.Arduino+3G シールド 側 のスケッチ(3gsaALL.ino) このスケッチの 中 では 3G シールド 専 用 の 関 数 群 は 赤 字 のわずか 4 つしか 使 っていま せん 最 初 の 初 期 化 で a3gs.start と a3gs.begin を 使 い,つぎに3G シールド 上 の LED を On/Off させるための a3gs.setled それにインターネットとの 接 続 のために a3gs.httpget の4つとなります この a3gs.httpget は 最 初 のものが コマンド 出 力 ファイルの 内 容 を 読 み 取 るもの で 後 のもは 温 度 センサ 値 をメール 送 信 する 3gsendmail.php を 起 動 するものとなって います このように httpget では サーバ 側 のプログラム 位 置 のアドレス( 変 数 の server と path または path2 )が 設 定 され ポート 番 号 port それに 引 き 渡 す res との その 長 さ len の 引 数 だけで インターネットとの 送 受 信 ができるようになっています 如 何 でしょうか?これだけ 簡 単 に インターネットとの 連 携 ができることは 自 分 でもで きると 思 われるのではないでしょうか? これらのプログラムを 応 用 するだけで Arduino+3G シールド 側 の 入 出 力 の 電 子 部 品 を 簡 単 に 遠 隔 地 から 操 作 でき またセンサ 値 などを 簡 単 に 取 得 することができるようになりま す つぎの 号 では フリーのクラウドサービス Xively.com に センサ 値 をアップしたり ツイ ッタ にセンサ 値 をアップしたりする 事 例 を 紹 介 しましょう こちらもとても 簡 単 にできる 仕 組 みとなっています 以 前 某 大 学 の 先 生 が 3G シールドを 手 に 取 って 僅 か 数 時 間 後 にク ラウドにセンサ 値 をアップされました この 驚 異 的 な 時 間 は 技 術 ハードルの 低 さを 物 語 っ ていると 言 えると 思 います それでは 次 号 をお 楽 しみにしてください 以 下 は 3G シールド 関 連 の 情 報 が 掲 載 されているサイトです 1.NPO 法 人 3G シールドアライアンスのサイト http://3gsa.org/ 2.3G シールド 技 術 情 報 および 保 守 サイト http://a3gs.wiki.fc2.com/ 3.Facebook NPO 法 人 3G シールドアライアンス でも 最 新 情 報 紹 介 9