3-1.Wi-Fi無線接続《Remo》
電気回路と電子工作
Wi-Fi無線接続を行う電子工作を行います。ESP32-DevKitC(ESP-WROOM-32)は無線Wi-Fi機能を有していますのでハードウェアは何も必要ありませんが、状態を把握するLEDをつけた回路で工作します。
利用する回路図とブレッドボード配線図は以下となります。(LED点滅と同じ回路となります)
【ESP32-DevKitCの入出力端子はこちらを参照下さい】
スケッチ(制御ソフトウェア)
Wi-Fiを接続するスケッチを以下に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// IoT電子工作キット // 3-1.Wi-Fi無線接続 // ①ライブラリを読み込み #include <WiFi.h> // ②ピン配置 const byte LED_PIN = 25; // LED緑 bool ledFlag = true; // LED制御フラグ // ③Wi-Fi設定 const char *ssid = "##### SSID #####"; const char *password = "### PASSWORD ###"; IPAddress ip(192, 168, 1, 123); // IPアドレス(本機が利用するIP) IPAddress gateway(192, 168, 1, 1); // デフォルトゲートウェイ IPAddress subnet(255, 255, 255, 0); // サブネットマスク void setup(void) { // ④Serial設定 Serial.begin(115200); Serial.println ( ); // ⑤LED設定 pinMode ( LED_PIN, OUTPUT ); // ⑥無線Wi-Fi接続 WiFi.config( ip, gateway, subnet ); WiFi.begin ( ssid, password ); // ⑦Wi-Fi接続処理(接続するまで無限ループ) while ( WiFi.status() != WL_CONNECTED ) { // ⑧LEDを1秒毎に点滅する ledFlag = !ledFlag; digitalWrite(LED_PIN, ledFlag); // ⑨1秒間Wait delay ( 1000 ); Serial.print ( "." ); } // ⑩Wi-Fi接続できたのでシリアルモニターにIPアドレス表示 Serial.print ( "Wi-Fi Connected! IP address: " ); Serial.println ( WiFi.localIP() ); // ⑪LED点灯(Wi-Fi接続状態) digitalWrite ( LED_PIN, true ); } // loop処理はありません void loop(void){ } |
①Wi-Fiライブラリを利用することを宣言しWi-Fiに関する機能を使えるようにしています。今回、マイコンボードがWi-Fiに対応していますので、本マイコンボード標準でライブラリが提供されています。
②LEDのピン配置を定義し、③Wi-Fi及びネットワークに関するパラメータを定義します。
SSIDとPasswordは接続するWi-Fiの設定値を定義して下さい。(##### SSID #####,### PASSWORD ###部分を変更して下さい。)
(パスワードについてはそのまま文字列を設定しても動作しますがハッシュ化した文字列を設定することが望ましいです。今回まずは電子工作の学習に注力頂くため割愛させて頂きます。ESP32-DevKitCとしては、そのままの文字列でもハッシュ化した文字列でも動作します。)
また、接続するネットワーク環境を調べてIPアドレスとデフォルトゲートウェイとサブネットを設定して下さい。仮の値としてIPアドレス「192.168.1.123」などを入力していますが、例えば同じ宅内で利用するスマホやパソコンのIPアドレスが「192.168.0.8」の場合は同じネットワークに繋がるので設定するIPアドレスを「192.168.0.x」に設定する必要があります。xは0から255(サブネットマスクが255.255.255.0の場合)で他の端末でも利用されていない値を設定して下さい。サブネットマスクとデフォルトゲートウェイは宅内につながっている他の端末と同じ値を設定します。同じネットワーク内の端末のIPアドレスなどを調べる方法はこちらを参照下さい。
④でシリアルモニターの設定を行い、⑤でLEDピンを出力モードで設定します。⑥は③で設定したWi-Fi情報を設定します。この設定した情報でWi-Fiを接続して起動します。
⑦のWhile文はWi-Fiが接続状態になるまで無限に繰り返し処理します。繰り返し処理中は⑨1秒間Waitがありますので1秒毎に処理され⑧「!」で状態を反転させLEDを点滅させています。したがってLEDが1秒毎に点滅している間はWi-Fi無線接続をトライしています。
Wi-Fi無線接続が完了すると、⑩でシリアルモニタにIPアドレスを表示し⑪でLEDを点灯します。このため、LEDが点灯している場合はWi-Fi無線接続が完了していることを表しています。