ESPr Developer のWIFI接続方法
ESPr DeveloperのWIFI機能利用方法について調べてみると、下表の様な方法がある様です。世の中で言われている‘IoT’のイメージからは、当然③インターネット接続を先ず行いたいところですが、WIFIルータなどの機器やレンタルサーバーの利用など準備・費用面の問題もありますので、①②③の順番に確認して行きたいと思います。尚、本サイト全てに言えることですが、用語・やり方など、個人的な理解・認識に基づいて記載しているものですので、重ねてご了解お願い致します。また、パソコンへのインストール,プログラムの書き込み、配線等 すべて自己責任で実施頂けますようお願い致します。
ESPr DeveloperのWIFI接続方法調査
No | 呼び方 | 概要 |
① | アクセスポイント(AP)接続 | 親機(AP:アクセスポイント)として、子機から直接接続する方法 |
② | ローカルSTA接続 | 子機(STA:ステーション)として、WIFIルータ等のアクセスポイントを中継し、ローカルネットワーク内の機器と接続する方法 |
③ | インターネット 回線接続 |
子機として、インターネット公共回線上のレンタルサーバー等を介して、遠隔エリアの機器と接続する方法 |
①アクセスポイント(AP)接続
(1)配線接続
アクセスポイント接続で、必要になるのは、ESPr Developer本体とブラウザを利用できるWIFI端末(スマホ、PCなど)。あと今回は、ブラウザーからの入力により、LEDのON/OFF確認を行いますので、LED,抵抗,ブレッドボード,ピンヘッダなどの部品を使用します。また、プログラム書き込みや電源供給の為、開発時は microB USBケーブルが必要となります。接続は以下の通りです。ピンヘッダは写真のESPr Developer裏面からピン部を挿入されている為、直接見えませんが、表側でピン部をはんだ付けしています。ピンヘッダは10pinのものが2つ必要ですが、pin数が多いものを切断して使用することも出来ます。
(2)実行結果
先ずプログラム実行状況を示します。タッチパネルの性能もあると思いますが反応しないこともあります。ただ、敏感に反応するとは言えないものの、スマホからのON/OFF入力にLEDの点灯/消灯が対応していることは確認できました。
(ESPr DeveloperにUSBケーブルが接続されていますが、開発時のプログラム書き込みと実行時の電源供給用です。プログラム実行時に通信を行うためのものではありません。)
(3)プログラムコード
プログラムコードを次に示します。
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> /* ESPR 自身をAP(アクセスポイント)とする接続 */ const char *ssid = "ESPR"; // APモード:自身のSSID const char *password = "ESPR0001"; // APモード:自身のパスワード ESP8266WebServer server(80); // WEBサーバーポート(80番) const int led = 13; // LED用出力端子番号 /* ブラウザに表示するボタンなど html でString form = に続いて表記 */ // LEDオフ時のHTML String form_off ="<html><head><meta name=viewport content=width=100></head>" "<p>SW OFF</p>" "<form action=ON><input type='submit' value='ON' style='background-color:khaki; color:white;'></form>" "<form action=OF><input type='submit' value='OFF' style='background-color:blue; color:white;'></form>" "</html>"; // LEDオン時のHTML String form_on ="<html><head><meta name=viewport content=width=200></head>" "<p>SW ON</p>" "<form action=ON><input type='submit' value='ON' style='background-color:red; color:yellow;'></form>" "<form action=OF><input type='submit' value='OFF' style='background-color:lightgray; color:gray;'></form>" "</html>"; // 初回送信(LEDオフ時のHTML送信) void handleRoot() { digitalWrite(led, 0); server.send(200, "text/html",form_off); Serial.println("OFF"); } // LEDオン時のHTML送信 void LedOn(){ digitalWrite(led, 1); server.send(200, "text/html", form_on); Serial.println("ON"); } // LEDオフ時のHTML送信 void LedOff(){ digitalWrite(led, 0); server.send(200, "text/html", form_off); Serial.println("OFF"); } // 初回設定 void setup() { pinMode(led,OUTPUT); digitalWrite(led, 0); delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Configuring access point..."); WiFi.softAP(ssid, password); // APモード SSID/パスワード設定 delay(1000); IPAddress myIP = WiFi.softAPIP(); // IPアドレス取得 Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handleRoot); server.on("/ON", LedOn); server.on("/OF", LedOff); server.begin(); Serial.println("HTTP server started"); } // 連続処理 void loop() { server.handleClient(); }
Arduino IDEのサンプルスケッチや他の方が書かれているサイト等を参考にさせて頂いています。HTMLの記述もあり、少ない知識に基づく推測ですので、予めご了承頂けるようお願いします。
行番6,7は親機であるESPr DeveloperのSSIDと接続パスワードを変数に格納し、行番58で設定します。スマホ等の子機から接続する際に本SSIDとパスワードを入力し、接続が出来るようになります。行番65~67では子機からのURL呼び出しに応じて処理内容を設定しているものと思われます。
例えば、行番66では、(IPアドレス)/ON と子機ブラウザー上でURL指定された時に「LedOn」という関数を実行するという感じです。handleRoot(行番27~32)、LedOn(行番34~39)、LedOff(行番41~46)が対応しています。従って、機能を追加したい時は、ここに同じ要領で追加すれば良いと思います。
行番14~18、行番21~25は、‘LedOn’,‘LedOff’,‘handleRoot’の中の ‘server.send’ の中で呼び出されている文字列です。内容はHTMLです。子機ブラウザーに返送後、ブラウザー上に表示されます。このHTMLはボタン表示やボタンクリック時に親機にON/OFFを通知するなどを定義しています。
LEDのON/OFFは、行番10, 50で13番PINが出力端子であることを設定し、‘digitalWrite’でON/OFF指定しています。
‘Serial.’ で始まる箇所はIDE(開発環境)のシリアルモニタ設定、出力内容を設定するものです。
loop(行番74~76)内の ‘server.handleClient()’ は、子機からの通信を監視する様なものと推測します。
以上がプログラム概要です。参考としたサンプルスケッチは下の図の通り呼び出すことができます。(→「スケッチ例」‐「ESP8266WiFi」‐「WiFiAccessPoint」)
(4)スマホからESPr Developer接続
スマホ(子機)からESPr Developer(親機(AP))への接続方法について説明します。基本的には、手動でWiFiルータに ssid、パスワードを設定して接続を確立するのと同じです。
先ず、ESPr Developer上でプログラムを起動した後で、スマホの「設定」ー「無線とネットワーク」ー「WiFi」の順に開きます。(機種によって異なると思います) 少し経つとプログラム行番6で設定したssid=”ESPR” の文字がリストアップされるので、“ESPR”を開きます。パスワードを確認されますので、入力し「接続」を押します。再度リストが表示され、“ESPR”の下に‘接続済み’の文字が表示されていれば接続完了です。(手順:下図の上段左→右、下段左→右)
尚、プログラム書込時にシリアルモニタでESPr DeveloperのIPアドレスを確認しておきます。下の図は、ArduinoIDEの「ツール」‐「シリアルモニタ」を選択し、シリアルモニターを起動した状態です。赤枠内にIPアドレスが出力されています。
IPアドレスをブラウザーに入力します。(例:‘192.168.4.1/’)
ブラウザに ON/OFFのスィッチが表示され、(2)実行結果の動画と同じ要領で扱うことができます。
以上でアクセスポイント接続要領について終了します。