westerholt.me

Seit kurzem gibt es den als Nachfolger des ESP8266 verkauften Chip ESP32. Dieser bietet Unterstützung für WLAN (nichts neues) und außerdem Bluetooth. Das ist gerade für Anwendungen interessant, die man direkt vom Smartphone steuern möchte ohne vorher sein WLAN umzukonfigurieren. Außerdem dürfte Bluetooth LE Stromsparender sein als einen WLAN Server zu betreiben.

Leider ist der Chip noch nicht überall verfügbar. Und gerade wenn man in Fernost bestellt, muss man aufpassen ob die schon liefern können (und ob es Original ist 🙂 ). Ich werde mir das auf jeden Fall einmal genauer anschauen.

Weitere Informationen gibt es auf der Homepage des Herstellers Espressif

QtCreator ToDo Plugin

Bisher habe ich hauptsächlich mit Eclipse als IDE gearbeitet, da diese Plugins für fast alle Sprachen bietet und ich so immer eine ähnliche Umgebung habe. Vor einiger Zeit habe ich mich jedoch mit dem C++ Framework QT angefreundet und das lässt sich leider nicht so leicht in Eclipse integrieren. Zumindest dann nicht, wenn man den UI Designer von QT nutzen möchte.

Da ich mein System häufiger wechsle oder neu installiere, ist mir eine einfache Einrichtung dann wichtiger gewesen als eine einheitliche IDE, daher verwende ich für QT nun den mitgelieferten QtCreator.

Leider habe ich da anfangs eine tolle Funktion von Eclipse vermisst. Dort konnte man nämlich gleich im Code in den Kommentaren Aufgaben notieren, die dann besonders hervorgehoben wurden. Per Zufall habe ich nun entdeckt, dass es dafür für QtCreator auch ein Plugin gibt, welches nur in den Einstellungen unter Hilfe > Plugins > Todo aktiviert werden muss.
QtCreator ToDo PluginNun können im QtCreator auch folgende Kommentare für die Kennzeichnung verwendet werden:

//TODO: Eine Aufgabe
//WARNING: Eine Warnung
//NOTE: Eine Notiz
//FIXME: Das muss noch gefixed werden
//BUG: Hier tritt ein Fehler auf

Die einzelnen Schlüsselworte können in den Einstellungen auch noch nach den eigenen Bedürfnissen angepasst werden. Ich finde das ungemein praktisch. So kann ich mir gleich im Code Notizen machen, die ich dann über die Hervorhebung und die mögliche Filterung schnell wiederfinde und dann weiter bearbeiten kann.

ESP-01 und DeepSleep

Bei einer meiner Basteleien habe ich mich mit dem Strombedarf des ESP8266 in der Bauform ESP-01 beschäftigt. Im normalen Betrieb verbraucht dieser etwa 150 mA mit Spitzen bis 210 mA. Für den Betrieb am Kabel ist das sparsam genug. Ich wollte jedoch lieber einen Sensor „off the grid“ (also mit Batterie) betreiben, und da ist das leider irre viel. Zum Vergleich: Eine normale 9V Batterie hat nur etwa 500 mAh. Dann wäre nach wenigen Stunden bereits die Batterie leer.

Bei einem Sensor, der nur alle 15 Minuten einen Wert misst und über WLAN überträgt, würde der Chip die meiste Zeit gar nichts zu tun haben. In dieser Zeit könnte er also problemlos schlafen und Strom sparen. Das lässt sich in der Theorie auch leicht bewerkstelligen, denn der ESP8266 unterstützt verschiedene Sleep Modes. Der für mich interessante war der DeepSleep. Dabei wird wirklich alles abgeschaltet, das heißt dann aber auch, dass nach dem Aufwachen erst wieder eine WLAN Verbindung hergestellt werden muss, was eine gewisse Zeit in Anspruch nimmt und daher auch wieder Energie kostet. Bei sehr kurzen Schlafzyklen würde sich das irgendwann nicht mehr lohnen.

Den Deep Sleep kann man einfach über ESP.deepSleep(sleepTime * 1000000) aktivieren. sleepTime sind hier die Sekunden. Das ganze geht auch über das AT Command AT+GSLP=x Millisekunden.

Nach Ablauf der Zeit wird über den GPIO16 der Trigger zum Aufwachen gesendet. Und da liegt das Problem. Beim ESP-01 ist dieser PIN nicht verbunden. Dieser müsste mit dem Reset (RST) PIN verbunden sein, damit der ESP-01 nach dem Ablauf der Sleep Time resettet wird. Das ganze kann man zum Glück fixen. Dazu muss vom ESP8266 Modul der GPIO16 mit dem RST Pin Verbunden werden:

Fix für den ESP8266 Deep Sleep

Fix für den ESP8266 Deep Sleep

Das ganze ist etwas fummelig, aber machbar. Für etwas komplexere Projekte würde ich (seit dem ich das nun weiß 🙂 ) jedoch lieber zum ESP-12 greifen. Der hat auch den Vorteil, dass dort mehr GPIOs nutzbar sind. Und GPIO16 ist dort auch schon herausgeführt, sodass man sich diesen Hack sparen kann. Allerdings ist der ESP-12 auch ein klein wenig teurer. Es ist also letztlich immer eine Abwägungssache.

 

WLAN für Bastelprojekte mit dem ESP8266

Ich habe vor einiger Zeit bereits über den fantastischen Funkchip nRF24L01 geschrieben, mit dem auf einfache (und sehr günstige) Art und Weise die eigenen Hobbyprojekte über Funk vernetzt werden können. Daran hat sich auch nichts geändert, allerdings gab es für mich zwei Gründe nun doch einen anderen Chip zu verwenden.

Auch wenn es sich meistens nicht um besonders sensible Daten handelt, hätte ich dennoch gerne eine verschlüsselte Funkübertragung für manche Sachen. Das wäre mit dem nRF24L01+ nicht so einfach zu lösen und außerdem gibt es ja bereits auch verschlüsselte Funkstandards. Der andere Punkt ist, dass ich mit dem nRF24L01 immer auch einen Empfänger irgendwo anstöpseln muss, damit die Daten von einem leistungsfähigeren Server verarbeitet werden können.

Beide Probleme löste für mich das WLAN Modul ESP8266. Es unterstützt das normale WLAN Protokoll, kommuniziert also direkt mit meinem WPA2 verschlüsselten WLAN Netz und braucht daher auch keinen gesonderten Empfänger, da es über den ohnehin vorhandenen WLAN Router direkt z.B. eine REST API im Internet oder Heimnetz aufrufen kann.

Das ESP8266 Modul gibt es als fertigen Chip für etwa 2 € aus dem fernen Osten. Die Chips haben eigene Bezeichnungen. So ist der ESP-01 in der gleichen „Bauform“ wie der nRF24L01 aufgebaut. ESP-12 ist ein Chip, der mehr GPIO des Moduls über PINs nach außen führt und daher eine breitere Einsatzmöglichkeit bietet.

Nach einer kurzen Eingewöhnung kann ich behaupten, der ESP8266 ist mein neuer Lieblings-Hobby-Funkchip 🙂

Die FrOSCon findet dieses Jahr vom 20. bis 21. August statt. Das Programm ist seit kurzem Online: https://froscon.de

« Older posts

Copyright © 2016 westerholt.me

Up ↑