Arduino und ESP8266-WiFi-Shield

Hallo Leute,

ich bin neu hier und werde im Folgenden mein Bestes geben, um alle erforderlichen Informationen zur Lösung des Problems aufzuführen. Sollten Angaben fehlen, seid nicht gleich wütend. Bin kein Fachmann.

Ich nutze einen Arduino UNO R3. Mit einem Starterkit mit zahlreichen Sensoren habe ich ein wenig rumgebastelt. Nun möchte ich gern eine WLAN-Verbindung aufbauen und habe mir dazu ein Wifi-Shield bei eBay gekauft.

(http://www.ebay.de/itm/ESP8266-ESP-12E-UART-WIFI-Wireless-Shield-for-Arduino-UNO-R3-/121850661600?hash=item1c5edd8ae0:g:8WoAAOSwShJXLV-Z)

Dieses habe ich wie gefordert auf den Arduino gesetzt. In der mitgelieferten library gibt es unter anderem einige Beispiel-Sketches. Da ich zunächst eine Verbindung zum bestehenden WLAN-Netzwerk herstellen wollte, habe ich den Sketch „ConnectWiFi“ gewählt und alle darin befindlichen Variablen auf meine Netzwerk abgeändert.

Der Sketch sieht nun folgendermaßen aus:

#include "ESP8266.h"

#include "SoftwareSerial.h"

#define SSID "MEINWLAN"

#define PASSWORD "MEINWLANPASSWORT"

SoftwareSerial mySerial(3, 2);

ESP8266 wifi(mySerial);

void setup(void)

{

Serial.begin(9600);

Serial.print("setup begin\r\n");

Serial.print("FW Version: ");

Serial.println(wifi.getVersion().c_str());

if (wifi.setOprToStation()) {

Serial.print("to station ok\r\n");

} else {

Serial.print("to station err\r\n");

}

if (wifi.joinAP(SSID, PASSWORD)) {

Serial.print("Join AP success\r\n");

Serial.print("IP: ");

Serial.println(wifi.getLocalIP().c_str());

} else {

Serial.print("Join AP failure\r\n");

}

Serial.print("setup end\r\n");

}

void loop(void)

{

}

Soweit so gut. Der Sketch befindet sich nun auf dem Arduino, allerdings spuckt der serielle Monitor lediglich folgenden Inhalt aus:

setup begin

FW Version:

to station err

Join AP failure

setup end

Was kann ich tun? Wo liegt der Fehler?

mit bestem Gruß

Echsenmann

Du baust die Verbindung zum ESP per Software Serial auf, dann musst du die Anweisungen in deinem Setup auch an die "mySerial" schicken und nicht an "Serial".

Genauso auch "mySerial.begin(9600)";

Also "Serial" tauschen gegen "mySerial".

Das sehe ich anders.

ESP8266 wifi(mySerial);

Die Kommunikation wird doch von diesem Objekt erledigt und das benutzt mySerial.

Hat das Shield schon mal funktioniert?

Sind die Switches richtig gestellt?

Was sind die Switches?

Das ist der absolut erste Test mit dem Gerät...kann also nicht sagen, ob es schonmal funktioniert hat!

Echsenmann:
Was sind die Switches?

Ich meine die Schiebeschalter (DIP-Switches) auf dem roten Block.

Was sagt die Dokumentation?
Wie sollten sie stehen?
Stehen sie auch so?

Wo kann man die Dokumentation herbekommen?

Echsenmann:
Das ist der absolut erste Test mit dem Gerät...kann also nicht sagen, ob es schonmal funktioniert hat!

Wichtig ist auch, dass du den Sketch anpasst und nochmals geändert postest, aber bitte in Code-Tags nicht in "Quote-Tags".

Serial und MySerial jetzt tauschen oder nicht? Sind ja nun 2 Meinungen!??

Echsenmann:
Serial und MySerial jetzt tauschen oder nicht? Sind ja nun 2 Meinungen!??

Wieso 2 Meinungen?

Wenn du "mySerial" deklarierst, musst du das auch im Code so verwenden.

Du hast doch sicher ein Beispiel dafür gehabt, schau dir das da mal an.

Whandall:
Das sehe ich anders.

ESP8266 wifi(mySerial);

Die Kommunikation wird doch von diesem Objekt erledigt und das benutzt mySerial.

Hat das Shield schon mal funktioniert?

Sind die Switches richtig gestellt?

Das meine ich!

Echsenmann:
Das meine ich!

Ja, stimmt.
Ich habe den Sketch nochmal angesehen, die Anweisungen werden schon richtig ausgeführt.

Mein Fehler, man muss doch richtig lesen. Sorry

Lies das mal durch What's the use of ESP-12E ESP8266 UART WIFI Wireless Shield

Jetzt bin ich nur noch durcheinander und weiss gar nicht mehr wo ich auch dem Fehler suchen soll...dachte das wäre einfacher! :S

Hast du eine Dokumentation?

Welche Library verwendest du?

Wie sind die Schalter gestellt?

Wie kommst du darauf dass 2 und 3 mit dem ESP verbunden sind?

Bei deinen spärlichen Informationen ist es sehr schwer dir irgendwie zu helfen.

Hast du eine Dokumentation?

Nein ich habe keine Dokumentation. Lediglich Schnipsel aus diversen Abgründen des WWW.

Welche Library verwendest du?

Ich gehe davon aus, dass die Datei "8266.h" die Library ist. Auch diese habe ich per Recherche gefunden.

Wie sind die Schalter gestellt?

Alle auf OFF. Stelle ich den ersten auf on, erscheinen diverse Fehlermeldungen. Schalter 3 soll (wiederum gefährliches Halbwissen) lediglich für FW-Upgrades sein.

Wie kommst du darauf dass 2 und 3 mit dem ESP verbunden sind?

Da ich davon ausgehe, dass der Sketch speziell für das Shield erschaffen wurde, sollten die Pins passen oder?

Ich danke euch schon jetzt für eure Hilfe. Hätte gedacht, dass ein Shield besonders dafür geeignet ist, schnell und komfortabel angeschlossen zu werden.

Soweit ich das verstanden habe, sind die ersten zwei Schalter Verbindungen zu den Pins 0 und 1 des Arduino, also Hardware Serial.

Ich halte es für unwahrscheinlich dass ein Öffnen dieser Verbindungen dich mit Pins 2 und 3 verbindet.
(Diese DIP-Switches sind normalerweise einfache Schalter, keine Wechselschalter)

Könntest du aber messen, den TX oder RX Pin auf dem ESP-12 kannst du ja herausbekommen.

soweit ich das in deinem Link erkennen konnte müsste doch alles auf dem Bord beschriftet sein, ich bin sicher das man dir helfen kann wenn du uns ein gute Bild von oben zeigen kannst

Hier ein Foto von oben...

Also so wie ich das verstanden habe musst du die DIP Schalter 1 und 2 öffnen damit TX/RX des ESP nicht auf dem Hardware-Serial des Arduinos (0/1) ist. Unten links hast TX/RX pins vom ESP die musst du mit Kabeln verbinden auf die Arduino Buchsen 2 und 3.
Zum flashen der Firmware des ESP musst du die Schalter 3-4 auf on stellen und dann den ESP Reset Button betätigen.
das ist nur gefährliches Halbwissen :o , aber ich würde es zur Not so einfach mal testen!

Meinst du die digitalen oder analogen Buchsen 2 und 3?

Habe beide versucht und es kam jeweils folgende Fehlermeldung:

Arduino: 1.6.9 (Mac OS X), Board: "Arduino/Genuino Uno"
ConnectWiFi:7: error: no matching function for call to 'ESP8266::ESP8266(HardwareSerial&)'
ESP8266 wifi(Serial);

die digitalen, ggf musst du TX/RX mal tauschen