ESP-01 Programmierung

Gast #4974285
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!)
Angehängte Dateien:
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.