子供が学校から帰ってきたときなど 玄関が開いたらメールでお知らせする装 置を作ってみましょう ドアに磁石センサーモジュール(PU-2207)と磁石をセットし その状態を監視 して ドアが開いたらスマホなどにメールを送るシステムを作ります メールを送る部分には 今回の工作例では IFTTT(イフト) というサービスを 利用します IFTTTはifttt.comが提供するサービスで無料で使用できます IFTTTとは if this then that から付けられた名前で もし なら する 事ができま す 今回は 玄関が開いたことを磁石センサーモジュールがキャッチしたら メー ルを送信する という動作をさせます メールを送信するためにはインターネットに接続する必要があります インタ ーネットに接続するために ESP-WROOM-02 というWi-fiモジュールを使用しま す このWi-fiモジュールの開発にはArduinoの環境が利用できます また ブレッ ドボードなどでも使用しやすいように端子付きの基板に実装されたものも販売 されており 価格も数百円程度とお手頃です 製作に必要な部品などを表にまとめてみましょう 用意するもの 型番など 必要数 メモ Wi-Fiモジュール ESP-WROOM-02 ピン端子付きのもの USBシリアルモジュール 3.3V出力タイプ ACアダプター 出力DC5V DCジャック ACアダプターのサイズに合わせて レギュレータ 3.3V出力で500mA以上のもの タクト モーメンタリータイプ 2 LED 高輝度LED(赤色 5mm) [ LK-5RD ] エレキットの工作周辺パーツ 抵抗付き 抵抗 0kΩ 5 抵抗 20kΩ 抵抗 470Ω 上記高輝度LEDに付属のものを使用 電解コンデンサ 33µF セラミックコンデンサ 0.µF 基板 ブレッドボード ユニバーサル基板などで作ってもOK また 開発環境として 次のものが必要です パソコン Windows MachintoshどちらでもOK インターネットに接続されていること Arduino IDE Arduinoの開発環境 Arduinoのホームページからダウンロード スマートホン Android iosどちらでもok USBケーブル パソコンとUSBシリアル変換モジュールを接続します 完成したあとは Wi-fiを通して通信を行いますので 設置した場所でWi-fiが使用できる環境であることが必要です ESP-WROOM-02のWi-fi対応プロトコルは802. b/g/n (2.4GHz)です この工作例ではWindows及びAndroidの場合で説明します Macintosh iosの場合はwindows Androidの場合と多少異なる場合がありますので インターネットなどでお調べください 3.3V レギュレータ 5V 3.3V OUT IN + 0.µ 33µ 電源 PU-2207 DCジャック 電源 出力 0k 3V3 EN IO6 ダウンロード 0k 0k LED RST IO3 IO5 IO5 RESET IO2 TXD RXD IO0 RXD TXD 20k 470 IO4 TOUT IO2 0k 0k IO4 パソコンへ ESP-WROOM-02 USB シリアル 変換モジュール 上記回路をブレッドボードで作ると リセット DC ジャック USB シリアル変換モジュール レギュレータ 子供は帰ってきたかな 玄関開けたらメールでお知らせ装置を作ろう 回路図 470Ω OUT IN ESP-WROOM-02 20kΩ 指示のない抵抗は全て 0kΩ ダウンロード 0.µF この工作例はある程度の電子回路の知識をお持ちの方が対象で 回路図などをご覧に なり自己責任で自作できる方が対象です この工作例についてのサポート 修理 改造などのご相談 お問い合わせは受け付けて おりません また 本書の内容について動作などを保証するものではありません あらかじめご了承ください では 回路を作っていきます 今回は秋月電子の ESP-WROOM-02DIP化キット と FT232RL USBシリアル 変換モジュール 使用した例で説明します 33µF 2207CF03-0 PU-2207 パソコンへ
開発環境のセットアップ そのウインドウの下の方に esp8266 by ESP8266 Commumity と表示された 部分がありますので そのエリアをクリックすると右下に インストール ボタンが 表示されますので クリックしてインストールします (図3) 回路が出来上がったら ESP-WROOM-02をプログラムするための開発環境 を構築します まず 下記にアクセスしてパソコンにArduino IDEをインストールしてください https://www.arduino.cc/ このページのDownloadから ソフトのダウンロードページへ移動し 使用するパ ソコンにあったソフトをダウンロードして下さい インストールの方法はここでは 割愛しますので インターネットなどで調べて行ってください 次にArduino IDEでESP-WROOM-02のプログラミングができるように設定を 行います Arduinoのメニューの ファイル 環境設定 を選択し(図) 環境設定ウインド ウを開きます 環境設定の中の Additional Board Manager URLs に http://arduino.esp8266.com/stable/package_esp8266com_index.json と入力し(図2) OKをクリックして閉じます 図4 インストールが完了すると INSTALLED と表示されます (図4) USB シリアル変換モジュールのセッティング パソコンのUSBポートにUSBシリアル変換モ ジュールを接続します その際 ドライバーのイン ストールなどが必要となる場合がありますので ご使用のUSBシリアル変換モジュールの説明書 にしたがってインストールしてください インストールが完了したら コントロールパネ ルからデバイスマネージャーを開き ポート (COMとLPT) で表示されているUSB Serial Port (COM )の番号を確認しておきます (図5) 図5 IFTTT のセッティング 図2 図 メニューの ツール マイコンボード ボードマネージャー を選 択し ボードマネージャー ウインドウを開きます 図3 次は IFTTTのサービスを利用するためのセッテ ィングを行います 下記のIFTTTのサイトにアクセスしてください https://ifttt.com 右のようにIFTTTのサイトが表示されますので 右上にある[Sign Up]をクリックします (図6) Your Email にメールアドレス Choose a Password に適当なパスワードを入力してくださ い パスワードは英数字で6文字以上でなければな りません 入力したら[Create account]をクリックします (図7) 図6 図7 右のような図が表示されますので ここから レ シピ と呼ばれる どのように動作させるかの手順 を作成していきます 青くなっている[this]をクリックしてください (図8) 図8
次の画面が送られてくるメールの内容を設定す る画面です Subject がメールの件名 Body が本文です この件名と本文には日本語が使えますので 分かり やすいように次のように書き換えましょう (図5) Choose Trigger Channel と表示されますの で 一覧の中から Maker をクリックします (図9) 図9 次に表示される画面の Receive a web request と書かれた部分をクリックします (図0) 図 0 次の画面の Event Name の欄にイベント名を 入力します 今回の工作例では PU2207-mail と 入力しましょう このイベント名はIFTTTが処理を判断する際に 重要な名前なので 忘れないように控えておきまし ょう 入力したら Create Trigger をクリックします (図) 図 右の図を参考に Subject の文を 玄関ドアセン サーからのお知らせ に書き換えます Body 部分は What: EventName <br> を削除 し When: を いつ : にします また Extra Data: value,value2,value3, を ド アが開きました に書き換えます 入力したら Create Action をクリックします (図6) 図 6 最後に設定確認の画面が表示されます メールの宛先などが間違っていないか確認します もしメールの宛先を変更したい場合は 後で説 明する方法で変更することができます これでOKなら Create Recipe をクリックしま す (図7) 図 7 これで ドアが開いたらメールを送信する レシ ピが作成されました しかし まだこれだけでは使用できません 次に Maker チャンネルを開通させます (図8) 次に表示される画面では ifのあとにmakerチャ ンネルがトリガーとして登録されていることが確認 できます この画面の that をクリックして何をするかを登 録する画面を表示させます (図2) 図 2 今回の工作例ではメールを送信するように設定 しますので Email をクリックします (図3) 次に表示される画面の Send me an email と 書かれた部分をクリックします (図4) 図 5 図 3 図 4 図 8 ページの上部にある Channels をクリックしま す 表示されたチャンネル一覧の中から Maker を クリックします (図9) 図20の画面が表示されたら Connect をクリッ クします すると図2のように Your Key is: の部 分に英数字の羅列が表示された画面が表示され ればOKです この英数字の羅列は重要なので控え ておきましょう このKeyはチャンネル一覧の中の Maker をクリックするといつでも見ることができ ます これでIFTTTを使用する準備は完了です 図 9 図 20 図 2
ESP-WROOM-02 Wi-fi ESP-WROOM-02 Arduino IDE Generic ESP8266 Module ( 22) Generic ESP8266 Module USB COM ( 23) ESP8266WiFi WiFiClient ( 24) WiFiAClient 23 22 #include <ESP8266WiFi.h> const char* ssid = "Your SSID"; /* Wi-fi SSID */ const char* password = "Wi-fi Password"; /* SSID */ const char* host = "maker.ifttt.com"; /*IFTTT */ const char* event = "PU2207-mail"; /*IFTTT */ const char* secret_key = "*************"; /*Maker Your Key*/ void setup() { Serial.begin(5200); pinmode(2,input); /*2 (PU-2207 )*/ pinmode(6,output); /*6 (Wi-fi LED)*/ digitalwrite(6,low); /*LED L */ delay(0); // We start by connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status()!= WL_CONNECTED) { delay(500); Serial.print("."); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); if(wifi.status() == WL_CONNECTED) /*Wi-fi 6 H */ digitalwrite(6,high); /*LED */ else digitalwrite(6,low); Arduino 24 int value = 0; void loop() { if(digitalread(2)==) /*2 H (PU-2207 */ { /* )IFTTT */ // delay(5000); ++value; /* * This sketch sends data via HTTP GET requests to data.sparkfun.com service. * * You need to get streamid and privatekey at data.sparkfun.com and paste them * below. Or just customize this script to talk to other HTTP servers. * */ /* */ Serial.print("connecting to "); Serial.println(host); // Use WiFiClient class to create TCP connections WiFiClient client; const int httpport = 80; if (!client.connect(host, httpport)) { Serial.println("connection failed"); return; /* */
// We now create a URI for the request String url = "/trigger/"; /*IFTTT にイベント名と Your Key を送信する */ url += event; url += "/with/key/"; url += secret_key; Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(string("get ") + url + " HTTP/.\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); ESP-WROOM-02 への書き込み 次は作成したプログラムをESP-WROOM-02に書き込みます 最初に作成した回路のDCジャックに5VのACアダプターをUSBケーブルで接続し ます (パソコンとUSBシリアル変換モジュールは接続されたままになっていますね ) int timeout = millis() + 5000; while (client.available() == 0) { if (timeout - millis() < 0) { Serial.println(">>> Client Timeout!"); client.stop(); return; 470Ω ③ダウンロードを離す OUT IN ① ③ 33µF ESP-WROOM-02 20kΩ /* ドアが開いている時間を 5 秒と仮定し その間待機 */ ②リセットを回押す(すぐ離す) ダウンロード 0.µF Serial.println(); Serial.println("closing connection"); PU-2207 Arduino IDE上部の マイコンボードに 書き込む ボタンをクリックします(図27) プログラムの入力が終わったら Arduino IDE上部の 検証 ボタンをクリッ クし(図25) 入力したプログラムが間違い ないかチェックします 図 27 図 25 間違いがなければ ウインドウの下方に コンパイルが完了しました と表示されま す(図26) エラーが出た場合は入力に間違 いがないかチェックしてください レギュレータ ①ダウンロードを押したまま // Read all the lines of the reply from server and print them to Serial while(client.available()){ String line = client.readstringuntil('\r'); Serial.print(line); delay(5000); プログラムを書き込むために 次 DC ジャック の手順でESP-WROOM-02をダウン ロードモードにします ② リセット 図 26 しばらくするとウインドウの下部に マイ コンボードへの書き込みが完了しました と表示されればOKです(図28) 書き込みエラーになる場合は の 押し方が間違っていないか 回路は正しく 出来ているかなどをチェックしてください 図 28
(PU-2207) PU-2207 ( 29) Arduino IDE ( 30) 29 (PU-2207) PU-2207 ( LED ) ( 33) ( 34) ( 35) 33 30 5200 ( 3) 34 35 ( ) Connecting to ***** (***** SSID) WiFi connected IP address:----- (---- Wi-fi IP ) LEDESP-WROOM-02 Wi-fi ( 32) Wi-fi 3 32 IFTTT( IFTTT Action action@ifttt.com) PU-2207
IFTTT IFTTT 36 IFTTT Channels ( 36) PIN PIN PIN Connect ( 40) Email ( 37) 40 Email ( 4) 37 38 Reconnect Channel ( 38) Send PIN ( 39) 4 39