Hallo mikrocontroller.net! Ich hoffe das ich hier niemanden auf den Schlips trete wenn ich einmal Anfrage ob ihr mir vielleicht ein wenig auf die Sprünge helfen würdet. Gleich vorweg, meine Kenntnisse im bereich Programmiersprache und Mikrocontroller sind nicht gerade berauschend, bis gar nicht vorhanden, was ich aber ein wenig, mit eurer Hilfe, aufbessern möchte. Ich möchte auch keine vorgefertigte Lösung unbedingt haben, nur ein paar schubser in die richtige Richtung. Es geht um folgendes: Ich würde gerne durch Hilfe des ESP8266 für 30 Minuten ein 12VDC Gerät mit Spannung versorgen. Ausgelöst werden soll das ganze per Webinterface, indem ich mich mit dem Mobiltelefon zum ESP Verbinde, und auf "Ein" klicke (vielleicht sogar mit einstellbaren Timer?). Soweit ich jetzt schon herausgefunden habe brauch ich auf jedenfall noch ein Relais, was mir meine 12V Leitung schaltet. Das Relais sollte vom GPIO des ESP angesprochen werden. Nur wie bekomme ich es jetzt zu Stande einen Zeitablauf von 30min (/oder Variabel per Webinterface) zu erstellen ? Mit LUA ? Derzeitiger stand ist folgender, das ich es schon erfolgreich geschafft habe einen AP auf dem ESP einzurichten und per Wlan mich damit verbinden kann. Nur jetzt komme ich einfach nicht mehr weiter. Mfg Andy!
Hi, der ESP8266 hat hardware und software timer. Wenn man das SDK benutzt sind die auf Seite 15 der Dokumentation beschrieben. Damit kannst du einfach eine Funktion schreiben, die irgendetwas tut, und diese vom Timer nach einer gewissen Zeit aufrufen lassen. Wenn du nicht das SDK verwendest, dann guck mal in der Dokumentation die zu deiner Umgebung nach Timer.
> Derzeitiger stand ist folgender, das ich es schon erfolgreich geschafft > habe einen AP auf dem ESP einzurichten und per Wlan mich damit verbinden > kann. Welche Firmware hast du? Ist LUA schon implementiert?
Andy schrieb: > Das Relais sollte vom GPIO des ESP angesprochen werden. Diese Anforderungen bedingt dass du den ESP programmierst. Da bieten sich 3 Varianten an... 1. mit dem (nackten) SDK 2. die LUA Variante 3. per Arduino IDE Ich nutze Variante 3.
Schon einmal danke für eure Antworten! Derzeitig nutze ich noch die AT-Firmware - v0.9.5.0, Ich wollte mir aber heute Abend einmal die Arduino-IDE Variante genauer anschauen. In der hoffnung das diese vielleicht ein wenig leichter zu händeln ist, da vielleicht mehr genutzt auf anderen Geräten.
Hi Andy, für ein solches Projekt verwende ich ausschließlich die NodeMCU Firmware und erstelle die Software in LUA. Warum? Weil die Aufgabe so einfach ist, dass kein weiterer uController erforderlich ist. Auch der komplexere Weg über das SDK ist da zu heftig. In LUA sind das ein paar wenige Zeilen und der Hardware-Aufwand ist ebenfalls minimalistisch. Auch der Zeitaufwand ist für mich so der geringste. In der Doku sind Beispiele für einen Webserver und die Benutzung der Timer. Weiteres findest du in der LUA Doku. Denk aber beim Anschluss des Relais an Transistor, Vorwiderstand und Diode ;-) Gruß kubi
Ich würde dir die Arduino Variante ans Herz legen. Spiele auch gerade mit dem ESP8266 und Arduino rum. https://blog.thesen.eu/esp8266-wlan-microcontroller-mit-der-arduino-ide-programmieren/ Gute Beispiele gibts in der IDE. Für die Zeit geht ein Timer oder du benutzt die Time.h Lib: https://github.com/PaulStoffregen/Time Mfg Bimbo385
"Gleich vorweg, meine Kenntnisse im bereich Programmiersprache und Mikrocontroller sind nicht gerade berauschend, bis gar nicht vorhanden ..." Da solltest du der Empfehlung von kubi folgen. Ein paar Zeilen LUA und dein Projekt läuft.
Ich hab auch vorgestern meinen ESP zum Leben erwacht. Ich würde dir auch LUA ans Herz legen und das ganze mit ESPlorer hochladen. Für diese Zeitschaltuhr sind das wenig Zeilen. Auch das Webinterface sind nicht viele. Wenn es einfach alle 30min toggeln soll oder alle 30min für ein paar Sekunden oder Minuten aktiv sein soll, würde ich einfach tmr.alarm() nehmen. https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#tmralarm
Ich rate dir ganz und gar von LUA ab! Entweder mit AT Befehlen oder mit einer IDE und Code schreiben aber keinen Interpreter der Code wieder interpretiert. aus dem Grunde weil du erst LUA lernen musst und wie es arbeitet und den Code, den LUA umsetzt auch selber schreiben kannst, dafür braucht man kein LUA. Andy schrieb: > Schon einmal danke für eure Antworten! > > Ich wollte mir aber heute Abend einmal die Arduino-IDE Variante genauer > anschauen. Andy schrieb: > Es geht um folgendes: > > Ich würde gerne durch Hilfe des ESP8266 für 30 Minuten ein 12VDC Gerät > mit Spannung versorgen. > Ausgelöst werden soll das ganze per Webinterface, indem ich mich mit dem > Mobiltelefon zum ESP Verbinde, und auf "Ein" klicke (vielleicht sogar > mit einstellbaren Timer?). Timer soll dann wieder "Aus" schalten nehme ich an. > > Soweit ich jetzt schon herausgefunden habe brauch ich auf jedenfall noch > ein Relais, was mir meine 12V Leitung schaltet. > > Das Relais sollte vom GPIO des ESP angesprochen werden. Last ja, Versorgung ( Spule ) musst aufpassen, damit bei Spulenwiderstand nicht zuviel Strom über den GPIO des ESP fliesst > > Nur wie bekomme ich es jetzt zu Stande einen Zeitablauf von 30min (/oder > Variabel per Webinterface) zu erstellen ? Mit LUA ? du schreibst, dass du die Arduino IDE mal ansehen willst. Wenn du dir den Ablauf wie du ihn beschreibst, notierst, und Schritt für Schritt den in der IDE umsetzt kommst du auf etwa sowas mit ein paar Ergänzungen: ESP Wifi AP Mode und wartet auf Eingang vom Mobiltelefon -> über Internet? -> local über normalen AP Mode dabei is das Handy dann Client Kleine Webseite wird angezeigt -> Statusmeldung -> On / OFF -> wenn On, Verbleib Restzeit -> wenn gewünscht, manuel Off Schalter -> wenn Off, Button für 'EIN' -> Setup Button für 'Laufzeit' ( 30 minuten ) kleine Ansatzgedanken , Die Laufzeit wird standardmässig bei 30 minuten liegen. TimerValue = 1800; Eine Änderung wird zu Laufzeit als neuer Variablen Wert gespeichert. TimerValue = 2400; Wenn beim Ausschalten des ESP dieser Variablen Wert erhalten bleiben soll, müsste eine Funktion zum speichern und lesen vom SPI Flash IC eingebaut werden. // read TimerValue = spiflash.read(TimerVar ....) // speichern spiflash.write(TimerVar ...) Ohne Speicherung auf Spi Flash TimerValue = 1800; 30 minuten sind 30 * 60 sekunden also 1800 Sekunden du könntest eine Schleife machen, die die 1800 sekunden abläuft, sozusagen, jedesmal wenn die Schleife durchlaufen ist, zählt sie eins runter, wenn 0 erreicht ist, schaltet der Gpio das Relais aus; while (; TimerValue > 0 ; TimerValue-- ) { // Relais ein } // Relais aus mit dem 'Ein' schalten Button schreibst du der Variablen wieder 1800 Sekunden gut und setzt diese TimerValue = 1800;
Wenn du LUA nimmst und speichern willst, kannst du auch die Werte in eine Datei schreiben. Dann brauchst du nicht extra einen Flash IC bzw. FRAM oder so.
Ist doch egal, welche Sprache ..... Geschmackssache! Vielleicht noch abhängig von Vorwissen, Verfügbarkeit und Lernbereitschaft. Für einen Anfänger ist LUA vielleicht einfacher als C/C++ Ein C++ Jünger wird kein LUA verwenden wollen.
Ich bin auch kein Freund von LUA. Vieles an der Sprache finde ich einfach nur merkwürdig, da ich die Sprache on-the-fly für das NodeMCU lernen musste. Der große Vorteil ist aber, dass man recht schnell und intuitiv mit dem LUA-Code alles zusammenbasteln kann. Außerdem bietet NodeMCU viele Beispiele. Es gibt bereits irgendwo Beispiele im Netz, bei denen LEDs per Web-Interface geschalten wurden. Beim Einschalten musst du lediglich einen Timer starten, der nach den 30 Minuten den GPIO wieder auf 0 setzt. Zum Flashen von dem NodeMCU vorher im Netz schauen, welche Pins du auf welche Pegel setzen musst (z.B. bei Electrodragon) und dann das Tool von NodeMCU verwenden (wichtig: noch die aktuelle Firmware aus dem Netz laden). Wenn du später den Code programmierst, nach dem hochladen des LUA Files das File compilieren. Andernfalls hatte ich immer Probleme, dass der Speicher nicht ausreichte (eventuell habe ich mich einfach mit dem LUA blöd angestellt). Als IDE verwende ich den ESPlorer - schöne IDE. Nachtrag: kurz mal den Arduino-Code für den ESP8266 angeschaut - sieht auch gut aus. Und das lässt sich wahrscheinlich besser programmieren als LUA. Dafür gibt es für den NodeMCU LUA Code wahrscheinlich mehr Beispiele, weil es schon länger verfügbar ist und bereits vielfach eingesetzt wird.
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.