Projekt:SpaceLED: Unterschied zwischen den Versionen
Dg3hda (Diskussion | Beiträge) (→Code) |
Dg3hda (Diskussion | Beiträge) (→Code) |
||
Zeile 24: | Zeile 24: | ||
<pre> | <pre> | ||
let pcount = 0 | let pcount = 0 | ||
let toffen = | let toffen = 255000 | ||
let tzu = | let tzu = 255000 | ||
let twlgrace = 45000 | let twlgrace = 45000 | ||
let wlssid = "invalid" | let wlssid = "invalid" | ||
Zeile 61: | Zeile 61: | ||
* 25.04.2016: Projektseite angefangen. Mangels Steckkontakten ist der grüne Die noch nicht angeschlossen und wird auch nicht angesteuert. | * 25.04.2016: Projektseite angefangen. Mangels Steckkontakten ist der grüne Die noch nicht angeschlossen und wird auch nicht angesteuert. | ||
* 30.04.2016 : Code buggy | * 30.04.2016 : Code buggy | ||
* 01.05.2016 : Code wieder ganz, | * 01.05.2016 : Code wieder ganz, Wifi-Down funktioniert. Geht immer nur ein Timer. Stromersparnis ist eher flach, Netzteil meint statt ~114 mA eher 104 mA anzuliefern (schwankend.) Next step: Schauen ob es GPIOs gibt die im Sleepmode Zustand halten, wenn nicht: WS2812 "Programmierbare LED" oder dergleichen, die während des ESP8266-Sleepmode weiter das letzte Kommando ausführt. |
Version vom 1. Mai 2016, 20:55 Uhr
Übersicht
Es wird beschrieben wie man mit einem NodeMCU-(Clone)-Board, WLAN, drei Widerständen und einer RGB-LED den Zustand des Space in sein Wohnzimmer holen kann. Sofern die Schaltung mit Strom und WLAN-Internetzugang versorgt wird ist sie aus, wenn der Space offen ist, oder rot, wenn ers nicht ist. Während des Update leuchtet sie blau.
Ansprechpartner
Hendrik
SpaceLED
Artikel in Arbeit
ESP8266BASIC
Mein NodeMCU habe ich der guten alten Zeit willen mit ESP8266BASIC beladen. Wie es geht, steht auf deren Website.
Funktionsweise Hardware
Zwei Pins sind über Widerstände mit einer RGB-LED verbunden, wobei Port 0 die Rote versorgt, Port 4 die Blaue. Masse ist normal mit GND verbunden.
Funktionsweise Software
Das Programm ruft zeitgesteuert den Zustand von http://status.schaffenburg.org ab, schaut ob das erste Zeichen ein "v" für verriegelt ist. Wird der Space offen gemeldet, wird der Port an dem die rote LED hängt LO geschaltet, wird der Space verriegelt gemeldet, so wird der Pin high.
Code
Der folgende Code ist mit ESP8266BASIC Version 2.0 Alpha 10 lauffähig. Voraussetzung ist das korrekte eintragen der Zugangsdaten als WLAN-Client und Freigabe für Internetzugriff. Ich habe dem Client nur Whitelistzugriff gegeben um ihn von anderen Websites fernzuhalten (damit er kein PR0N schaut) und hausintern einen DNS-Namen gegeben, um ihn nicht nur mit der IP-Adresse ansprechen zu können. Das Wiedernachschau-Intervall ist 5 Minuten, davon ist WIFI nur in den ersten 45 Sekunden an, danach wird es abgeschaltet zum Stromsparen. Die blaue LED leuchtet während WLAN erreichbar ist.
let pcount = 0 let toffen = 255000 let tzu = 255000 let twlgrace = 45000 let wlssid = "invalid" let wlpass = "yesimprettyohsoprettyimsoprettyandwittyandgay" timer 100,[service] [service] connect wlssid wlpass pcount=pcount+1 cls po 4 1 Status = left(wget("status.schaffenburg.org/"),1) if Status == "v" then po 0 1 else po 0 0 if Status == "v" then wprint "Geschlossen" else wprint "Offen" if Status == "v" then twldown = tzu else twldown=toffen print pcount timer 100,[wlgrace] wait [wlgrace] timer twlgrace,[wloff] wait [wloff] wifioff po 4 0 timer twldown,[service] wait
Lesestoff
Projekttagebuch:
- 25.04.2016: Projektseite angefangen. Mangels Steckkontakten ist der grüne Die noch nicht angeschlossen und wird auch nicht angesteuert.
- 30.04.2016 : Code buggy
- 01.05.2016 : Code wieder ganz, Wifi-Down funktioniert. Geht immer nur ein Timer. Stromersparnis ist eher flach, Netzteil meint statt ~114 mA eher 104 mA anzuliefern (schwankend.) Next step: Schauen ob es GPIOs gibt die im Sleepmode Zustand halten, wenn nicht: WS2812 "Programmierbare LED" oder dergleichen, die während des ESP8266-Sleepmode weiter das letzte Kommando ausführt.