Wortuhr mit ESP8266 WeMos D1 mini und NeoPixel WS2812B LEDs mit mp3 Sounds, Animationen, Transitions, Events und Spiele

Overview

Wortuhr_ESP8266

Wortuhr mit ESP8266 WeMos D1 mini und NeoPixel WS2812B LEDs mit mp3 Sounds, Animationen, Transitions, Events und Spiele, Webzugriff

Sonstiges:

  • Automatischer W-Lan Reconnect.
  • Mondphase wird in Abwechslung der Temp. und Datumsanzeige angezeigt.
  • Die Minuten LED können nun eine eigene Farbe haben.
  • Silvester CountDown.
  • Zwei Eingabe Taster sind möglich: On/Off und Mode. Diese sind per Touch oder als physikalischer Taster in configuration.h einstellbar.
  • Sonnenauf-/untergangsanimation
  • Ausführen von Adhoc Events mit http-Request:
    z.B.: http://wortuhr-ip/setEvent?text=I+love+you&color=1&audio=701&preani=HERZ&postani=HERZ

Temperatur und Luftdruck:

  • Als Temp. Sensor hatte ich einen BME280.
  • Aufzeichnen der Temperatur und Anzeige im Webfrontend.
  • Aufzeichnen des Luftdrucks und Anzeige im Webfrontend.
  • Wetterlage wird als Animation angezeigt.

Transitions:

  • 16 Transitions (Spirale, Matrix, Zur Mitte, u.s.w.) und diese einzeln oder per Zufall angewählt.
  • Alle Transitions sind jetzt 2 farbig.
    D.h. z.B. Übergang 'nach links': die Buchstaben der 'alten' Zeit verschwinden mit der 'alten' Farbe nach links,
    während rechts die Buchstaben der 'neuen' Zeit mit der 'neuen' Farbe reinkommen.
    (sichtbar natürlich nur wenn die neue Farbe unterschiedlich zur alten Farbe ist. z.B. neue Farbe alle 5 Minuten)

Sound:

  • Anschluss eines MP3 Moduls (https://www.az-delivery.de/products/mp3-player-modul?_pos=1&_sid=9812a53bb&_ss=r) um der Uhr das Sprechen und verschiedene Sound zu entlocken. (Sounds werden einfach auf einer SD Karte nummeriert abgespeichert)
  • Verschiedene Stunden Sounds (Gong, Kuckuck, Vicki sagt die Uhrzeit , Hans sagt die Uhrzeit, usw.) per Settings einstellbar oder pro Tag ein anderer Sound.
  • Soundlautstärke in abh. der Tages/Nachtzeit.
  • Uhr erklärt nun im AP Mode was zu tun ist.
  • zusätzliche Stundensound (Westminster, alte Uhr, Kirche, usw.)

Webfrontend:

  • Webserver ohne das externe CSS File. (Denn die URL kann ja mal in Zukunft nicht mehr funktionieren). Alle CSS Files sind im SPIFFS des ESP abgelegt.
  • Eigenes Wortuhr Favicon eingefügt.
  • Werte auf Info Seite zur Einsicht aller wichtigen Parameter
  • Sonnenaufgangs- und Sonnenuntergangszeiten
  • Wettersymbole

Animationen:

  • Es können eigene Animationen für Deine Events erstellt werden.
    Herz
  • Über den eingebauten Animationseditor können Animationen erstellt werden
    Animationsmenue
    Animationsmenue2
  • Animationen mit bis zu 25 Frames möglich
  • Dadurch der gif2animation Konverter von kollabierer (https://www.kollabierer.de/farbe) direkt nutzbar.
  • Animationen mit Namen ZHHMM werden zur jeweiligen Stunde und Minute angezeigt (z.B. Z1200 startet eine Animation um 12 Uhr)
  • Animation mit Name ALARM wird während des Alarms angezeigt.
    Alarm
  • Alle Animationen werden im SPIFFS unter dem Name ani_ANINAME.json gespeichert und können über den Dateimanager gesichert/kopiert werden.

Events:

  • Verschiedene Melodien werden passend zu den Events abgespielt.
  • Events werden über die Weboberfläche gepflegt.
    Events
  • Es können eigene Animationen für Deine Events erstellt werden.
  • Alle Events werden im SPIFFS unter dem Namen events.json abgelegt und können über den Dateimanager gesichert/kopiert werden.

Spiele:

  • 4 Wortuhrspiele integriert: Snake
    Snake
    Tetris
    Tetris
    Bricks
    Bricks
    4 gewinnt neu
  • Sichern der Highscores im EEPROM

Settings:

  • Eingabe des Zeitservers über die Settings.
  • Systemname,WLan Parameter in Settings.
  • Soundtest in Settings
  • Dateimanager für den SPIFFS.
    Spiffs2
  • Angabe der Location und Höhe über 0 in Settings (wird für die WetterAPI und Berechnung des Luftdrucks auf Meereshöhe benötigt).
  • Hier API-Key von OpenWeather eintragen!
  • Eingabe des Automodeintervall in Settings ( Intervall wie oft verschiedene Modes Wetter, Temperatur, Mondphase... angezeigt werden)
  • Highscores können hier gelöscht werden.
  • Stundensound pro Wochentag einstellbar und Testmöglichkeit der Sounds.
  • "Wochenend Lautstärke Erhöhung" wählbar. Am Wochenende zwischen 5 und 11 Uhr 2 h später lauter.
  • Sprecher Vicki oder Hans.
  • Stundenansage Vicki/Hans 12h oder 24h Format
  • definieren einer Hintergrundfarbe
  • und vieles mehr

System:

  • Neustart mit /reboot
  • compilierbar auch ohne mp3 Player (#define AUDIO_SOUND in der Configuration kommentieren)
  • WLAN Empfangsstärke wird auf der Infoseite angezeigt
  • Anzeige der IP-Adresse im erweiterten Testmenü (nach den Sekunden nochmal die Taste Mode drücken. Hier gibt es dann : IP-Adresse, Matrixtest und Farbentests

Schaltplan:

https://github.com/manfred-hofmann/Wortuhr_ESP8266/blob/main/Platine_Plan_Wortuhr_mp3.pdf

LED-Layout:

Es können verschiedene LED Layouts verwendet werden.
In der configuration.h sind 4 voreingestellte Layouts zu finden:

// Das LED Layout (Siehe in LedDriver.cpp):
#define LED_LAYOUT_HORIZONTAL_2
//#define LED_LAYOUT_VERTICAL_1
//#define LED_LAYOUT_VERTICAL_2
//#define LED_LAYOUT_VERTICAL_3

Die Layouts sind in LedDriver.cpp definiert. Hier können nach belieben auch eigene angelegt werden. Hierbei ist zu beachten:
die ersten 10 Zeilen in ledMap sind die LEDs für die Wörter. die letzte Zeile sind die Minuten LEDs angefangen links oben, rechts oben, rechts unten, links unten und die Alarm LED.
Die Zahlen entsprechen der LED-Nummer in der LED-Kette:

#ifdef LED_LAYOUT_VERTICAL_2
    uint8_t ledMap[] = {
          9,  10,  29,  30,  49,  50,  69,  70,  89,  90, 109,
          8,  11,  28,  31,  48,  51,  68,  71,  88,  91, 108,
          7,  12,  27,  32,  47,  52,  67,  72,  87,  92, 107,
          6,  13,  26,  33,  46,  53,  66,  73,  86,  93, 106,
          5,  14,  25,  34,  45,  54,  65,  74,  85,  94, 105,
          4,  15,  24,  35,  44,  55,  64,  75,  84,  95, 104,
          3,  16,  23,  36,  43,  56,  63,  76,  83,  96, 103,
          2,  17,  22,  37,  42,  57,  62,  77,  82,  97, 102,
          1,  18,  21,  38,  41,  58,  61,  78,  81,  98, 101,
          0,  19,  20,  39,  40,  59,  60,  79,  80,  99, 100,
      112,110,114,113,111
    };
#endif

Hier ein Beispiel Layout:
LED-Layout

Möchte man auf die "Alarm LED" verzichten, so muss in der configuration.h die Anzahl der LEDs angepasst werden:
#define NUMPIXELS 114 -> ohne eigen Alarm LED
#define NUMPIXELS 115 -> mit Alarm LED

Inbetriebnahme:

  • folgende Libraries werden benötigt (min. Versionen) (alle zu finden unter Bibliotheken verwalten):

    • ESP8266 Board Version 2.6.3
    • MP3-Player - DFRobotDFPlayer Version 1.0.5
    • BME280 - Adafruit BME280 Version 2.1.4
    • Adafruit Unified Sensor Version 1.1.4
    • Adafruit Neopixel: Version 1.8.0
    • SunRise: Version 2.0.1 (nur wenn kein Openweather API-Key vorhanden ist)
    • Evt. EspSoftwareSerial Version 6.12.6
    • Openweather API-Key (https://openweathermap.org/) für die Wetterinformationen.
  • Die mp3 Files (Sound) in den Ordner "mp3" auf die SD-Karte kopieren welche in den mp3-Player kommt. Es reicht eine 4GB Karte.

  • Software mit Arduino IDE (min. Version 1.8.12) auf den ESP8266 laden.
    Einstellungen für das Board: (LOLIN(WEMOS) D1 R2 & mini)
    CPU Frequenz auf 160 MHz
    Flash Size 4MB ( FS:2MB OTA~1019KB)
    SLL Support Basic

  • SPIFFS (Sketch Data Upload):
    Das Favicon, Events, Animationen, html Seiten und css Files liegen im SPIFFS des ESP. Dazu muss das data Verzeichniss über "Sketch Data upload" übertragen werden. (vorher den Seriellen Monitor zumachen!)

Wenn du den Menüpunkt nicht hast, hier die Anleitung dazu:
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/entwurf-daten-in-den-flash-speicher-des-esp-ablegen
Und die neueste Version dazu:
https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.5.0/ESP8266FS-0.5.0.zip

  • ESP8266 starten und mit dem Handy das WLAN der Wortuhr (Wortuhr) suchen und anmelden.
  • Dann sollte automatisch der Browser starten. Hier die WLAN Zugangsdaten eingeben.
    (Falls der Browser nicht startet die Default IP des AP ist 172.20.2.1)
  • Danach den ESP8266 neustarten und über die Webadresse des ESP in den Menüpunkt Settings die Wortuhr anpassen.
    Hier sind folgende Punkte wichtig:
  • Systemname
  • Zeitserver
  • API-Key von OpenWeather + Standort + Höhe über Meeresspiegel.
  • Evtl. nochmal die configuration.h durchgehen und die Einstellungen den eigenen Gegebenheiten anpassen!
  • restliche Einstellungen sind auf der Settings Seite zu finden

  • Hier mein Aufbau:


Alles weiter findet sich auf
http://diskussion.christians-bastel-laden.de/viewtopic.php?f=23&t=3846&sid=a6ac77fb774177c3168e12998a42e791
Ein Beispielvideo ist hier zu sehen:
https://www.youtube.com/watch?v=rQZoOGkao-w

Viel Spaß damit!

Issues
  • Keine Daten vom BME_280

    Keine Daten vom BME_280

    Hallo,

    ich verwende den 6 Pin (VCC, GND, SCL, SDA, CSB, SDO) BME 280 Sensor. Diesen habe ich wie im Schaltplan angeschlossen, aber leider spuckt er keine Daten aus. Auf der Info-Seite des ESP8266 werden es immer mehr "Error (BME): 60"

    Kannst du mir hier weiterhelfen?

    opened by Phi2ipp 5
  • RTC Modul

    RTC Modul

    Ein wirklich unglaubliches Projekt. Hast du bereits über die Integration einer RealTimeClock nachgedacht, sodass man die Uhr nur zum aufsetzten mit WiFi betreiben muss?

    opened by LeifGitHub 4
  • Bin FIle in Repo

    Bin FIle in Repo

    Es wäre toll, wenn du ein .bin File immer im Git bereitstellen könntest.

    Ich bin ziemlich am verzweifeln, das Projekt zu kompilieren :D ....

    sketch\Events.cpp: In function 'bool loadEvents()': Events.cpp:57:56: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 57 | events[z].text = myObject["events"][z-1]["text"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ Events.cpp:61:58: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 61 | events[z].preani=myObject["events"][z-1]["preani"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ Events.cpp:63:60: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 63 | events[z].postani=myObject["events"][z-1]["postani"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Events.h:6, from sketch\Events.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\OpenWeather.cpp: In member function 'uint16_t OpenWeather::getOutdoorConditions(String, String)': OpenWeather.cpp:61:66: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 61 | sdescription = weatherArray["weather"][z]["description"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ OpenWeather.cpp:66:61: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 66 | weathericon1 = weatherArray["weather"][z]["icon"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ OpenWeather.cpp:71:61: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 71 | weathericon2 = weatherArray["weather"][z]["icon"]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/JSON.h:23, from C:\Users\Username\SynologyDrive\WindowsProfile\Documents\arduino\libraries\Arduino_JSON\src/Arduino_JSON.h:23, from sketch\OpenWeather.h:8, from sketch\OpenWeather.cpp:5: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\Animation.cpp: In function 'bool loadAnimation(String)': Animation.cpp:139:44: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 139 | wert = myObject["Palette"][palidx]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Animation.h:7, from sketch\Animation.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ sketch\Animation.cpp: In function 'bool loadFrames(uint8_t, String)': Animation.cpp:196:40: error: ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar') 196 | farbwert = myObject[zeile_json][x]; | ^ In file included from C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/Arduino.h:286, from sketch\Animation.h:7, from sketch\Animation.cpp:1: C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:101:17: note: candidate: 'String& String::operator=(const char*)' 101 | String &operator =(const char *cstr); | ^~~~~~~~ C:\Users\Username\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266/WString.h:104:17: note: candidate: 'String& String::operator=(char)' 104 | String &operator =(char c) { | ^~~~~~~~ exit status 1 ambiguous overload for 'operator=' (operand types are 'String' and 'JSONVar')

    opened by n3roGit 4
  • 16x16 LED Matrix support?

    16x16 LED Matrix support?

    Hi Manfred,

    erst mal vielen dank für das tolle Projekt!

    Wäre es Möglich eine fertige 16x16 LED Matrix zu verwenden?

    z.B. Link

    Das würde das Bauen einer solchen Uhr extrem vereinfachen!

    Und man könnte vielleicht die zusätzlichen Pixel für Sekunden nehmen wie z.B. bei dem Projekt: Link

    Danke und viele Grüße,

    Sascha

    opened by bmk666 2
Releases(v.2021.12.02)
  • v.2021.12.02(Dec 3, 2021)

    Neuigkeiten:

    • Neues Spiel Memory (Tiere, Musik und ABBA).
    • Neu strukturierte Info Seite.
    • Ausführliche Bedienungsanleitung.

    Bugfixes:

    • Spiffs Dateimanager zeigt jetzt auch Files an wenn die Liste länger wird.
    • Uhrzeit läuft nach 4 Gewinnt nun weiter, ohne den zurück Button zu drücken.
    • Fade nach der Datum Anzeige nun 2 farbig.

    Sonstiges:

    • SunRise Library nun fester Bestandteil als Backup für Sonnenauf-/untergangsanimationen.
    Source code(tar.gz)
    Source code(zip)
  • v.2021.10.16(Oct 17, 2021)

    Neu im Release 20211016:

    • Hintergrundfarbe
    • neues Spiel 4gewinnt
    • neue Transition Quadrate
    • IP-Adresse im erweiterten Testmenü
    • neue Stundensounds
    • mp3-Files neu strukturiert.
    Source code(tar.gz)
    Source code(zip)
Map joystick events to mouse/key events

enjoy map joystick events to mouse/key events Recently, I got a DevTerm and enjoy is specially written for this device to map joystick events to mouse

null 1 Nov 19, 2021
Create a firework effect with WS2812b LED and a MCU

LED-Fireworks Firework effect with WS2812b LED and a MCU This project uses FastLED library to control the LED strip. WS2812b IC is embedded into each

null 77 May 6, 2022
Hörmann Garage Door Opener mit ESP8266 (direkt über Bus, ohne UAP1 !)

hgdo Hörmann Garage Door Opener für Supramatic E3 und P3 Die Hörmann-Antriebe der Supramatic-3-Serie lassen sich über die Universaladapterplatine UAP1

null 20 Apr 8, 2022
a Blue Pill Neopixel Emulator

NeoPill a Blue Pill Neopixel Emulator, firmware for STM32F103C8T6. To build with STM32CubeMX (6.1.1), open bluepill_neoemu_clk.ioc, generate code in a

null 20 Dec 13, 2021
Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via morse code

Positive Affirmation Morse Code Ring ✨ Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via slowed-down mo

Stephanie 3 Dec 31, 2021
Turing-ring is a simple Turing Machine using just a Nano, a NeoPixel ring and a rotary encoder+push-button The ring is the tape and the UI.

Turing-ring Turing-ring is a simple Turing Machine using just a Nano, a NeoPixel ring and a rotary encoder+push-button The ring is the tape and the UI

Mark Wilson 2 Dec 26, 2021
GTA SA FMOD mod, realistic car engine sounds.

GTA FMOD Informations FMOD is a proprietary sound effects engine and authoring tool for video games and applications developed by Firelight Technologi

Chrystian Farias 21 May 11, 2022
null 225 May 14, 2022
A clock with 241 RGB LEDs

LEDCircleClock A clock with 241 RGB LEDs. Description The clock shows the hands in diferent colors on the grid of LEDs. To make it more beautiful hand

null 17 Feb 26, 2022
Raspberry Pi Pico AutoHotkey Streamdeck / Keyboard with LEDs

Raspberry Pi Pico AutoHotkey Streamdeck / Keyboard with LEDs

Build Comics 17 Feb 10, 2022
Linux kernel module for Onion Omega2 to control WS2811/WS2812 LEDs

omega2-ws2811-lkm Linux kernel module for Onion Omega2 to control WS2811/WS2812 LEDs. It's using a bit-banging, so you can use any GPIO pin. Also, it

Alexey 'Cluster' Avdyukhin 14 Apr 1, 2022
Non-blocking blinking patterns and smooth fade effects for your LEDs and buzzers.

Arduino-Blinkenlight Featured on hackster.io! ?? Supercharge your status-LEDs ?? This library gives you non-blocking blinking patterns and smooth fade

Thomas Feldmann 16 May 1, 2022
Linux kernel platform driver for ASUSTOR NAS hardware (leds, buttons)

asustor-platform-driver Linux kernel platform driver for ASUSTOR NAS hardware (leds, buttons). On many systems, ASUSTOR uses a mix of IT87 and CPU GPI

Mathias Fredriksson 8 Apr 21, 2022
Connected Santa Claus hat based on an ESP32, 8x8 matrices and LEDs stripped communicating over the internet with MQTT.

Protobonnet What is it? A connected Santa Claus hat! What is it called? Le ProtoBonnet! Why? This hat has been created entirely for the Noël des proto

Audrey Cigolotti 2 Dec 27, 2021
A simple program to control the status LEDs of your Raspberry Pi!

ledcontrol is a program which was developed especially for the Raspberry Pi. With the help of this program you can easily turn on or off the status leds of your Raspberry Pi. Or even let them blink in different rythm!

Strawberry Software Industries 7 Apr 1, 2022
Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound.

Plua2c Plua is a superset of Lua for classic PalmOS devices with added support for graphics, UI, networking, events and sound. This is the source code

Cameron Kaiser 8 May 16, 2022
Realtime Micro Kernel -- Event-driven Run-to-Completion RTOS with Active Objects, Timed Events, Memory Pools, and Message Queues

Realtime Micro Kernel Features Active Objects Message queues Variable sized, custom messages Periodic and single timed events Memory pools Supported P

null 2 Feb 25, 2022
Reactive - Simple, non intrusive reactive programming library for C++. (Events + Observable Properties + Reactive Properties)

Header only reactive C++ library. Thread-safe, memory-safe. Concsists from: Event (C# like Event, but thread-safe, does not block while event occurs,

null 58 Mar 3, 2022
A self-contained minimal library for interacting with Linux hot-plug events

libue Zero dependency minimal library for interacting with Linux hot-plug events. Installation Just drop the header file into your C project. Usage #i

QP Hou 20 Feb 10, 2022