2017-01-17 22 views
-3

ESP8266モジュールを購入し、SoftwareSerial(PIN 10-RX、PIN 11-TX)、 でArduino UNOボードに接続しました。また、ESP8266 5V(450mA)降圧コンバータによって3.3Vに低減されています。ESP8266シリアル番号をArduinoに返す

接続:

ESP 8266

Vccを - 外部の力から3.3V

がCH_PD suply - 外部勢力からの3.3Vがsuply

GND - GND外部

RESETから - 未接続

GPIO - RX <

に接続されていない - - アルドゥイーノから5Vが3x10Kオームの抵抗で3.3Vに

TX低減 -

GPI2接続されていない

Electrical connections

をアルドゥイーノする> 3.3および私はArduinoサンプルプログラムにアップロードしてesp8266通信をテストします。

Arduinoのプログラム:

#include <SoftwareSerial.h> 

const byte rxPin = 10; // Wire this to Tx Pin of ESP8266 
const byte txPin = 11; // Wire this to Rx Pin of ESP8266 

// We'll use a software serial interface to connect to ESP8266 
SoftwareSerial ESP8266 (rxPin, txPin); 

void setup() { 
    Serial.begin(9600); 
    ESP8266.begin(9600); // Change this to the baudrate used by ESP8266 
    delay(1000); // Let the module self-initialize 
} 

void loop() { 

    delay(100); 

    Serial.println("Sending an AT command..."); 
    ESP8266.println("AT\r\n"); 
    delay(30); 
    while (ESP8266.available()){ 
    String inData = ESP8266.readStringUntil('\n'); 
    Serial.println("Got reponse from ESP8266: " + inData); 
    } 
} 

が、Arduinoのは、ESPにメッセージを送信すると、私は... corectly動作していません。 ESPは "Ready"を表示せず、ファームウェア情報を取得しません。私はそれは同じだ見えるボーすべてのスピード...私は手動でない応答は何もシリアルモニタEPSからコマンド「AT」送信

Serial monitor - printscreen

をテストしました!

+2

のですか? –

+0

あなたのためのESPモジュールはありますか?LEDは5秒後にどのように見えますか? – dandavis

+0

また、ArduinoとESP8266のグランドを接続することもできます。 –

答えて

0

19200ボー以上の速度でSoftwareSerialを使用しないでください。

デフォルトでは、ESP8266は115000 Baudで通話します。 USB /シリアルでコンピュータに直接接続し、115000 Baudのパテを使用してESPと通信します。 ESPのボーレートを19200に変更します(初期のFWバージョンではAT + CIOBAUD = 19200、新しいものではAT + UARTs何か)。

SoftwareSerialはよりうまくいくはずですが、私はこれ以上使用しません。あらゆる種類の問題です。 HardwareSerialははるかに優れています。コンピュータとESPの間でArduino RX/TXピンを切り替えるだけです。モニター出力はありません。あなたは手がかりを与えるためにLEDを使用してください。

2

接続は完全です。デフォルトでは、esp8266のボーレートは115200です。したがって、最初にボーレート115200をesp8266とシリアルモニタの両方に保ちます。

Serial.begin(115200) 
ESP8266.begin(115200) 

ここで、esp8266のボーレートを変更する必要があります。シリアル通信でコマンドを送信できます。このコマンドを使用します。

AT+CIOBAUD=9600 

上記のコードは、期待どおりに動作するはずです。

0

esp8266 Rxピン用のロジック・レベル・コンバータを使用してください。 Arduinoロジックは5.0 v、esp8266は3.3vロジックです。

1

10K抵抗を変更してください。使用しないでください。高い値の抵抗を使用すると、電流が抑制されるため、その側からの信号は読み取られません。 低い値の抵抗を使用して試してください9600ボーレート

0

外部電源とarduinoのグランドを共通にしてください。

+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの説明を必要としない回答を提供する](https://meta.stackexchange。com/questions/214173/why-do-i-need-50-reputation-to-comment-to-can-i-do-) - [レビューから](/レビュー/低品質の投稿/ 18561498) –

0

あなたはarduinoのを回避し、コード ステップ記述する必要がArduinoの宇野とESPモジュールをプログラムしたい場合: ピン

ArduinoのTX - > RX(ESP) arduinoのrx--を>(ESP)

3.3V電源TX - >VCC、ch_pd(ESP)

GND - >GND、GPI0ボーレートは、私の作品(ESP)

あなたは何が違うのボーレートを試してみました9600,57600