Forum: Mikrocontroller und Digitale Elektronik Arduino + ESP8266


von Heinrich P. (heiner999)


Lesenswert?

Hallo Gemeinde,

Ich habe einen ESP9266 an meinen Arduino Mega2560 angeschlossen. 
Folgender Code läuft ab:

#include <SoftwareSerial.h>

const byte rxPin = 2; //Empfangs-Pin (RX)
const byte txPin = 3; //Sende-Pin (TX)

SoftwareSerial myESP8266(rxPin, txPin);

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

 while (!Serial) {;}
 Serial.println("Kommunikation erfolgreich gestartet");

 myESP8266.begin(115200);
 delay(100);
 myESP8266.write("AT\r\n");
}

void loop()
{
  while (myESP8266.available())
  {
    Serial.write(myESP8266.read());
    Serial.println("ESP available");

    }
  while (Serial.available())
  {
    myESP8266.write(Serial.read());
    Serial.println("Serial available");

    }

}

Wenn ich den ESp starte erschein im seriellen Monitor:

Kommunikation erfolgreich gestartet.

Wenn ich ein AT Kommando eingebe erscheint im seriellen Monitor 4x 
hintereinander

Serial available

Allerdings erfolgt keine Reaktion auf das eingegeben Kommando.Die 
meldung

ESP available erscheint

erscheint gar nicht.

Wo kann der Fehler liegen?

von Einer K. (Gast)


Lesenswert?

Erstens:
Der Mega hat 4 serielle Schnittstellen, aber du verwendest 
Softwareserial...
Den Grund dafür hätte ich gerne mal erfahren.


Zweitens:
GND nicht verbunden.


Drittens:
Woher weißt du, dass der ESP mit 115200 Baud quatscht?
Kann softserial das überhaupt?

von Heinrich P. (heiner999)


Lesenswert?

Danke für die Antwort

Erstens:

Es ist einfach nur ein Beispiel aus einem Buch welches ich ausprobieren 
will

Zweitens:

GND ist verbunden. Rote LED am ESP8266 leuchtet


Drittens:
 mit 9600 stellt sich das gleiche Ergebnis ein.

von Einer K. (Gast)


Lesenswert?

Welcher ESP?
Schaltplan.

Teste den ESP einzeln.

von heiner999 (Gast)


Lesenswert?

ESP 8266-01

Wie teste ich ihn einzeln?

von Johannes S. (Gast)


Lesenswert?

nach dem Starten müsste das Programm sofort das OK Echo vom AT Befehl 
anzeigen. Das Programm könnte man testen indem man den ESP weglässt und 
Rx und Tx verbindet, dann müsste das AT Echo kommen.
Den ESP mit USB-UART und Terminalprogramm testen.

von Einer K. (Gast)


Lesenswert?

Schaltplan gibts also nicht.....

Dann so:
Der originale Arduino Mega2560 kann 50mA an seinem 3,3V Pin liefern.
Das reicht nicht für den ESP.

von Joachim B. (jar)


Lesenswert?

Heinrich P. schrieb:
> Es ist einfach nur ein Beispiel aus einem Buch welches ich ausprobieren
> will
> Drittens:
>  mit 9600 stellt sich das gleiche Ergebnis ein.

woher weisst du das der ESP mit 9600Bd arbeitet?
Ich musste den dafür umflashen!

Die serienmäßigen 115k vom ESP kann der Arduino (ohne Änderungen) nicht

von heiner999 (Gast)


Lesenswert?

Okay. Das Programm scheint aber zu laufen. Er  scheint nur nicht in den 
Teil zu kommen wo die Antwort des ESP gelesen werden soll.

von Florian (Gast)


Lesenswert?

Wenn du schon den ESP mit arduino verwendest, warum programmierst du ihn 
nicht direkt? Den mega2560 kannst weglassen.

von Arno (Gast)


Lesenswert?

Heinrich P. schrieb:
> Wo kann der Fehler liegen?

- An der Verkabelung
- An der Schaltung
- An der Programmierung des ESP
- An der Programmierung des AVR

Also mal Butter bei die Fische:

1) Wie sieht der Schaltplan aus? Nicht beschreiben, zeichnen und zeigen. 
Mit Stromversorgung. Mit der Angabe, welcher Controller mit dem PC 
verbunden ist.
2) Auf welchem der beiden Controller läuft der Code, den du oben gezeigt 
hast? Auch den ESP kann man mit der Arduino-Umgebung programmieren.
3) Was läuft auf dem anderen Controller?

Dann hat es sich zur Fehlersuche bewährt, bei jedem Controller einzeln 
erst Senden zu testen, z.B. zum PC, und dann entweder ebenfalls vom PC 
Daten zu empfangen oder wie Johannes vorschlägt einen Kurzschluss 
zwischen RX und TX herzustellen (bei offener Verbindung zum anderen 
Controller!) so dass jeder Controller nur sich selbst hört.

MfG, Arno

von Stefan F. (Gast)


Lesenswert?

Der Spannungsregler auf dem Arduino ist für das ESP Modul zu schwach. Du 
brauchst eine separate 3,3V Versorgung.

Die Baudrate 115200 ist für SoftwareSerial viel zu hoch. Die Angaben in 
der Arduino Doku sind diesbezüglich zu optimistisch.

Schließe das ESP Modul mittels 3,3V(!) USB-UART Kabel an einen PC an und 
konfiguriere es auf 9600 Baud um. Dann sollte es klappen.

Oder: benutze eine "echte" serielle Schnittstelle. Doch auch diese 
schaffen die 115200 Baud nicht zuverlässig. Siehe dazu die Table 22-12
im Datenblatt 
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
Alle Baudraten mit einem Error >2% werden nur mit Glück funktionieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.