Git Product home page Git Product logo

wortuhr_esp32_mp3's Introduction

Wortuhr_ESP32_mp3

ESP32 Wortuhr mit Sound, Wetter, Spiele, Transitions, Webzugriff

Hinweis:

Das Wortuhrprojekt mit ESP32 wird nicht mehr weiterentwickelt, da mich die Leistungen des ESP32 nicht überzeugt haben (zu wenig Speicher für SPIFFS, Platzbedarf des Programm im Speichers zu hoch, Multitasking nicht zufriedenstellend)
Deswegen würde ich meine ESP8266 Version vorziehen.
(https://github.com/manfred-hofmann/Wortuhr_ESP8266)

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.

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:

  • 15 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:

  • 3 Wortuhrspiele integriert: Snake
    Snake
    Tetris
    Tetris
    Bricks
    Bricks
  • Sichern der Highscores im NVS

Settings:

  • Eingabe des Zeitservers über die Settings.
  • Systemname,WLan Parameter in Settings.
  • Soundtest in Settings
  • Dateimanager für den SPIFFS.
  • Angabe der Location und Höhe über 0 in Settings (wird für die WetterAPI und Berechnung des Luftdrucks auf Meereshöhe benötigt).
  • Es wird kein API-Key benötigt!
  • 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
  • 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

Schaltplan:

https://github.com/manfred-hofmann/Wortuhr_ESP32_mp3/blob/main/Schaltplan_ESP32_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):
    • ESP32 Board Version 1.0.6
    • 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
    • Evt. EspSoftwareSerial Version 6.12.6 wenn die Fehlermeldung "gpio.h fehlt" erscheint.
  • 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 ESP32 laden.
  • ESP32 starten und mit dem Handy das WLAN der Wortuhr (WU_ESP32) 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)
    (Falls es damit auch Probleme gibt können die WLAN Parameter auch direkt in configuration.h gepflegt werden.)
  • Danach startet der ESP32 neu. Jetzt mit dem Laptop auf die spiffs.html Webseite der ESP-Adresse gehen:
    http://ESP32-IP/spiffs.html
    Spiffs1
  • Hier das komplette data Verzeichniss hochladen.
    Spiffs2
  • Evtl. nochmal die configuration.h durchgehen und die Einstellungen den eigenen Gegebenheiten anpassen!
  • restliche Einstellungen sind auf der Settings Seite zu finden

Alles weiter findet sich auf http://diskussion.christians-bastel-laden.de/viewforum.php?f=23

Ein Beispielvideo ist hier zu sehen:
https://www.youtube.com/watch?v=rQZoOGkao-w

wortuhr_esp32_mp3's People

Contributors

manfred-hofmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

wortuhr_esp32_mp3's Issues

yrno.cpp compile error: rnoclient -> setInsecure();

Arduino: 1.8.16 (Linux), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

/home/revilo/Arduino/WortUhr_ESP32/Wortuhr_esp32_mp3/yrno.cpp: In member function 'uint16_t yrno::getOutdoorConditions(double, double)':
yrno.cpp:33:15: error: 'class WiFiClientSecure' has no member named 'setInsecure'
yrnoclient -> setInsecure(); //ohne Certificate Check
^
Multiple libraries were found for "SoftwareSerial.h"
Used: /home/revilo/Arduino/libraries/EspSoftwareSerial
Not used: /home/revilo/Arduino/libraries/SoftwareSerial
exit status 1
'class WiFiClientSecure' has no member named 'setInsecure'

uppercase/lowercase error

Hi, try to compile under linux, got this error:
In file included from /home/revilo/Arduino/WortUhr_ESP32/Wortuhr_esp32_mp3/Wortuhr_esp32_mp3.ino:100:0:
Ntp.h:10:21: fatal error: WiFiUDP.h: No such file or directory
compilation terminated.
exit status 1
WiFiUDP.h: No such file or directory

The correct is "WiFiUdp.h", not "WiFiUDP.h"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.