2019
|
|
Um einen ESP8266-Baustein auch unter ESP8266BASIC für sehr lange Zeit zu betreiben, kann der Befehl SLEEP Verwendung finden. Während der Schlafphase benötigt der ESP8266 nur einen Strom von 19 Mikroampere.
Bei einer Versorgungsspannung von 3,3 Volt berechnet sich die Leistungsaufnahme zu nur 62,7 Mikrowatt. Liegt ein Akku mit der Kapazität 2300 mAh und 3,7 Volt (also 8,5 Wh) vor, könnte der Schlaf maximal 5655 Tage, oder 15 Jahre dauern, wenn die 3,7 Volt verlustfrei in 3,3 Volt gewandelt werden können. Vielleicht findet sich jemand, der das erstmal nur für 10 Jahre testet.
In Kapitel 2.2.3 im Buch MSR mit Wifi und ESP-BASIC wird der Befehl Sleep nur kurz erläutert, jedoch nicht angewendet, da es zu dieser Zeit Probleme mit der Hardware gab. Hier nun quasi der Nachtrag. Für diesen Test wird ein "nackter" und frischer ESP8266-12E benutzt, damit keinerlei andere Komponenten das Ergebnis beeinflussen. Ein solcher ESP ist ab 1,60 € erhältlich und hat einen Rasterabstand von 2 mm und ist damit nicht Breadboard-kompatibel. Wie dieser Baustein dennoch ohne großen Aufwand mit ESP8266BASIC 3.0 Branch 69 geflasht wurde und welche Verschaltung notwendig ist, ist weiter unten aufgeführt.
|
|
Dieser Test soll ohne zusätzliche Bauteile auskommen, also das absolute Minimum zeigen. Damit ein ESP8266-12E ohne Zusatzbeschaltung in einem Test funktioniert sind die folgenden Beschaltungen notwendig:
ESP8266 |
|
|
Vcc |
- |
3,3 Volt |
GND |
- |
Masse |
EN |
- |
3,3 Volt |
GPIO15 |
- |
Masse |
GPIO16 |
- |
RST des ESP |
Die drei GPIO 01, 15, 16 entscheiden beim Starten des ESP in welchem Modus geschaltet wird. GPIO01 wird benötigt, wenn geflasht werden soll. Auf Entwicklungsboards werden z.B. 10k-Widerstände benutzt, um diese GPIO nach dem Start normal zu benutzen. Hier wird darauf bewusst verzichtet, da genügend andere Pins verfügbar sind, um Peripherie anzuschließen.
GPIO16
Dieser Anschluss muss unbedingt mit RST verbunden sein, da es sonst kein Erwachen gibt.
GPIO15
Dieser Anschluss muss unbedingt auf GND (Masse) liegen, da der ESP sonst nicht startet. Bei einer Stromaufnahme von etwas über 30 mA erscheint mit 76800 Baud an der seriellen Schnittstelle lediglich:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
waiting for host
|
Ist alles richtig angeschlossen, bootet der ESP bei etwa 70 mA und wenn ESPBASIC anläuft fließen etwa 80 mA. Sollten nur etwa 30 mA fließen wartet der ESP, wie oben beschrieben.
|
Software schläfriges Blink
|
Voraussetzung ist die vorherige Installation von ESP8266BASIC 3.0 wie im Buch oder in diesem speziellen "nackten" Fall, unten beschrieben. Sind diese Vorgaben erfüllt, so kann der Test im Schlaflabor beginnen.
Ein einfaches Blinkprogramm wird so modifiziert, dass es nach dem 50. Blink den ESP für 60 Sekunden in den Tiefschlaf schickt und wenn die Hardwarebedingungen auch stimmen, der ESP wieder bootet und von vorne beginnt. Um in ESPBASIC ein Programm nach dem Reset automatisch zu starten ist es erforderlich das Programm unter dem Namen default.bas zu speichern und in den Settings den Autostart zu ermöglichen:
Hier die Zeilen für das schläfrige Blinken:
x = -1
cnt = 0
Timer 500,[tm]
Wait
[tm]
io(po,2,x)
x = not x
cnt = cnt + 1
if cnt > 100 then sleep 60
wait
Die Variable x wechselt bei jedem Timeraufruf und sorgt für das Schalten der blauen LED an GPIO02. Der Zähler cnt wird jeweils erhöht bis er den Wert 100 überschreitet. Dann folgt der Tiefschlaf mit sleep und nach 60 Sekunden sollte der ESP bei richtiger Verdrahtung wieder hochfahren und das BASIC starten. ESPBASIC sucht nun nach einem AP für 10 Sekunden und wartet dann noch 30 Sekunden, bis default.bas gestartet wird und der Zyklus von vorne beginnt. Diese 30 Sekunden erweisen sich nützlich, denn bei einem Fehler bleibt nicht viel Zeit mit seiner Hardware den eigenen AP des ESP zu finden, sich anzumelden und mit edit und save den Autostart noch zu unterbinden.
|
BASIC-Übertragung Flash des nackten ESP8266-12E
|
Um einen ESP8266-12E Baustein mit ESP8266BASIC zu versehen, muss eine Binärdatei einmalig übertragen werden. Mittels kleinem Breadboard, dem ESP -Link v.1.0D und einigen Jumperwires kann ohne Löterei das Basic sogar von Android aus - wie im Anhang 5.1.2 beschrieben - übertragen werden. Der ESP01-Adapter stellt alle erforderlichen Leitungen bereit und ist mit einem USB2-Stecker versehen, der direkt in einen Host-Adapter passt.
3.3V |
|
RXD |
RST |
|
IO1 |
EN |
|
IO2 |
TXD |
|
GND |
Die Abbildung zeigt den Baustein in Test-Betrieb und benutzt nur noch die Spannungsversorgung. Zur Programmübertragung müssen alle Leitungen des Adapters - bis auf IO2 - mit den entsprechenden Anschlüssen des ESP8266E verbunden sein. Zusätzlich ist eine Brücke zwischen GPIO15 und GND erforderlich!
Der Rasterabstand 2 mm ESP zu 2,54 mm Breadboard wird einfach dadurch überwunden, dass der Jumperwire durch das jeweilige Loch am ESP gesteckt, etwas gebogen im nächsten Boardanschluss landet. Durch die mechanische Spannung gelingt der elektrische Kontakt in diesem Fall auch ohne Lötstellen. Der Baustein kann danach mit dem Basic in entsprechende Geräte eingebaut werden, wobei die Verschaltung wie weiter oben erfolgen muss.
|
|
|
Schon in dem im Herbst 2017 erschienenen Messen Steuern Regeln mit Smartphone und Tablet war ESPBASIC ein Thema. Durch die vertiefende Beschäftigung mit der Referenz zu dieser Sprache entstand ein eigenes Buch zu ESP8266-BASIC, da sich ganz neue Perspektiven bei der Umsetzung von Ideen ergaben und diese in dieser Form weiter gereicht werden sollte.
|
|
|
Weitere Bücher
Weitere Software
|