Projekt:SpaceLED: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Projekt
|name            = SpaceLED
|status          = stable
|beschreibung = Anzeige ob Space offen
|autor          = [[Benutzer:Dg3hda|Hendi]]
|owner          = Dg3hda
|image          = LeuchtiAKASpaceLED.jpg
|imagesize      =240
}}
= Übersicht =
= Übersicht =
Es wird beschrieben wie man mit einem auf dem ESP8266 "IoT Chip" basierenden NodeMCU-(Clone)-Board, WLAN, und etwas LED-Zauberei den Zustand des Space in sein Wohnzimmer holen kann. Es gibt zwei Varianten des Codes, eine für eine RGB-LED direkt an der GPIO des ESP-Moduls, eine andere verwendet eine LED mit eingebautem adressierbaren Treiber WS2812, welche die zuletzt gewählten Helligkeits- und Farbeinstellungen speichert und das etwas energiehungrigere ESP-Modul zwischen den Abfragen in den Sleepmodus versetzt wird.  
Es wird beschrieben wie man mit einem auf dem ESP8266 "IoT Chip" basierenden NodeMCU-(Clone)-Board, WLAN, und etwas LED-Zauberei den Zustand des Space in sein Wohnzimmer holen kann. Es gibt zwei Varianten des Codes, eine für eine RGB-LED direkt an der GPIO des ESP-Moduls, eine andere verwendet eine LED mit eingebautem adressierbaren Treiber WS2812, welche die zuletzt gewählten Helligkeits- und Farbeinstellungen speichert und das etwas energiehungrigere ESP-Modul zwischen den Abfragen in den Sleepmodus versetzt wird. Ein C++ code für die Arduino IDE entsteht auch.


== Ansprechpartner ==
== Ansprechpartner ==


Hendrik
* Hendrik[[Datei:rindphi.jpg|50px|]]: Idee, Implementierung mit BASIC
* Marcel: C++ Versionen




''Artikel in Arbeit''
''Artikel in Arbeit''
== Grundlage: ESP8266BASIC==
Mein NodeMCU habe ich der guten alten Zeit willen mit [http://www.esp8266basic.com/ ESP8266BASIC] beladen. Wie es geht, steht auf deren Website.


==Hardware==
==Hardware==
Zeile 26: Zeile 34:


[[:File:SpaceLED V1.PNG]]
[[:File:SpaceLED V1.PNG]]
== Implementierung mit ESP8266BASIC==
Mein NodeMCU habe ich der guten alten Zeit willen mit [http://www.esp8266basic.com/ ESP8266BASIC] beladen. Wie es geht, steht auf deren Website.
===Hinweise:===
* Bei neueren Versionen muss in Einstellungen ein Häkchen bei "default Skript automatisch starten" (oder so ähnlich) gesetzt werden (nach der sleep-phase startet der esp neu und macht daher ohne aktivierten autostart einfach nichts mehr)
* Der Arduino (wie es auf der Basic-Website zu sehen) wird nur gebraucht wenn man einen nackten ESP flashen will. Wahrscheinlich hast du aber ein "Entwicklerboard", wie z.B. NodeMCU, das du per USB an deinen Rechner hängen kannst - diese kannst du direkt mit dem Programm von der Website flashen


===Funktionsweise Software===
===Funktionsweise Software===
Das Programm ruft zeitgesteuert den Zustand von https://status.schaffenburg.org ab, schaut ob das erste Zeichen ein "v" für verriegelt ist.  
Das Programm ruft zeitgesteuert den Zustand von http://status.schaffenburg.org ab, schaut ob das erste Zeichen ein "v" für verriegelt ist.  


Abhängig von der LED-Variante wird nun durch die LED-Farbe der Zustand des Space gemeldet:
Abhängig von der LED-Variante wird nun durch die LED-Farbe der Zustand des Space gemeldet:
Zeile 38: Zeile 53:
Dazu kommt zeitweise noch Weiß: Das sagt nichts über den Space. Es bedeutet: Abfrage läuft. Bei Sleepmode-Variante gibt es einen Blauschimmer während der grace period und bedeutet WLAN ansprechbar.
Dazu kommt zeitweise noch Weiß: Das sagt nichts über den Space. Es bedeutet: Abfrage läuft. Bei Sleepmode-Variante gibt es einen Blauschimmer während der grace period und bedeutet WLAN ansprechbar.


==Code==
== Implementierung mit C++ ==
* Marcel hat inzwischen auch eine C++ Variante mit der Arduino IDE geschrieben. Den Sketch gibt's <u>[https://github.com/Schaffenburg/SpaceLED-ESP8266-cpp hier bei Github]</u> (Ist noch in der Beta, Code ist für ansteuerbare LED, normale RGB-LED und auch für einzelne LEDs geeignet, Stromsparmodi fehlen noch.)
 
==Code BASIC==
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, aber der Timer erschien mir bisher ein bischen flaky.
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, aber der Timer erschien mir bisher ein bischen flaky.


Zeile 77: Zeile 95:
let boottime=30
let boottime=30
let graceperiod=60
let graceperiod=60
timer 100,[service]
timer 200,[service]
wait
wait


[service]
[service]
timer 0
neo(0,25,25,25)
neo(0,25,25,25)
cls
cls
Zeile 99: Zeile 118:
tdown=tdown-graceperiod
tdown=tdown-graceperiod
if Status == "v" then neo(0,25,0,0)
if Status == "v" then neo(0,25,0,0)
if Status == "o" then neo(0,0,25,0)no
if Status == "o" then neo(0,0,25,0)
sleep tdown
sleep tdown
wait
wait
</pre>
</pre>
===


==Lesestoff==
==Lesestoff==
mitglieder, vorstand
1.621

Bearbeitungen