0

いくつかの試行錯誤の後、今夜、私のArduino UnoはESP8266 モジュールと話し始めました。最も一般的な配線、十分なサイズの外部電源からのモジュールへの 3.3V 電源、3.3V TX ラインの直接接続、および分圧器を使用します。 5V RXから読み取る。

SoftwareSerial esp8266(2,3);

void setup()
{
    Serial.begin(9600);
    esp8266.begin(115200);

    char buffer[50];
    esp8266.write("AT\r\n");
    esp8266.readBytes(buffer, sizeof(buffer));
    Serial.println(buffer);

}

ESP8266<->Arduino シリアル通信の速度を 115200に設定した後、シリアル モニターに明確な起動メッセージとコマンド応答が表示されました。

ESP8266 モジュールへの通信を示す Arduino シリアル モニター

これらのメッセージはいくつかの文字化けによってインターリーブされていたので、通信速度を下げてみました。この目的のために、モジュールにコマンドを発行するAT+IPR=9600と、すぐに青色の LED にアクションが表示され、コンソールに OK の応答が表示され、最終的に同じ LED がオンに固定されました。

その結果、Arduino側のシリアル速度を で調整しましたesp8266.begin(9600);、モジュールとのそれ以上の通信を取得できませんでした。 どの速度でもゴミしか見えなくなりました。

モジュールが別の速度にエスカレートした可能性はありますか? それらの多く (4800、57600、19200、115200 に戻るなど) を試しましたが、モニターに明確な応答が表示されませんでした。

接続を再確立するための試みを提案できますか? 最後のコマンド結果をリセットする方法はありますか? より簡単な解決策を試すことができる場合は、ファームウェアの更新の設定を避けたいと思います。

4

1 に答える 1

6

これが解決策です!

このAT+IPRコマンドは、ファームウェアを破壊し、完全に再フラッシュするまでモジュールを応答させないことが知られていました。

このフォーラムのディスカッションで解決策を見つけました。

于 2015-11-22T18:49:11.467 に答える