Ich möchte einige kleinere Projekte (z.B. Datenlogger) mittels ESP32 oder ESP8266 realisieren. Meine Programmierkenntnisse sind eher rudimentär und beschränkten sich bisher darauf kleinere Veränderungen an C Code vorzunehmen und dann auf Atmel Mikrocontroller (ATTiny/ATMega)zu übertragen. Grundlegende Programmstrukturen nachzuvollziehen ist auch kein Problem. Für die ESP würde ich gerne LUA verwenden, da es alles bietet was ich benötige und vor allem ohne IDE auskommt, wenn man mal im nirgendwo was ändern muss, kann man die init.lua einfach mit einem Texteditor bearbeiten. Außer der offiziellen Doku zu NodeMCU findet sich jedoch relativ wenig im Web zu LUA auf ESP. Wer also Link zu Projekten in LUA hat: nur her damit!
Sebastian R. schrieb: > Ich möchte einige kleinere Projekte (z.B. Datenlogger) mittels ESP32 > oder ESP8266 realisieren. Meine Programmierkenntnisse sind eher > rudimentär und beschränkten sich bisher darauf kleinere Veränderungen an > C Code vorzunehmen und dann auf Atmel Mikrocontroller (ATTiny/ATMega)zu > übertragen. Grundlegende Programmstrukturen nachzuvollziehen ist auch > kein Problem. > Für die ESP würde ich gerne LUA verwenden, da es alles bietet was ich > benötige und vor allem ohne IDE auskommt, wenn man mal im nirgendwo was > ändern muss, kann man die init.lua einfach mit einem Texteditor > bearbeiten. > Außer der offiziellen Doku zu NodeMCU findet sich jedoch relativ wenig > im Web zu LUA auf ESP. Wer also Link zu Projekten in LUA hat: nur her > damit! Ich habe die Software für die allermeisten meiner ESP8266-Projekte in LUA geschrieben. Und ich war wirklich seeehr angetan davon, obwohl ich bis dato noch nie mit LUA zu tun hatte. Später beim ESP32 habe ich dann aber doch auf C/C++ umgeschwenkt, eigentlich nur aus einem einzigen Grund: Für mich ist der grösste Vorteil des ESP32 gegenüber dem ESP8266 die Verfügbarkeit von Bluetooth Low Energy. Genau dieses Feature wird von NodeMCU/LUA für den ESP32 aber bislang nicht unterstützt und scheint auch nicht so schnell unterstützt zu werden... :-( Anyway, mit Links zu Projekten kann ich Dir nicht gross helfen. Aber wenn's hilft, kann ich Dir vielleicht zumindest konkrete Fragen beantworten. So ganz ist mir nämlich ehrlich gesagt auch nicht klar, was genau du eigentlich suchst: Eine Art Tutorial? Falls ja: In der Retrospektive würde ich persönlich sagen: Zum Aneignen allgemeiner LUA-Kenntnisse ist das offizielle LUA-Tutorial gut: https://www.lua.org/pil/1.html LUA ist übrigens im Kern extrem Javascript-ähnlich, auch wenn sich die Syntax deutlich unterscheidet. Also wenn Du Javascript kennst/kannst, dürftest Du mit LUA sehr schnell klarkommen. Und für alles darüber hinaus, was LUA speziell auf den ESPs betrifft, ist die offizielle NodeMCU-Doku eigentlich ausreichend: https://nodemcu.readthedocs.io/en/master/ Was vielleicht darüber hinaus noch ganz interessant und wichtig ist, sind so ein paar best practice-Tipps - speziell, wie man den Speicherbedarf reduziert, damit der Heap nicht überläuft, sobald das Programm etwas umfangreicher wird.
:
Bearbeitet durch User
Der ESP8266 hat nur etwa 50kB RAM frei, darin muss folgendes unter gebracht werden: - die Daten des LUA Interpreters - dein LUA Script - deine Daten Du wirst ziemlich schnell an die Grenzen des knappen RAM Stoßen, dann musst du dein Script in viele kleine zerlegen, die sich gegenseitig nachladen. Ich würde das mit LUA nochmal überdenken. Meiner Meinung nach bist du mit Arduino wesentlich besser bedient. Die Arduino IDE kann man "portable" installieren, dann hast du alle Dateien in einem Verzeichnisbaum - gerne auch auf USB Stick. Inwiefern die Sache mit dem RAM beim ESP32 besser ist, weiß ich nicht. Ich habe den ESP32 letztes Jahr im Herbst evaluiert. Sowohl das IDF des Herstellers als auch der Arduino Core wirkten noch ziemlich unfertig und vor allem schlecht dokumentiert. Da verwende ich lieber den ESP8266. Der kann weniger, dafür läuft er zuverlässig mit dem SDK 1.5.4 oder dem Arduino Core 2.3.0. Danach hat Espressif irgendwie alles kaputt gemacht - inkompatibel und instabil. Ich habe das starke Gefühl, dass sie den ESP8266 wie eine heiße Kartoffel fallen gelassen haben, um sich der Entwicklung des ESP32 zu widmen. Nur ist der halt noch nicht so weit, dass ich ihn empfehlen kann.
Joachim S. schrieb: > Eine Art Tutorial? Ja, um mich etwas "inspirieren" zu lassen. Mit Begriffen wie NodeMCU landet man dann sehr wieder bei Arduino - die Dev-Boards, wie z.B. das von LoLin, schimpfen sich ja auch NodeMCU was dann zu Verweirrung bei den Suchergebnissen führt. Joachim S. schrieb: > Falls ja: In der Retrospektive würde ich persönlich sagen: Zum Aneignen > allgemeiner LUA-Kenntnisse ist das offizielle LUA-Tutorial gut: > https://www.lua.org/pil/1.html Danke, das werd ich mir mal anschauen. Das Buch gibt es ja in einer älteren Version auch als kostenloses pdf. Stefanus F. schrieb: > Ich würde das mit LUA nochmal überdenken. Meiner Meinung nach bist du > mit Arduino wesentlich besser bedient. JA da bin ich gespalten. LUA ist "relativ" einfach im Vergleich zu C. Allerdings liefert ja jeder Hersteller von Sensoren etc. irgendwelche Codeschnipsel für Arduino mit und die Community ist wesentlich größer. Joachim S. schrieb: > Anyway, mit Links zu Projekten kann ich Dir nicht gross helfen. Aber > wenn's hilft, kann ich Dir vielleicht zumindest konkrete Fragen > beantworten. So für den Einstieg hatte ich mir folgendes vorgenommen: Über einen Zeitraum von etwa einer Minute vom ADC möglichst viele samples lesen; rtcfifo scheint hierfür das richtige zu sein. Die dadurch gesammelten Messwerte dann weiterverarbeiten (Mittelwert, Aufintegrieren etc.) und zusammen mit den Rohdaten auf dem Webserver des ESP darstellen.
Sebastian R. schrieb: > Joachim S. schrieb: >> Eine Art Tutorial? > > Ja, um mich etwas "inspirieren" zu lassen. Mit Begriffen wie NodeMCU > landet man dann sehr wieder bei Arduino - die Dev-Boards, wie z.B. das > von LoLin, schimpfen sich ja auch NodeMCU was dann zu Verweirrung bei > den Suchergebnissen führt. Leider wahr, ja. > JA da bin ich gespalten. LUA ist "relativ" einfach im Vergleich zu C. > Allerdings liefert ja jeder Hersteller von Sensoren etc. irgendwelche > Codeschnipsel für Arduino mit und die Community ist wesentlich größer. Ich persönlich hatte nie das Problem, dass die von mir verwendeten Sensoren/Aktoren etc. unter ESP8266-LUA nicht benutzbar gewesen wären. Für die halbwegs populären Sensoren/Aktoren gab es meiner Erfahrung nach eigentlich immer ein entsprechendes LUA-Modul. Aber man könnte natürlich auch Pech haben und ausgerechnet für den Sensor, den man gerade braucht, gibt es leider kein LUA-Modul. Will sagen: Was die Unterstützung von externer Hardware angeht, sehe ich bei NodeMCU/ESP-LUA in der Praxis eher kein grosses Problem. Die vglw. kleine Community von NodeMCU/ESP-LUA hingegen, da sehe ich in der Tat eine grossen Vorteil bei der C/C++-Programmierung per Arduino. Man findet halt wirklich ungleich leichter Tutorials, Code-Beispiele, Leute die einem helfen können usw. Das grösste Problem bei NodeMCU/LUA auf dem ESP8266 ist meiner Erfahrung nach aber wirklich der begrenzte RAM. Beim ESP32 ist das keinerlei Problem mehr, aber bei den nur ca. 40kB nutzbaren RAMs beim ESP8266 stösst man bei Verwendung von LUA halt doch vglw. schnell an die Grenzen, vor Allem wenn man nicht die Hinweise beachtet, wie man Speicher spart. Einen Webserver/eine Weboberfläche direkt in NodeMCU/ESP-LUA zu programmieren bspw. ist zwar grundsätzlich kein Problem, aber auch schnell sehr speicherintensiv. Und auch nur bedingt sinnvoll, denn in der Praxis hat man ja meist nicht nur einen einzigen per ESP angebundenen Sensor/Aktor, sondern gleich mehrere. Sinnvoller ist es da normalerweise, dass alle ESPs die Messwerte der an sie angeschlossenen Sensoren (üblicherweise per MQTT) an einen zentrale Stelle (häufig einen Raspberry Pi) weiterleiten, wo die Daten dann aufbereitet, visualisiert etc. werden. > So für den Einstieg hatte ich mir folgendes vorgenommen: Über einen > Zeitraum von etwa einer Minute vom ADC möglichst viele samples lesen; > rtcfifo scheint hierfür das richtige zu sein. Die dadurch gesammelten > Messwerte dann weiterverarbeiten (Mittelwert, Aufintegrieren etc.) und > zusammen mit den Rohdaten auf dem Webserver des ESP darstellen. Ich bin skeptisch, ob rtcfifo da wirklich sinnvoll ist. Ich habe rtcfifo zwar nie benutzt, aber soweit ich das verstehe, ist rtcfifo vor Allem sinnvoll für Langzeitmessungen, wo man nur alle soundsoviel Sekunden/Minuten einen neuen Messwert einliest und den ESP zwischen diesen Samples zum Stromsparen in den Deep Sleep schickt. Und man kann ja offenbar auch nur ca. 100 Messwerte speichern. Da Du ja aber "möglichst viele" Samples einlesen willst und den Deep Sleep vermutlich gar nicht benutzen willst, dürfte rtcfifo da weder nötig noch sinnvoll sein.
...zur Inspiration: https://github.com/boerge42/Lua-Magie https://github.com/boerge42/nodemcu_scripts Grüße Uwe
Joachim S. schrieb: > Da Du ja > aber "möglichst viele" Samples einlesen willst und den Deep Sleep > vermutlich gar nicht benutzen willst, dürfte rtcfifo da weder nötig noch > sinnvoll sein. Ja da hast Du schon recht. Wie würdest Du denn die Daten sammeln? Uwe B. schrieb: > ...zur Inspiration: > > https://github.com/boerge42/Lua-Magie > https://github.com/boerge42/nodemcu_scripts > > Grüße Uwe Super, vielen Dank, sowas hab ich gesucht!
Basiert der Arduino-Kram eigentlich auf dem RTOS- oder dem NONOS-SDK? Letzteres ist ja EOL und hat noch unzählige Bugs, die wohl nie mehr gefixt werden.
Zach schrieb: > Basiert der Arduino-Kram eigentlich auf dem RTOS- oder dem NONOS-SDK? Noch basiert er auf dem NONOS-SDK, die Entwickler haben aber gerade geschrieben, dass sie einen Wechsel auf RTOS erwägen - was bitte niemand als Ankündigung missverstehen soll. Noch sind sie damit beschäftigt, die zahlreichen Probleme zum umschiffen, die der Upgrade auf Espressif SDK 2.0 (und folgende) mit sich gebracht hat. Das NONOS-SDK Version 1.5.4 auf dem der Arduino Core 2.3.0 basiert, hat nur wenige offene Bugs. Viele davon umschifft der Arduino Core automatisch. Die haben da auch einige Patches eingebracht. Die Liste der offenen Bugs in Version 2.x ist jedoch episch.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.