0

arduino uno と esp8266 でのプログラミングに少し問題があります。arduino unoをesp8266モジュールに接続しました。

空のプログラムを実行してそのコマンドで esp8266 をテストすると、正しい結果が得られます。

手動で入力したコマンドと結果: ここに画像の説明を入力

シリアル モニタ コマンド AT で手動で与えると、すべてのコマンドに対して OK で正しい結果が得られます。

しかし、プログラムで自動化しようとすると、シリアル モニターで手動で入力したときに得られる出力が得られません。私のコードを確認してください。

void setup() {      
    Serial.begin(115200);
}

void loop() {    
    delay(5000);
    Serial.println("AT+RST");
    while(Serial.available())
    {
        String s=Serial.readString();
        Serial.println(s);
    }  
}

私の出力は次のとおりです。 ここに画像の説明を入力

私の次のプログラム

#include<SoftwareSerial.h>

SoftwareSerial esp8266(2,3);

void setup() { 
    Serial.begin(115200);
    esp8266.begin(115200);
    delay(1000);  
}

void loop() {
    delay(2000);
    String command="AT+RST";
    esp8266.println(command);
    if(esp8266.available())
    {
        while(esp8266.available())
        {
            char c=esp8266.read();
            Serial.write(c);
        }
    }
}

このプログラムに対する私の結果は、シリアル モニターでは何も表示されません。

プログラム内のコマンドを文字列として取得して、Web サーバーとして機能するときに検索などの文字列操作を実行できるようにしたいと考えています。

誰か助けてください。

4

2 に答える 2

0

改行と改行の両方を使用して同じコマンドを実行してみてください。AT モードの一部の ESP8266 モジュールは、それ以外の場合はコマンドを無視するのを見てきました。

// This should give you "OK" as a sanity check
Serial.print("AT\r\n");
// And then you can run this after
Serial.print("AT+RST\r\n");
于 2015-11-25T20:52:11.993 に答える