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リポジトリにリビジョンを追加してください

関連記事