ESP allein benutzen
Um es vorwegzunehmen: Das Programm zum Messen und Senden der Temperatur für den ESP im Standalone-Betrieb ist erstaunlich kurz und simpel. Dafür ist der Schaltungsaufbau wegen der Stromversorgung komplizierter und der Flashvorgang erfordert Fummelei.
Deshalb beginnen wir mit der Programmerläuterung. Auch hier gibt es den vollständigen Quellcode für unser Programm auf Github. Zuerst muss aber über die Unterstützung für den ESP8266 in der Arduino IDE installiert werden. Dazu muss in den Einstellungen der IDE eine "zusätzliche Board-Verwalter-URL" hinzugefügt werden:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Dann kann über den Board-Verwalter das esp8266-Paket gesucht und installiert werden. Neben dem Compiler stehen so auch einige zusätzliche Bibliotheken zur Verfügung. Davon benötigten wir die Basis-Bibliothek ESP8266WiFi.h und WiFiClient.h.
An der Temperaturmessung selbst ändert sich nichts Grundlegendes. Die GPIO-Pins des ESP sind entsprechend ihrer Nummerierung auch in der Arduino-IDE verfügbar, GPIO-02 wird in der IDE als 2 angesprochen. Die Onewire- und Dallas-Temperature-Bibliotheken, um die Temperatur abzufragen, funktionieren ebenfalls ohne Änderung.
Was sich ändert, sind die Verbindungsaufnahme zum Netzwerk und der Aufruf der URL. Die WLAN-Funktionen des ESP-Moduls sind im WiFi-Objekt gekapselt. Dessen API ist recht unkompliziert. In setup() wird die WLAN-Verbindung zuerst zurückgesetzt und eine neue Verbindung unter Angabe des Netzwerknamens und des Passworts gestartet. Danach wird gewartet, bis die Verbindung tatsächlich steht.
WiFi.disconnect(); WiFi.mode(WIFI_STA); WiFi.begin(SSID, PASSWORT); while (WiFi.status() != WL_CONNECTED) { delay(500); }
Die Funktion sendTemperatur() funktioniert ebenfalls weitgehend wie im vorherigen Beispiel, nur werden statt AT-Kommandos API-Funktionen aufgerufen. Eine URL wird mit Hilfe des WiFiClient-Objektes abgerufen. Zuerst erfolgt die Verbindungsaufnahme mit dem Golem.de-Server mit client.connect(). War das erfolgreich, wird ein GET-Request mit der URL zusammengebaut und per client.println() verschickt. Da uns die Serverantwort nicht interessiert, wird die Serververbindung danach mit client.stop() geschlossen.
if (client.connect("www.golem.de", 80)) { String cmd = "GET "; cmd += URL; client.println(cmd); ... client.stop(); }
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Die benötigten Bauteile | Schaltung für die Programmierung aufbauen |
Auch interessant zu sehen, wie sich die Temperatur und der Stromverbrauch bei den...
Danke für Ihre Artikel. Ich habe nach Ihre Anleitung Arduino installiert und ESP8266...
warum der TPS63050? Bei meinen Recherchen bin ich auf den HT7333 gestoßen. Günstig und...
Man benötigt das ESP-Paket für die Arduino-IDE wie im Artikel auf Seite 3 beschrieben...