Ich habe ein Arduino UNO und HUZZAH ESP8266 Modul. Ich muss Daten zwischen Arduino UNO und ESP-Modul über Software Serial senden. Im Moment habe ich das ESP-Modul Daten schreiben und Arduino UNO-Anzeigedaten, aber es funktioniert nicht. Wenn ich das Arduino UNO starte und seinen seriellen Monitor öffne, wird nichts mit dem folgenden Quellcode gedruckt.
- ESP8266 RX PIN an Arduino UNO PIN 2 angeschlossen.
- ESP8266 TX PIN mit Arduino UNO PIN 3 verbunden.
- Verwenden Sie das mit HUZZAH ESP8266 gelieferte FTDI-Kabel, um dieses Modul mit Strom zu versorgen. Ich habe gerade die RX- und TX-Pins wie oben erwähnt einzeln mit den ARDUINO-PIN 2 und 3 verbunden.
Irgendwelche Ideen, warum nicht arbeiten? Unten finden Sie den Code für beide Module. Vielen Dank,
Arduino UNO
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(2, 3); // RX | TX
void setup(void){
//Start hardware Serial communication
Serial.begin(115200);
//Start the software serial for communication with the ESP8266 component
ESPserial.begin(57600);
}
void loop(void){
if (ESPserial.available()){
Serial.println("ESP available!!!");
Serial.println(ESPserial.read());
}
}
HUZZAH ESP8266
#include <ESP8266WiFi.h>
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(2, 3); // RX | TX
void setup(void){
//Start the software serial for communication with the Arduino UNO component
ESPserial.begin(57600);
//TODO: setup Wifi
}
void loop(void){
ESPserial.write("This message generated by ESP module.");
delay(500);
}
esp8266
arduino-uno
Marquinio
quelle
quelle
Antworten:
Stelle sicher das:
Ich weiß nichts über dein Arduino, aber wenn du dir dieses Schema ansiehst, sollten dein RX und TX getauscht werden.
quelle
Hinzufügen zu der obigen Antwort. UNOs TX liegt bei 5 V, während der RX des ESP8266 bei 3,3 V liegt, da es sich um ein 3,3 V-Modul handelt. Es ist daher besser, einen Widerstandsteiler zu verwenden, um UNO 'TX auf 3,3 V zu bringen und dann an den RX von ESP zu speisen, anstatt sie direkt miteinander zu verbinden.
quelle
// ESP
// UNO
quelle