ESP-8266 Programm für den Wetterbimmler
Thorsten Riess ffee71a317 corr download interval 1 year ago
README.md corr md syntax 1 year ago
wetterbimmler.ino corr download interval 1 year ago

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.