-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #61 from beabel/develop_304
Develop 304 to main
- Loading branch information
Showing
17 changed files
with
2,048 additions
and
1,473 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// Bibliotheken für WiFi und Over-the-Air (OTA) Updates | ||
#include <WiFi.h> | ||
#include <ArduinoOTA.h> | ||
|
||
// TFT & Touchscreen Bibliotheken | ||
#include <Adafruit_GFX.h> // Basisbibliothek für Grafikanzeige | ||
#include <Adafruit_ILI9341.h> // Treiberbibliothek für das ILI9341 TFT-Display | ||
#include <XPT2046_Touchscreen.h> // Treiberbibliothek für das XPT2046 Touchscreen | ||
#include <TouchEvent.h> // Bibliothek zur Analyse von Touchscreen-Ereignissen | ||
|
||
// ESP32 Bibliothek zum Speichern von Einstellungen im Flash-Speicher | ||
#include <Preferences.h> | ||
|
||
// Bibliothek für den eingebauten Webserver | ||
#include <WebServer.h> | ||
|
||
// Bibliotheken für Audio-Funktionen | ||
// Enthält Klassen für die Audiowiedergabe und -verarbeitung | ||
#include <AudioFileSourceICYStream.h> // Klasse für den Eingabestream von ICY (Internet Radio) Streams | ||
#include <AudioFileSourceBuffer.h> // Klasse für das Puffern von Audio-Daten | ||
#include <AudioGeneratorMP3.h> // MP3-Decoder Klasse | ||
#include <AudioOutputI2S.h> // Klasse für die Audioausgabe über I2S (Inter-IC Sound) Schnittstelle |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// Pin-Definitionen für verschiedene Komponenten des Projekts | ||
|
||
// Pin für den Lichtsensor (LDR) | ||
#define LDR 36 | ||
|
||
// Pin für den Buzzer auf dem originalen Az-Delivery TouchMod | ||
#define BEEPER 21 | ||
|
||
// Audio-Pins | ||
#define LRCLK 25 // Left-Right Clock für die Audioausgabe | ||
#define BCLK 26 // Bit Clock für die Audioausgabe | ||
#define DOUT 33 // Daten-Ausgang für die Audioausgabe | ||
|
||
// Pins für den Touchscreen | ||
#define TOUCH_CS 14 // Chip Select für den Touchscreen | ||
#define TOUCH_IRQ 27 // Interrupt-Anschluss für den Touchscreen | ||
|
||
// Pins für das TFT-Display | ||
#define TFT_CS 5 // Chip Select für das TFT-Display | ||
#define TFT_DC 4 // Data/Command Pin für das TFT-Display | ||
#define TFT_RST 22 // Reset-Pin für das TFT-Display | ||
#define TFT_LED 15 // Hintergrundbeleuchtung des TFT-Displays | ||
#define LED_ON 0 // Logikpegel für die Hintergrundbeleuchtung (0 = Ein) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
// Instanzen der Preferences-Klasse für die Speicherung von Einstellungen | ||
Preferences pref; // Allgemeine Instanz für die Nutzung der Preferences | ||
Preferences sender; // Zusätzliche Instanz, möglicherweise für spezielle Konfigurationen | ||
|
||
// Struktur zur Speicherung der Stationsdaten | ||
typedef struct { | ||
char url[150]; // URL des Streams der Station | ||
char name[32]; // Name der Station | ||
uint8_t enabled; // Flag zur Aktivierung der Station (1 = aktiv, 0 = inaktiv) | ||
} Station; | ||
|
||
// Konstanten | ||
#define STATIONS 30 // Anzahl der Stationen in der Liste | ||
#define MINUTES_PER_DAY 1440 // Anzahl der Minuten in einem Tag (24 Stunden * 60 Minuten) | ||
|
||
// Globale Variablen | ||
Station stationlist[STATIONS]; // Liste der verfügbaren Stationen | ||
|
||
// Variablen zur Speicherung von Konfigurationsdaten | ||
String ssid = ""; // SSID für die WLAN-Verbindung | ||
String pkey = ""; // Passwort für die WLAN-Verbindung | ||
String ntp = "de.pool.ntp.org"; // URL des NTP-Servers zur Zeitabgleich | ||
uint8_t curStation = 0; // Index der aktuell ausgewählten Station in der stationlist | ||
uint8_t curGain = 200; // Aktuelle Lautstärke (Gain) | ||
uint8_t snoozeTime = 30; // Schlummerzeit in Minuten | ||
uint16_t alarm1 = 390; // Erste Alarmzeit (6:30 Uhr in Minuten nach Mitternacht) | ||
uint8_t alarmday1 = 0B00111110; // Gültige Wochentage für den ersten Alarm (Beispiel: 00111110 = Montag bis Freitag) | ||
uint16_t alarm2 = 480; // Zweite Alarmzeit (8:00 Uhr in Minuten nach Mitternacht) | ||
uint8_t alarmday2 = 0B01000001; // Gültige Wochentage für den zweiten Alarm (Beispiel: 01000001 = Sonntag und Samstag) | ||
uint8_t actStation = 0; // Index der aktuellen Station in der Liste, verwendet für das Streaming | ||
uint8_t bright = 25; // Helligkeit in Prozent. 0 bedeutet, dass der LDR die Helligkeit regelt | ||
|
||
// Weitere globale Variablen | ||
uint32_t lastchange = 0; // Zeitpunkt der letzten Auswahländerung | ||
uint8_t snoozeWait = 0; // Verbleibende Minuten für den Schlummermodus | ||
uint16_t alarmtime = 0; // Nächste relevante Alarmzeit | ||
uint8_t alarmday = 8; // Wochentag für den nächsten relevanten Alarm oder 8 bedeutet Alarm deaktiviert | ||
char title[64]; // Zeichenarray zur Speicherung der Metadaten-Nachricht | ||
bool newTitle = false; // Flag zum Signalisieren eines neuen Titels | ||
uint32_t tick = 0; // Letzter Wert des Tick-Counters zur Auslösung zeitgesteuerter Ereignisse | ||
uint32_t discon = 0; // Tick-Counter-Wert zur Berechnung der Zeit der Trennung | ||
uint16_t minutes; // Aktuelle Anzahl der Minuten seit Mitternacht | ||
uint8_t weekday; // Aktueller Wochentag | ||
struct tm ti; // Zeitstruktur mit der aktuellen Zeit | ||
int16_t lastldr; // Letzter Wert vom LDR-Sensor zur Erkennung von Änderungen | ||
uint32_t start_conf; // Zeitpunkt des Betretens des Konfigurationsbildschirms | ||
boolean connected; // Flag zum Signalisieren einer aktiven Verbindung | ||
boolean radio = false; // Flag zum Signalisieren der Radiowiedergabe | ||
boolean clockmode = true; // Flag zum Signalisieren, dass die Uhrzeit auf dem Bildschirm angezeigt wird | ||
boolean configpage = false; // Flag zum Signalisieren, dass die Konfigurationsseite angezeigt wird | ||
boolean radiopage = false; // Flag zum Signalisieren, dass die Radioauswahlseite angezeigt wird | ||
boolean alarmpage = false; // Flag zum Signalisieren, dass die Alarm-Einstellseite angezeigt wird | ||
|
||
// Definitionen für die Textausrichtung | ||
#define ALIGNLEFT 0 // Textausrichtung: linksbündig | ||
#define ALIGNCENTER 1 // Textausrichtung: zentriert | ||
#define ALIGNRIGHT 2 // Textausrichtung: rechtsbündig | ||
|
||
// Definitionen für Schriftarten | ||
#define FNT9 &AT_Standard9pt7b // Schriftart 9pt | ||
#define FNT12 &AT_Bold12pt7b // Schriftart 12pt | ||
#define LS 23 // Zeilenabstand | ||
|
||
// WLAN-Konfiguration | ||
#define NETWORK_NAME "radioweckerlanname" // Definiert den Hostnamen | ||
#define AP_NAME "radioweckerconf" // Definiert den SSID-Namen des Soft-AP | ||
|
||
// Zeitzonen-Definition für Mitteleuropa (Deutschland, Frankreich, Italien, Spanien, etc.) | ||
#define TIME_ZONE "CET-1CEST,M3.5.0/02,M10.5.0/03" // Zeitzone für Mitteleuropa mit Sommerzeitregelung | ||
|
||
// OTA-Konfiguration | ||
#define OTA_HOSTNAME "radiowecker" // Definiert den Hostnamen für OTA Update | ||
#define OTA_PASSWORD "weckerupdate" // Definiert das Passwort für OTA Update |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#ifndef TEXTE_H | ||
#define TEXTE_H | ||
|
||
#define TXT_DISCONNECT "Disconnect" | ||
#define TXT_SOFT_AP_DISCONNECT "Soft AP disconnect" | ||
#define TXT_SET_WLAN_MODE "Set WLAN Mode" | ||
#define TXT_CONNECTING_TO "Verbindung zu " | ||
#define TXT_CONNECTING_ESTABLISH " herstellen" | ||
#define TXT_NO_CONNECTION "Keine Verbindung! \nStarte Access-Point." | ||
#define TXT_IP_ADDRESS "IP-Adresse = " | ||
|
||
#define TXT_RECONNECTED "Reconnected" | ||
#define TXT_NOT_CONNECTED "Nicht verbunden" | ||
#define TXT_CONNECT_TO_AP "Verbinde dich mit SSID " | ||
#define TXT_CONFIG_IP "Einstellung auf IP: " | ||
|
||
#define TXT_OK "OK" | ||
|
||
//day and month names | ||
const char* const PROGMEM days[] = { "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag" }; | ||
const char* const PROGMEM days_short[] = { "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" }; | ||
const char* PROGMEM months[] = { "Jan.", "Feb.", "März", "April", "Mai", "Juni", "Juli", "Aug.", "Sept.", "Okt.", "Nov.", "Dez." }; | ||
|
||
#endif // TEXTE_H |
Oops, something went wrong.