WLAN-Modul ESP8266-01 - wo ist der Fehler?

Hey Arduino-Freunde,

ich bin relativ neu in der Welt der MC-Welt und eigne mir derzeit hier und da wie wild Wissen an :wink:

Jetzt versuche ich mich am bekannten WLAN-Modul ESP8266-01. Über einen Logic-Level-Shifter habe ich das ganze wie auf dem angehängten Bild angeschlossen.

Der Code lautet wie folgt:

#include <SoftwareSerial.h>
#define ESP_RX 2
#define ESP_TX 3
SoftwareSerial Serial1(ESP_RX, ESP_TX);


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


void loop()

{
    while (Serial1.available()) {
        Serial.write(Serial1.read());
    }

    while (Serial.available()) {
        Serial1.write(Serial.read());
    }
}

Nun sollte ich über den seriellen Monitor via AT-Befehlen mit dem ESP8266 kommunizieren können, aber da geht nix.

Sieht jemand den Fehler? Besten Dank im Voraus! :slight_smile:

115200 Baud ist für Softserial viel zu schnell.

Gruß Tommy

Tommy56:
115200 Baud ist für Softserial viel zu schnell.

Ich dachte, die interne Baudrate des ESP8266 wäre 115200, aber ich habe auch alle Werte bis 9600 runter getestet - es tut sich nichts.

In Deiner Zeichnung hast Du die Leitungen am Arduino an 0 und 1 angeschlossen, nicht an 2 und 3, wie im Sketch.

Gruß Tommy

LuckyStrikeSlv:
Ich dachte, die interne Baudrate des ESP8266 wäre 115200, aber ich habe auch alle Werte bis 9600 runter getestet - es tut sich nichts.

Wie ich kürzlich gelesen habe, ist die Baud Rate unterschiedlich und abhängig von der installierten Firmware.

Tommy56:
In Deiner Zeichnung hast Du die Leitungen am Arduino an 0 und 1 angeschlossen, nicht an 2 und 3, wie im Sketch.

Stimmt - ich hab es entsprechend geändert und erneut verschiedene Baudraten probiert - immernoch nichts. Ich versteh’s nicht…

Edit: Seh ich das schon richtig: TX vom ESP8266 muss auf RX vom Uno (in meinem Fall Pin 2) und RX vom ESP8266 auf TX vom Uno (Pin 3)?

Ja, siehst Du richtig.

Gruß Tommy

andere Idee..

Jumper mal auf dem Uno GND zu RESET (habe keinen Uno, sollte aber klappen).

Schliesse den ESP an RX, TX an, RX->RX, TX->TX also 0 und 1.

Versuche jetzt alle Baudraten am Seriellen Terminal..

ESP OFF->Baudrate umstellen-> Terminal öffnen-> ESP Spannung anlegen.

Bist du sicher, dass da überhaupt eine at fw drauf ist?

Und ohne ein seriell-ttl-usb-Adapter sollte man als Anfänger nicht mit dem ESP8266-01 rum machen. Frustet nur

Wenn du es so anschlesst, wie von Schuppeste beschrieben, stell die Baudrate auf 74480 und starte den ESP8266 im Programmiermodus, dann muss eine lesbare Ausgabe kommen. Wenn nicht, Verdrahtung falsch oder hw kaputt

ElEspanol:
Bist du sicher, dass da überhaupt eine at fw drauf ist?

Und ohne ein seriell-ttl-usb-Adapter sollte man als Anfänger nicht mit dem ESP8266-01 rum machen.?

Normal schon, zumindest gibt es der Hersteller so an. Aber ich habe jetzt auch einen FTDI-Adapter bestellt, so kann ich morgen mal direkt rangehen und notfalls eine neue FW flashen.

ElEspanol:
Wenn du es so anschlesst, wie von Schuppeste beschrieben, stell die Baudrate auf 74480 und starte den ESP8266 im Programmiermodus, dann muss eine lesbare Ausgabe kommen.

Danke, das probiere ich heute Mittag gleich aus.

So, nun bin ich schon einen Schritt weiter :slight_smile:

Der ESP spricht nun mit mir, hört mir aber nicht zu (Senden sämtlicher AT-Befehle zwecklos).

Ich habe nun den Pegelwandler ersetzt der andere scheint defekt gewesen zu sein. Diesen hab ich nun durchgemessen, passt.

Wenn ich CH_PD und RST auf +3.3 V lege, dann erhalte ich diese Ausgabe mit Baurdate 74880 (softwareserial):

ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1856, room 16 
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8 
jt⸮ۺ⸮⸮;⸮{~]⸮⸮j
load 0x3ffe8310, len 552, room 8 
tail 0
chksum 0x79
csum 0x79

2nd boot version1
PS  4H I⸮|[⸮⸮.w^
  SPI Fai p8t15Kjpr 1 
rf cal sector: 249
rf[112] : 00

w⸮{⸮⸮⸮?⸮⸮⸮?⸮⸮⸮⸮⸮⸮⸮⸮j

SDK ver: 1.5.4.1(39cb9a32) compiled @ Jul  1 2016 20:03
v:,pr1
⸮⸮=⸮h⸮i⸮(⸮"⸮~⸮Ǩ⸮V⸮/q⸮⸮⸮⸮⸮⸮

Das sieht auch jedes Mal etwas verändert aus, also immernoch nicht das Gelbe vom Ei. Aber wenigstens schon mal einen Schritt weiter... weitere Ideen?

Schön, da sind die Bootmeldungen.
Es ist Leben drin!
Dann gehts mit 115200 Baud weiter. (üblicherweise)

weitere Ideen?

Ja, aber sie werden dir nicht schmecken.

  1. Vergiss die AT-Software, es sei denn, du liebst Probleme.
  2. Bürde dem ESP die Hauptlast auf. Also Programmiere ihn.
  3. Mache den UNO zum I2C Slave des ESP. Nutze den UNO als intelligente I2C Porterweiterung.

Begründung:
Der ESP ist ein mehrfaches leistungsfähiger, als der UNO.
Einzig mit IOs ist er knapper gesegnet.

combie:
Dann gehts mit 115200 Baud weiter. (üblicherweise)

Bei 115200 ist nur noch Mist zu lesen. Die korrekte Baudrate scheint wohl um 74k zu liegen.

combie:

  1. Vergiss die AT-Software, es sei denn, du liebst Probleme.
  2. Bürde dem ESP die Hauptlast auf. Also Programmiere ihn.
  3. Mache den UNO zum I2C Slave des ESP. Nutze den UNO als intelligente I2C Porterweiterung.

Damit bin ich wohl hoffnungslos üebrfordert. Heute ist der FTDI-Adapter gekommen (FT232RL). Alles angeschlossen wie hier - über den Seriellen Monitor in der Arduino IDE ist nichts zu sehen. Ich finde auch gar keinen Ansatz mehr, was für einen Sketch ich hochladen soll, damit er AT-Befehle annimmt und mir auch Antworten liefert.

Im Internet seh ich auch vor lauter Bäumen den Wald nicht mehr. Das Teil frustet wirklich.

Edit: Im Prinzip bin ich Deinem Vorschlag nicht abgeneigt, aber ich habe auch keine Ahnung wie. Der ESP soll lediglich einen Wert im Internet ablesen und diesen Weitergeben - das kann ja durchaus über I²C an den UNO erfolgen, der dann weitere Dinge mit dem Wert anstellt (damit komm ich zurecht).

Hallo,

woher bekommt der ESP seine 3,3V? Die USB-Adapter und auch die 3,3V des Uno können einen ESP8266 nicht stabil versorgen! Dicht an den Spannungsanschlüssen des ESP einen 100µF Elko parallel ist auch zu empfehlen.
Nach dem Durchlauf des Bootloaders (mit den 74880 Baud) startet der ESP das WLAN und will Spitzen von über 300mA von einer stabilen Stromversorgung.

Gruß aus Berlin
Michael

amithlon:
Hallo, woher bekommt der ESP seine 3,3V?

Wie in meiner angehängten Schaltung im Eingangspost wird er über ein separates Powerboard versorgt - das scheint mir stabile 3.3 V zu liefern und schafft 700 mA.

Edit: Im Prinzip bin ich Deinem Vorschlag nicht abgeneigt, aber ich habe auch keine Ahnung wie. Der ESP soll lediglich einen Wert im Internet ablesen und diesen Weitergeben - das kann ja durchaus über I²C an den UNO erfolgen, der dann weitere Dinge mit dem Wert anstellt (damit komm ich zurecht).

Fein!

Wer einen UNO programmieren kann, schafft das auch mit einem ESP

Hier ein Plan wie man den ESP-01 vernünftig zum Programmieren anschließt.
Beachte die zusätzliche, leistungsfähige, 3,3V Versorgung.

Die zugehörige Umgebung

Mein Gedicht dazu: [Bericht] ESP8266 tuning

combie:
Wer einen UNO programmieren kann, schafft das auch mit einem ESP

Dein Wort in Gottes Ohr :smiley:

Ok, danke erstmal. Ich acker' mich morgen durch Deine Links und berichte - für heute hab ich die Schnauze voll :confused: