netcoast.chprojekte aus der echten welt in der virtuellen welt |
||
homearduino / raspberry piWeb Developmentabout | ||
EinleitungInhaltlich baut der Artikel auf einem bestimmten Basiswissen auf, eventuell hilft es zuerst den Artikel ESP8266-01 (ESP-01) über Serial Monitor mit AT Befehlen im Clientmodus verwenden und Firmware flashen anzusehen.Die Beispiele sind für einen Testaufbau mit einem ESP8266-01 über einen Arduino welcher als Adapter fungiert gedacht. Deshalb gehen wir hier auch von der Bedienung des ESP-01 über den Serial Monitor aus. Im Endefekt funktionieren die Beispiele aber auch über SoftwareSerial oder HardwareSerial. Es empfiehlt sich jewils die Anweisungen genau durchzulesen, wenn man etwas weglässt, sucht man dann stundenlang nach Fehler die keine sind... Schema direkte Verbindung ESP8266-01 (ESP-01) und Arduino / andere Hersteller ohne SoftwareSerial mit AT BefehlenDieses Beispiel zeigt eine Test-Basiskonfiguration, in der wir einfach mit dem ESP8266-01 über die Arduino IDE kommunizieren möchten.Hier fungiert der Arduino lediglich als Adapter, deshalb ist der Reset mit Ground verbunden und RX mit RX und TX mit TX (normalerweise wären diese ja gekreuzt): ![]() Ich verzichte hier absichtlich auf einen Logic-Level-Shifter, trotz der 3.3V / 5V Problematik. Alternativ kann auch der Programmer CH340G oder ein FTDI Programmer wie der YP-05 (Achtung hier würden RX und TX gekreuzt werden) verwendet werden. ESP8266-01 Servermodus aktivieren und als AccessPoint oder im Stationmodus betreibenUnterschied AccessPoint / Stationmodus und wie sie aktiviert werdenAccessPoint - ModusIst dieser Modus aktiviert, kann man sich mit dem ESP8266-01 als WLan-Client verbinden, der ESP arbeitet so wie ein WLan-AccessPoint. Der ESP8266-01 kann als AP und Station gleichzeitig eingerichtet werden. Mit 2 wird der reine AccessPoint-Modus aktiviert, mit 3 der Station- und AccessPoint-Modus aktiviert. In diesem Fall bekommt man entweder 1 oder 2 IPs. Egal welche dieser beiden Einstellungen gesetzt ist, Clientgeräte können nur untereinander kommunizieren, sie kommen nicht ins Internet. Selbst wenn der Modus 3 aktiv ist und dieser mit einem WLan verbunden ist.
AT+CWMODE=2 oder AT+CWMODE=3
Mit folgender AT-Befehlszeile wird die aktuell gewählte Konfiguration ausgegeben:
AT+CWMODE?
SSID, Passwort und andere Daten für den AP-Modus konfigurieren:
AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>[,<max conn>][,<ssid hidden>]
AT+CWSAP="ESP-Lan","abc123456789",5,3,5,1
Hinweis:Diese Befehle funktionieren nur wenn AT+CWMODE=2 oder AT+CWMODE=3. Bestimmte ESP können die Konfiguration speichern, wenn AT+SYSSTORE=1 gesetzt ist. Stationmodus Ist dieser Modus aktiviert, wird der ESP als Client von einem WLan-Router verbunden. Hängt dieser am Internet, kommt der ESP auch ins Internet. Dieser Modus ist auch dann wichtig, wenn man von anderen Geräten im "normalen" WLan-Netzwerk mit dem ESP kommunizieren möchte. Der ESP8266-01 kann als AP und Station gleichzeitig eingerichtet werden. Mit 2 wird der reine AccessPoint-Modus aktiviert, mit 3 der Station- und AccessPoint-Modus aktiviert. In diesem Fall bekommt man entweder 1 oder 2 IPs. Clientgeräte können bei Modus 3 nur untereinander kommunizieren, sie kommen nicht ins Internet.
AT+CWMODE=1 oder AT+CWMODE=3
Mit folgender AT-Befehlszeile wird die aktuell gewählte Konfiguration ausgegeben:
AT+CWMODE?
Servermodus aktivierenDer Servermodus ist schnell aktiviert:
Eine Webseite anzeigen lassenFür diese Beispiele verwende ich nur die essentiell wichtigsten HTML-TAGs, man sollte ich auch bewusst machen, dass der ESP nicht mit einem richtigen Webserver zu vergleichen ist.Er lässt sich aber für coole Projekte die übers Internet oder Netzerk funktionieren sollen, wunderbar einsetzen. In diesem Beispiel ist der ESP8266-01 als Client (AT+CWMODE=1) mit einem WLan-Router verbunden. Es funktioniert aber auch gleich wenn man den ESP als AP einrichtet uns sich mit zum Beispiel seinem Smartphone damit verbindet.
Daten per GET an den ESP8266-01 sendenDiese eher "unsichere" Variante ist die einfachere der beiden Varianten, Daten an den ESP zu übermitteln.Unsicher bedeutet hier, dass man die Informationen einfach per Klartext über die URL mitgibt. Wenn das für das Projekt keine Rolle spielt, kann man sich gut dieser Variante bedienen. GET-Methode bedeutet, dass in der URL die Variablen und deren Inhalt für jeden gut lesbar mitgegeben werden, zum Beispiel: http://esp8266.netcoast.ch/ResponseTest/AntwortAktiv.php?NAME=Muster Am Ende kommt ein ?, und dann der Variablenname, hier "NAME" und deren Inhalt, hier "Muster". Natürlich können mit & mehrere Variablen mitgegeben werden. Dies kann jetzt auf zwei Arten zustande kommen: Variante 1 - Über einen normalen Link, zum Beispiel so:
<a href="http://192.168.1.13?blau=Max">Der Linktext</a>
Variante 2 - Über ein Formular mit method="get"
<form action="http://192.168.1.13" method="get"><input id="EinFeld" name="blau" value=""><input type="submit"></form>
![]() Hinweis Ohne SSL / HTTPs werden die Daten unverschlüsselt übertragen, was sicherheitstechnisch problematisch ist. Ob GET oder POST macht sogesehen für das Thema Sicherheit keinen Unterschied. Daten per POST an den ESP8266-01 sendenSichherheitstechnisch relevantere Informationen sollten auf diese Weise ausgetauscht werden.Man hat hier zwar einen etwas grösseren Aufwand, er hält sich aber in grenzen und ist auch letztendlich einfach umzusetzen. Dies wird aber am einfachsten über ein Formular mit der Option method="post" gelöst.
<form action="http://192.168.1.13" method="post"><input id="EinFeld" name="blau" value=""><input type="submit"></form>
Im Obigen Beispiel wird im Anschluss ein Formular mit Post an den Server mit der Variable "blau" und dem Inhalt gemäss dem Input-Feld übermittelt.
Zum Beispiel so:![]() Hinweis Ohne SSL / HTTPs werden die Daten unverschlüsselt übertragen, was sicherheitstechnisch problematisch ist. Ob GET oder POST macht sogesehen für das Thema Sicherheit keinen Unterschied. Praktisches Umsetzen der VariantenIch kann hier aufgrund des Umfangreichen Themas nur Denkanstösse und Tipps geben.Schlussendlich sollte man sich ein bisschen HTML-Wissen selber aneignen. Meiner Meinung nach, kommt man bereits mit Anfängerwissen sehr weit. Für die Projektumsetzung muss man sich zuerst die Frage stellen: Wie soll der ESP8266-01 überhaupt angesprochen werden?
|
||
Diese Webseite verwendet keine Cookies. | ||
Designed & styled by slaps313 | ||