|
||
---|---|---|
README.md | ||
wetterbimmler.ino |
README.md
Wetterbimmler
ESP-8266 Programm für den Wetterbimmler, siehe Wetterbimmler.
Vorbereitung
Die Software ist für die Arduino-IDE und ein ESP-8266-Board, getestet wurde sie mit den Boards NodeMCU und WeMos D1, andere Board funktionieren vermutlich ähnlich.
Zunächst benötigt man also die Arduino-IDE von der Arduino Homepage (dort unter "Download" / "Download IDE").
Danach muss man noch die ESP-8266 Unterstützung integrieren, das geht über "Datei" - "Voreinstellungen" und die zusätzliche Boardverwalter-URL http://arduino.esp8266.com/stable/package_esp8266com_index.json
eintragen.
Dann unter "Werkzeuge" - "Board" - "Boardverwalter..." die "esp8266"-Boardtypen installieren und unter "Werkzeuge" - "Board" das richtige Board auswählen (z.B. NodeMCU oder WeMos D1).
Schließlich müssen noch zusätzliche Bibliotheken installiert werden, dazu unter "Sketch" - "Bibliothek einbinden" - "Bibliotheken verwalten..." die folgenden Bibliotheken herunterladen: ArduinoJson, FastLED und WifiManager.
Nun ist die Arduino IDE bereit, nun noch den Quellcode aus diesem Git-Repository clonen (via git clone https://git.hacknology.de/tecer/wetterbimmler.git
) und wetterbimmler.ino
in der IDE öffnen. Vor dem Kompilieren sollten noch einige Dinge angepasst werden:
Defines
Folgende Konstanten sind vorgesehen:
- NUM_LEDS: die Anzahl der verwendeten LEDs. Funktioniert im Moment mit 14 oder 16 (jeweils 2 LEDs pro Warngruppe, Warngruppe 8 wird bei 14 LEDs weggelassen)
- DEBUG: Debug-Ausgabe über USB
- DEMO_PAUSE: Wie lange eine Warnung im Demo-Modus gehalten wird (in 2-Sekunden-Schritten)
- BIMMEL_POWER: Motorgeschwindigkeit des Bimmel-Motors (0-1024, wobei bei 1024 mehr oder weniger 3V am für 1,5V ausgelegten Motor anliegen, sollte also besser <=512 bleiben)
- WS2812PIN: GPIO-Pin für den LED-Streifen
- MOTORPIN: GPIO-Pin für Motor-Enable des Motortreibers
- PHASEPIN: GPIO-Pin für Motor-Phase des Motortreibers (MOTORPIN und PHASEPIN sind optional, der Wetterbimmler kann auch komplett ohne Bimmel betrieben werden)
- SLEEPPIN: GPIO-Pin für Sleep des Motortreibers
- DEMOSWITCH: GPIO-Pin für den Demo-Taster (nutzt internen Pull-up und der Taster zieht den Pin auf Masse - optional)
- AMBIENTPIN: GPIO-Pin für einen weiteren LED-Streifen, der als Ambient Light genutzt werden kann (optional)
- NUM_AMBIENT_LEDS: Anzahl der LEDs des zusätzlichen LED-Streifens
Hier ist zu beachten, dass jeweils die reinen GPIO-Pin-Nummern gemeint sind, die haben i.a. nichts mit den Beschriftungen (D0, D1 usw.) zu tun! Die Zuordnung der GPIOs zu den entsprechend beschrifteten Pins erhält man am einfachsten per Google-Suche nach "BOARDNAME pinout". Im Quelltext sind einige Zuordnungen in den Kommentaren vermerkt.