Forum: Mikrocontroller und Digitale Elektronik ESP-01 Programmierung


von axelac (Gast)


Angehängte Dateien:

Lesenswert?

Die kleine ESP-01 Platine eignet sich hervorragend um kleine Projekte 
mit WLAN Anbindung realisieren zu können. Dazu gibt es ebenfalls für 
kleines Geld eine Programmierplatine (mit der gelben 8poligen 
Steckbuchse) die zum Programmieren mit der Arduino Umgebung oder dem 
ESPlorer geeignet ist. Diese Platine wird mit dem Modul direkt in eine 
USB Schnittstelle des Rechners gesteckt und dient zur Kommunikation und 
Spannungsversorgung (3.3V!) Weitere Info dazu hier: 
https://www.xgadget.de/anleitung/esp-01-esp8266-programmer-so-funktioniert-der-flashvorgang/

Es gibt aber da zwei Probleme, zum einen muss um den Programmiervorgang 
in den Flashspeicher zu starten ein Reset durchgeführt werden und dabei 
der GPIO0 Pin des Moduls auf Grund gelegt werden. Der Reset kann 
natürlich durch Einstecken des Moduls in den USB Port ausgelöst werden, 
man muss dann aber jedesmal bei Neuprogrammierung das Modul ein und 
ausstecken. Außerdem ist durch einen Widerstand zwischen Ground und 
GPIO0 der Programmiermodus einzustellen. Besser wäre, wenn der Reset 
durch einen Taster ausgelöst werden kann und GPIO0 durch einen Jumper 
auf Ground gelegt werden kann, dann ist GPIO0 auch ohne Ausstecken des 
Moduls im Normalbetrieb als IO nutzbar.
GPIO0 ist leicht extern durch einen Jumper auf Masse zu legen. Der Reset 
Eingang lässt sich allerdings nicht einfach mit einem Taster auf Masse 
legen, da er direkt ohne Widerstand mit 3.3V verbunden ist. Zwar 
begrenzt der LowDrop Spannungsregler des Programmiermoduls den 
Kurzschlussstrom, allerdings sollte man dies nicht übertreiben, da bei 
einem Defekt des Reglers auch die USB Schnittstelle des Rechners in 
Gefahr ist. Ein Neustart des Moduls und damit ein Reset lässt sich aber 
auch durch kurzzeitiges auf Masse legen des CH_PD Eingangs, der das 
Modul enabled, erreichen. Dieser Eingang ist über einen Pullup 
Widerstand mit 3.3V verbunden, so das dieser Eingang gefahrlos mit einem 
Taster kurzzeitig auf Masse gelegt werden kann um den reset auszuühren.

Zur Programmierung des Moduls empfehle ich LUA und die 
Entwicklungsumgebung ESPlorer. Der sehr kompakte LUA Interpreter muss 
nur einmal auf das Modul geflasht werden, die eigentlichen LUA Programme 
werden dann ohne das in den Flash Modus umgeschaltet werden muss vom LUA 
System in den Flashspeicher geladen und ausgeführt.

Als Beispiel habe ich mal ein LUA Programm angefügt, welches bei 
Betätigung eines Tasters eine email an einen im Programm festgelegten 
Empfänger sendet. Benutzt wird ein SMPT Server eines Emailanbieters. 
Nach dem Versenden der email geht das Modul in den Tiefschlaf, mit nur 
noch ca. 100 Microampere Stromverbrauch. Damit ist eine 
Batterielebensdauer mit 2 AA Zellen über Monate gesichert (gegebenfalls 
die rote Power led auf dem Modul entfernen).

Allerdings muss eine passende LUA Umgebung in das Modul geflasht werden. 
Die lässt sich über die Webseite https://nodemcu-build.com/ erstellen 
(SSL True, module crypto, file,gpio, http, net, node, tmr, uart, 
websocket, wifi, tls)  und wie im ersten Link beschrieben auf das Modul 
übertragen.

Für eine erfolgreiche LUA Programmierung, die wifi und 
Netzwerkfunktionen benutzt, ist wichtig, nicht mit Warteschleifen zu 
arbeiten, sondern, wenn auf eine Bedingung gewartet werden soll, 
stattdessen mit der timerfunktion tmr.alarm() und der callback funktion 
zu arbeiten, weil sonst die wifi Systemfunktionen  gestört werden. (Auf 
dem kleinen Modul läuft kein Echtzeitbetriebssystem!)

von STMler (Gast)


Lesenswert?

axelac schrieb:
> Zur Programmierung des Moduls empfehle ich LUA und die
> Entwicklungsumgebung ESPlorer. Der sehr kompakte LUA Interpreter muss
> nur einmal auf das Modul geflasht werden, die eigentlichen LUA Programme
> werden dann ohne das in den Flash Modus umgeschaltet werden muss vom LUA
> System in den Flashspeicher geladen und ausgeführt.


Für die meisten dürfte Micropython auf dem esp8266 wesentlich geeigneter 
sein. Leistet das gleiche, also wird auch nur einmal geflasht und die 
Programme werden nur noch hochgeladen.
Python hat aber sicherlich mehr Ähnlichkeit mit einer 
Programmiersprache, die ein Einsteiger bereits kennt.

Und als Einsteigerboards sind z.B. LuaNode oder Wemos D1 Mini besser 
geeignet als ein ESP01.

von Einer K. (Gast)


Lesenswert?

Ich nutze diese Adapter auch.
Nur 1 Taster hinzugefügt.
Mit der Arduino IDE

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.