Arduino UNOにWiFiを追加
ESP8266 WiFiモジュールを追加して、mincrocontrollerをインターネットに接続してください!
ESP8266 Wifiモジュールは完全なWiFiネットワークであり、シリアル通信またはUARTインターフェースを介したシンプルな接続により、サービングWi-Fiアダプター、ワイヤレスインターネットアクセスインターフェースとしてマイクロコントローラーベースの設計に簡単に接続できます。
このモジュールをArduino UNOに追加すると、よりエキサイティングなプロジェクトが開かれます
ステップ1:回路を構築する


付属のピン表に記載されているピンを接続します
次の手順を実行します。
- 赤いワイヤをVIN(3.3V)からマイクロコントローラからの+ 3.3V電源に接続します。
- 黒い線を地面に接続します。
- 緑のワイヤをWifiモジュールとマイクロコントローラーのTXに接続します
- 黄色のワイトをwifiモジュールとマイクロコントローラーのRXに接続します
サーキットについて
ESP8266の電源は3.3 Vのみに制限されています。それ以上の場合、モジュールが破壊されます。
重要3.3Vを超える電圧を使用しないでください!VINを3.3vに接続してパワーアップし、ENABLEピンもモジュールを有効にします。
TXはRXに接続されます。つまり、ESP8266で送信したいものはすべて、Arduino UNOで受信されます。 RXからTXの場合も同様です。 この回路を構築すると、Arduino UNOでWIFIを開始する準備ができました。
ステップ2:モジュールと話す


ESP8266との通信は、アテンションコマンドまたはATコマンドを介して行われます。
コードを確認するには、添付のATコマンドの表を確認してください。
ボードの設定
1.ここに添付されているスケッチサンプルをArduino UNOにアップロードします。
2. Android用Telnetクライアントをダウンロードする
3. ESP8266 Wifiに接続します
4.接続したら、IPアドレスを取得します
5. AndroidフォンでTelnetクライアントを開きます。
6. [接続]、[IPおよびポート80の追加]の順にクリックして、接続を作成します。
接続したら、次のように入力してリクエストを送信します。
esp8266:
または、コマンドを使用して内蔵LEDをオンにします
LEDON
または、コマンドを使用して内蔵LEDをオフにします
LEDOFF
または単に言う
こんにちは
添付ファイル
esp8266Sample.inoダウンロード
ステップ3:コードについて
要求はすべてloop()関数で読み取られ、解析されます
if(wifiSerial.available()> 0){
文字列メッセージ= readWifiSerialMessage(); if(find(message、 "esp8266:")){String result = sendToWifi(message.substring(8、message.length())、responseTime、DEBUG); if(find(result、 "OK"))sendData( "\ n" + result); else sendData( "\ nErrRead"); //コマンドの実行に失敗したステートメントのエラーコード} else if(find(message、 "HELLO")){// wifiからHELLOを受信sendData( "\\ nHI!"); // arduinoはHIを言う} else if(find(message、 "LEDON")){digitalWrite(13、HIGH); } else if(find(message、 "LEDOFF")){digitalWrite(13、LOW); } else {sendData( "\ nErrRead"); //コマンドERROR CODE for UNABLE TO READ}}
Arduino UNOと通信したり、何かをしたい場合は、条件を追加してください
if(find(message、 "")){
//ここで何かする}
ESP8266と通信するための機能を追加しました。
/ *
*名前: sendData
*説明:cipsendを使用してtcpクライアントに文字列を送信するために使用される関数*パラメータ:*戻り値:void * / void sendData(String str){String len = ""; len + = str.length(); sendToWifi( "AT + CIPSEND = 0、" + len、responseTime、DEBUG); delay(100); sendToWifi(str、responseTime、DEBUG); delay(100); sendToWifi( "AT + CIPCLOSE = 5"、responseTime、DEBUG); }/ * *名前: 検索 *説明:2つの文字列の一致に使用される関数*パラメータ:*戻り値:一致する場合はtrue、そうでない場合はfalse * / boolean find(String string、String value){if(string.indexOf(value)> = 0) trueを返します。 falseを返します。 }
/ * *名前: readSerialMessage *説明:Arduino Serialからデータを読み取るために使用される関数。 *パラメータ:*戻り値:Arduinoからの応答(応答がある場合)* / String readSerialMessage(){char value [100]; int index_count = 0; while(Serial.available()> 0){value [index_count] = Serial.read(); index_count ++; value [index_count] = '\ 0'; //文字列をNULLで終了します} String str(value); str.trim(); return str; }
/ * *名前: readWifiSerialMessage *説明:ESP8266シリアルからデータを読み取るために使用される関数。 *パラメータ:*戻り値:esp8266からの応答(応答がある場合)* / String readWifiSerialMessage(){char value [100]; int index_count = 0; while(wifiSerial.available()> 0){value [index_count] = wifiSerial.read(); index_count ++; value [index_count] = '\ 0'; //文字列をNULLで終了します} String str(value); str.trim(); return str; }
/ * *名前: sendToWifi *説明:データをESP8266に送信するために使用される関数。 *パラメータ:command-送信するデータ/コマンド。 timeout-応答を待つ時間。 debug-シリアルウィンドウに出力しますか?(true = yes、false = no)*戻り値:esp8266からの応答(応答がある場合)* / String sendToWifi (Stringコマンド、const intタイムアウト、boolean debug){String response = 「」; wifiSerial.println(コマンド); //読み取り文字をesp8266に送信しますlong int time = millis(); while((time + timeout)> millis()){while(wifiSerial.available()){// espにはデータがあるため、シリアルウィンドウに出力を表示char c = wifiSerial.read(); //次の文字を読み取ります。 response + = c; }} if(debug){Serial.println(response); }応答を返します。 }
/ * *名前: sendToUNO *説明:データをUNOに送信するために使用される関数。 *パラメータ:command-送信するデータ/コマンド。 timeout-応答を待つ時間。 debug-シリアルウィンドウに出力しますか?(true = yes、false = no)*戻り値:UNOからの応答(応答がある場合)* / String sendToUno(String command、const int timeout、boolean debug){String response = 「」; Serial.println(コマンド); //読み取り文字をesp8266に送信しますlong int time = millis(); while((time + timeout)> millis()){while(Serial.available()){// espにはデータがあるため、シリアルウィンドウに出力を表示char c = Serial.read(); //次の文字を読み取ります。 response + = c; }} if(debug){Serial.println(response); }応答を返します。 }
それでおしまい! ESP8266との通信方法を学習したので、モノのインターネットプロジェクトをさらに検討することができます。 このWiFIモジュールのパワーを最大化して、メーカーになりましょう!。
githubリポジトリにリビジョンを追加してください