Hallo,
ich versuche gerade eine Kommunikation zwischen Arduino und ESP-01s Modul zu realisieren. Dabei bediene ich mich an der SoftwareSerial Bibliothek.
Mit dem ESP-01s Modul sende ich, sobald der Befehl "Bewegung" erhalten wurde, kontinuierlich den Befehl "ready," aus, der angeben soll, dass das ESP-01s bereit ist, den nächsten Code zu empfangen.
ESP-Sketch
void setup() {
Serial.begin(9600);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //mit dem Wlan verbinden
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Serial.setTimeout(2000);
}
void loop() {
do {
if (Serial.available() > 0) {
incomingString = Serial.readStringUntil(',');
}
} while (incomingString != "Bewegung");
Serial.print("ready,");
delay(1000);//
Mit dem Arduino möchte ich, sobald er den Befehl "ready," liest, die Daten transferieren. Aus irgendeinem Grund kann liest er den Befehl "ready" jedoch nicht.
Arduino Sketch
String b;
String a;
void setup() {
Wire.begin();
Serial.begin (9600);
ESPSerial.begin(9600);
Serial.setTimeout(500);
delay(1000);
ESPSerial.setTimeout(1000);
}
void loop() {
Serial.println("start");
if (Serial.available() > 0) {
b = Serial.readStringUntil(',');
}
ESPSerial.print(b+',');
Serial.println(b);
Serial.print("warten");
if (b == "Bewegung") {
do{
if (ESPSerial.available() > 0) {
a = ESPSerial.readStringUntil(',');
}
Serial.print(".");
}while (a != "ready");
Serial.println("start empfangen");
}
}
Zuerst gebe ich nach dem Kommando "start" den Befehl "Bewegung" ein. Hierbei funktioniert die do-while Schleife im ESP-Sketch auch.
Hat das ESP "Bewegung" empfangen, schickt es daraufhin im Sekundentakt den Befehl "ready,", auf den der Arduino eigentlich anspringen sollte. -> Tut er aber nicht
Weiß vielleicht jemand woran das liegen könnte?