ESP8266-01 Probleme

Hallo da draußen,
Ich wende mich an euch mit einem Problem, dass mir schwere Kopfschmerzen bereitet.
Ich möchte einen Arduino im WLAN fernsteuern und habe mich dazu für ein ESP8266 Modul entschieden.

Zu meinem Problem:
Als erstes habe ich ohne weiteres Versucht einen Sketch auf meinem Pro Mini mit dem ESP8266 kommunizieren zu lassen ohne sichtbaren Erfolg. Also habe ich einen Arduino Nano zur Hand genommen und den Versuch gestartet mit einer softserial Verbindung und mit Hilfe des Serial Monitors 'durch' den Arduino mit dem Esp zu kommunizieren. Auch das war nicht Erfolgsgekrönt. Also habe ich zu meinem Ftdi breakout gegriffen und erstmal so gecheckt, ob das Modul überhaupt funktioniert und siehe da, die ersten Lebenszeichen. Also hab ich das ESP Modul mit meinem WLAN verbunden und konnte keine weiteren Fehlfunktionen feststellen. Als nächstes habe ich dann zu meinem Teensy 3.2 gegriffen und einen Seriellen Port dort genommen und konnte wieder kein Lebenszeichen des ESP erhaschen ...
Das einzige, was ich erreichen konnte war, dass ich "WiFi connected" Und "WiFi got IP " auf dem Seriellen Monitor angezeigt bekomme wenn ich den Teensy vom USB trenne und wieder verbinde.

Ich habe alle möglichen Boards mit allen möglichen Setups (div Baudraten, div Pinne bzw Serielle Ports, alle möglichen Code Varianten ( if(serial.available), while(serial.available), direkt seriealwrite(serialread()) mit zwischenspeichern und und und) durch und habe absolut keine Ahnung wo das Problem liegen könnte. Nachdem ich das halbe Internet abgesucht hab versuch ich es mal mit meiner Frage hier.

Hatte jemand ähnliche Probleme und kann mit helfen ?

Vielen lieben Dank im voraus !

Der ESP8266-01 wird vom Arduino aus in der Regel mit sogenannten AT-Kommandos gesteuert, wenn er als "WLAN-Modem" dienen soll.
Eine Aufstellung gibt es hier.

Gruß Tommy

Tommy56:
Der ESP8266-01 wird vom Arduino aus in der Regel mit sogenannten AT-Kommandos gesteuert, wenn er als "WLAN-Modem" dienen soll.
Eine Aufstellung gibt es hier.

Gruß Tommy

Über das Ftdi breakout haben alle AT Befehle die ich Probiert habe auch einwandfrei funktioniert.
Aber sobald ich es 'durch' irg ein MicroController versuche, bekomme ich nichtmal auf ein "AT" ein Ok zurück.

Dann machst du was falsch!

combie:
Dann machst du was falsch!

Danke.

Ohne Deine Schaltung und Deinen Sketch ist das die genaueste Antwort, die Du bekommen konntest.

Gruß Tommy

Hier exemplarisch 2 von vielen versuchen die ich nun am Teensy versuche zum laufen zu bekommen.

void setup()
{
  //delay(5000);
  Serial.begin(115200);
  Serial2.begin(115200);
}

void loop()
{
  if (Serial.available() > 0) {
    char ch = Serial.read();
    Serial2.print(ch);
  }
  if (Serial2.available() > 0) {
    char ch = Serial2.read();
    Serial.print(ch);
  }
}
void setup()
{
  Serial.begin(115200);
  Serial2.begin(115200);
}

void loop() {
  {
    while (Serial2.available()) {
      Serial.write(Serial2.read());
    }
    while (Serial.available()) {
        Serial2.write(Serial.read());
    }
  }
}

Da der Teensy 3.2 auf 3.3V Logik läuft, hab ich RX &TX direkt mit einander verbunden und den ESP an den 3.3V und GND der Teensy angeklemmt und ebenfalls CH_PD mit an VCC.

Ja, ok, sieht richtig aus.

Ich würde jetzt mit einem LA prüfen, ob die Daten korrekt weiter gereicht werden.
Und ob evtl. eine Antwort kommt, nur keiner hört zu.

Deinen Code kannst du übrigens testen, wenn du den ESP abmachst und frei werdenden tx und rx am Teensy direkt verbindest.

Tipp:
Was der ESP übrigens dringend braucht, ist ein Kondensator von mindestens 10µF, gerne auch 100µF, an seinen Versorgungspins.

hab ich RX &TX direkt mit einander verbunden

Wie meinst Du das? RX mit RX und TX mit TX oder gekreuzt, also jeweils RX mit TX?

Gruß Tommy

Tommy56:
Wie meinst Du das? RX mit RX und TX mit TX oder gekreuzt, also jeweils RX mit TX?

Gruß Tommy

Rx & Tx jeweils gekreuzt, sonst hätte es ja am Ftdi auch nicht geklappt :stuck_out_tongue:

Man muss alle Fehlermöglichkeiten beleuchten.

Gruß Tommy

combie:
Ich würde jetzt mit einem LA prüfen, ob die Daten korrekt weiter gereicht werden.
Und ob evtl. eine Antwort kommt, nur keiner hört zu.

Ich hatte den sketch mit dem softserial auf dem nano mit dem Ftdi wieder in der PC eingespeist. Das werde ich jetzt nochmal mit dem teensy probieren !

combie:
Tipp:
Was der ESP übrigens dringend braucht, ist ein Kondensator von mindestens 10µF, gerne auch 100µF, an seinen Versorgungspins.

Oh okay, warum bzw in welchen Situationen?

Dank combies tip bin ich einen Schritt weiter.
Das, was am Serial Monitor eingegeben wird (Teensy am USB) wird nicht weiter gereicht (Ftdi am usb).
andersrum funktionierts.
Kann mir das einer erklären?
Ich muss ja die richtigen Seriellen Ports gestartet haben sonst würde ja gar nichts durch kommen in keine Richtung...

Oh okay, warum bzw in welchen Situationen?

Strombedarf Teensy: KA, schätze 70mA mit allem Gedöns.
Strombedarf ESP: 250mA in in Spitzen

Kann dein Spannungsregler 320mA liefern, oder kackt der dann ab?
Der Kondensator überbrückt kleine Lieferengpässe.

Der ESP kann mit niedrigen Spannungen arbeiten.
Mit sehr niedrigen.
Aber Schwankungen, Einbrüche dank schlappen Regler, die mag er gar nicht.
Dann gibts die lustigsten Erscheinungen.

Also in beiden Codes oben nutzt du kein softwareserial sondern ein Hardware Serial. Kenne tennsy nicht aber hat er den auch zwei Hardware serial.

HAb mal geschaut und merkwürdiger weiße 2 unterschiedliche Bilder mit der Serial Bezeichnung gefunden eventuell ist bei dir Serial2 nicht 2.

combie:
Strombedarf Teensy: KA, schätze 70mA mit allem Gedöns.
Strombedarf ESP: 250mA in in Spitzen

Kann dein Spannungsregler 320mA liefern, oder kackt der dann ab?
Der Kondensator überbrückt kleine Lieferengpässe.

Der ESP kann mit niedrigen Spannungen arbeiten.
Mit sehr niedrigen.
Aber Schwankungen, Einbrüche dank schlappen Regler, die mag er gar nicht.
Dann gibts die lustigsten Erscheinungen.

Okay, das kann ich mir nicht vorstellen, dass es daran liegt, aber ich werde es mal ausprobieren.

In meiner Installation liegt der Teensy an einer 5V Spannungsquelle die bis zu 26A liefert. Das ESP8266 Modul liegt hinter einem AMS1117 der bis 1A liefert ...

Bei meinen Versuchen, wurde bisher alles über den USB Port gefüttert, keine Ahnung wie viel der Liefert ^^

Ich hab gestern abend nochmal einen anderen Versuch gemacht und den Ftdi an serial2 gehängt und darüber den Teensy gefeuert und mit dem teensy den ESP gespeist und den an serial3 gehängt.

Nachdem ich den Code angepasst hab, konnte ich dem ESP befehle senden (hab ihn von Client in AP Mode gesetzt, bzw wieder anders herum das ist ja leicht zu prüfen ...) und das hat er tatsächlich getan, hab aber auf dem serial Monitor kein Feedback bekommen.

Moto_Matze:
Also in beiden Codes oben nutzt du kein softwareserial sondern ein Hardware Serial. Kenne tennsy nicht aber hat er den auch zwei Hardware serial.

HAb mal geschaut und merkwürdiger weiße 2 unterschiedliche Bilder mit der Serial Bezeichnung gefunden eventuell ist bei dir Serial2 nicht 2.

Das sind mit Sicherheit ältere Boards, der Teensy 3.2 liefert z.B. Bis 250mA am 3.3V pin.

SORRY aber die Bilder zeigen den 3.1'er beim 3.2'er ist dann 9-10 Serial 2

Ich hab mir jetzt mal einen zusammengelötet (siehe Bild).

Und zwar:
An +5V des Netzteils (5V 30A) hängen:
-AMS1117
-Teensy
(-Neopixelring)

An GND:
-AMS1117
-Teensy
(-Neopixelring)
-ESP8266
-FTDI

Am Output des AMS1117 hängen VCC+CH_PD des ESP8266.

Das ESP8266 Modul hängt mit RX/TX (natürlich gekreuzt) an Serial2, das FTDI an Serial3.

(Der NeopixelRing Din an Pin12).

Jetzt hab ich folgende Kuriosität:
Zum Testen ob alles korrekt verlötet ist, habe ich erst einen Sketch laufen lassen der den Ring steuert (alles Ok).
Dann mal den AMS1117 eingesteckt (leuchtet auf)
Dann mit ESP8266, auch alles gut, ESP Verbindet sich.

Um die Seriellen Leitungen zu prüfen hab ich den Teensy entfernt und mit Jumperkabeln die Seriellen Ports des Teensy Steckplatzes mit einander verbunden. Danach mit AMS1117 & ESP8266 und FTDI am PC das Netzteil eingeschaltet. Auch hier alles Ok, die Kommunikation funktioniert offenbar einwandfrei.

Also folgenden Sketch aufgespielt:

void setup()
{
  Serial2.begin(115200);
  Serial3.begin(115200);
}

void loop() {
  {
    while (Serial2.available()) {
      Serial3.write(Serial2.read());
    }
    while (Serial3.available()) {
        Serial2.write(Serial3.read());
    }
  }
}

Und das Ergebnis:
Wieder nur eine einseitige Kommunikation, das, was über den Serial Monitor eingegeben wird, kommt am ESP an, ich bekomme aber kein Feedback des ESP angezeigt (der ESP folgt aber den befehlen!).

Also Teensy raus, mit Jumperkabeln den Teensy wieder in mein Board aber diesmal Serial 2&3 getauscht, und das was der ESP sendet kommt am Monitor an, aber ich kann nichts senden, als wäre der Teensy eine Einbahnstraße...

Ich weiß nicht wie ich nun weiter fort fahren soll ...
Ich hab das Gefühl, das der Teensy in einer Schleife hängen bleibt oder so ...

Hat jmd Volt Konstruktive Vorschläge?

Das Bild bin ich schuldig geblieben: