2025-12-1400 Überarbeitet kompl.

This commit is contained in:
2025-12-14 01:29:23 +01:00
parent a3457e242b
commit 9e1fe9072a
2 changed files with 62 additions and 15 deletions

View File

@@ -23,7 +23,7 @@ lib_deps =
;adafruit/Adafruit BusIO @ 1.7.2 ;adafruit/Adafruit BusIO @ 1.7.2
build_flags = build_flags =
-DSCAN=16 -DSCAN=32
[env:debug] ; Entwicklungssystem [env:debug] ; Entwicklungssystem
@@ -39,6 +39,8 @@ build_flags = ${env.build_flags}
-DSUBNET=\"255.255.255.0\" -DSUBNET=\"255.255.255.0\"
-Dmqtt_server=\"hjkmqtt.dedyn.io\" -Dmqtt_server=\"hjkmqtt.dedyn.io\"
-Dmqtt_port=61883 -Dmqtt_port=61883
-Dmqtt_user=\"hjk\"
-Dmqtt_pass=\"51Fische#\"
-DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\" -DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\"
-DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\" -DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\"
;-DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\" ;-DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\"
@@ -62,7 +64,7 @@ build_flags = ${env.build_flags}
-DSECONDARDNS=\"8.8.8.8\" -DSECONDARDNS=\"8.8.8.8\"
-Dmqtt_server=\"192.168.2.55\" -Dmqtt_server=\"192.168.2.55\"
-Dmqtt_port=1883 -Dmqtt_port=1883
-Dmqtt_user=\"boris" -Dmqtt_user=\"boris\"
-Dmqtt_pass=\"13.April13\" -Dmqtt_pass=\"13.April13\"
-DINNEN=\"hjk/devices/MESSUNITTEMPBORIS/telemetry/temperature_Htu_21\" -DINNEN=\"hjk/devices/MESSUNITTEMPBORIS/telemetry/temperature_Htu_21\"
-DAKKU=\"hjk/devices/WETTERSTATIONBORIS/telemetry/battery\" -DAKKU=\"hjk/devices/WETTERSTATIONBORIS/telemetry/battery\"
@@ -82,8 +84,10 @@ build_flags = ${env.build_flags}
-DSECONDARDNS=\"8.8.8.8\" -DSECONDARDNS=\"8.8.8.8\"
-DMYIP=\"192.168.127.44\" -DMYIP=\"192.168.127.44\"
-DSUBNET=\"255.255.255.0\" -DSUBNET=\"255.255.255.0\"
-Dmqtt_server=\"192.168.127.251\" -Dmqtt_server=\"192.168.127.193\"
-Dmqtt_port=1883 -Dmqtt_port=1883
-Dmqtt_user=\"hjk\"
-Dmqtt_pass=\"51Fische#\"
-DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\" -DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\"
-DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\" -DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\"
-DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\" -DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\"

View File

@@ -28,8 +28,8 @@
#define P_B 23 #define P_B 23
#define P_C 18 #define P_C 18
#define P_D 5 #define P_D 5
//#define P_E 15 #define P_E 15
#define P_E -1 //#define P_E -1
#define P_OE 16 #define P_OE 16
hw_timer_t * timer = NULL; hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
@@ -68,15 +68,15 @@ PubSubClient client(espClient);
#define CO2_CRITICAL_PPM 1850 #define CO2_CRITICAL_PPM 1850
#define matrix_width 64 #define matrix_width 64
#define matrix_height 32 #define matrix_height 64
// This defines the 'on' time of the display is us. The larger this number, ---> Dies definiert die Einschaltzeit des Displays. Je größer diese Zahl, // This defines the 'on' time of the display is us. The larger this number, ---> Dies definiert die Einschaltzeit des Displays. Je größer diese Zahl,
// the brighter the display. If too large the ESP will crash ---> desto heller das Display. Wenn zu groß, stürzt das ESP ab // the brighter the display. If too large the ESP will crash ---> desto heller das Display. Wenn zu groß, stürzt das ESP ab
uint8_t display_draw_time=45; //30-70 is usually fine ---> 30-70 ist normalerweise in Ordnung uint8_t display_draw_time=45; //30-70 is usually fine ---> 30-70 ist normalerweise in Ordnung
//PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C); //PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D); //PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
//PxMATRIX display(64,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E); PxMATRIX display(64,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
// Some standard colors // Some standard colors
uint16_t myRED = display.color565(255, 0, 0); uint16_t myRED = display.color565(255, 0, 0);
@@ -131,7 +131,7 @@ float TempWohn = -99.90;
float TempFlur = -99.99; float TempFlur = -99.99;
float Luftfeuchtigkeit = 0.00; float Luftfeuchtigkeit = 0.00;
float Akku = -99.00; float Akku = -99.00;
int Helligkeit = 255; int Helligkeit = 64;
const char* const PROGMEM DAY_NAMES[] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"}; const char* const PROGMEM DAY_NAMES[] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"};
@@ -172,6 +172,8 @@ bool getNTPtime(int sec);
void showTime(tm localTime); void showTime(tm localTime);
static uint32_t lastTime = 0; // millis() memory static uint32_t lastTime = 0; // millis() memory
static void setup_wifi(); static void setup_wifi();
void ZeigeTemperatur(float temperatur, uint16_t Color);
void ZeigeInnenFeuchtigkeit(float Luftfeuchtigkeit);
#ifdef ESP8266 #ifdef ESP8266
// ISR for display refresh // ISR for display refresh
@@ -504,7 +506,7 @@ void setup() {
//display.begin(8, 14, 13, 12, 4); //display.begin(8, 14, 13, 12, 4);
// Define multiplex implemention here {BINARY, STRAIGHT} (default is BINARY) // Define multiplex implemention here {BINARY, STRAIGHT} (default is BINARY)
display.setMuxPattern(BINARY); //display.setMuxPattern(BINARY);
// Set the multiplex pattern {LINE, ZIGZAG,ZZAGG, ZAGGIZ, WZAGZIG, VZAG, ZAGZIG} (default is LINE) // Set the multiplex pattern {LINE, ZIGZAG,ZZAGG, ZAGGIZ, WZAGZIG, VZAG, ZAGZIG} (default is LINE)
display.setScanPattern(LINE); display.setScanPattern(LINE);
@@ -523,7 +525,8 @@ void setup() {
display.setMuxPattern(BINARY); display.setMuxPattern(BINARY);
// Set the color order {RRGGBB, RRBBGG, GGRRBB, GGBBRR, BBRRGG, BBGGRR} (default is RRGGBB) // Set the color order {RRGGBB, RRBBGG, GGRRBB, GGBBRR, BBRRGG, BBGGRR} (default is RRGGBB)
display.setColorOrder(RRBBGG); display.setColorOrder(RRGGBB);
//display.setColorOrder(BBRRGG);
// Set the time in microseconds that we pause after selecting each mux channel // Set the time in microseconds that we pause after selecting each mux channel
// (May help if some rows are missing / the mux chip is too slow) // (May help if some rows are missing / the mux chip is too slow)
@@ -544,12 +547,12 @@ void setup() {
display.setCursor(30,0); display.setCursor(30,0);
display.print("Time"); */ display.print("Time"); */
//---------------------- //----------------------
/* display.setTextColor(myBLUE); display.setTextColor(myBLUE);
display.setCursor(2,matrix_height-8); display.setCursor(2,matrix_height-8);
display.print("Pixel"); display.print("Pixel");
display.setTextColor(myYELLOW); display.setTextColor(myYELLOW);
display.setCursor(30,matrix_height-8); display.setCursor(30,matrix_height-8);
display.print("1234"); */ display.print("1234");
display_update_enable(true); display_update_enable(true);
//-------------------------------------------------- //--------------------------------------------------
//-------------------------------------------------- //--------------------------------------------------
@@ -776,7 +779,12 @@ void loop() {
blinkSek = !blinkSek; blinkSek = !blinkSek;
ZeigeDatum(timeinfo, 1, 0); ZeigeDatum(timeinfo, 1, 0);
ZeigeZeit(timeinfo, TimeX, TimeY); ZeigeZeit(timeinfo, TimeX, TimeY);
//ZeigeZeit(timeinfo, 1,40); ZeigeTemperatur(TempWohn, myGREEN);
ZeigeInnenFeuchtigkeit(Luftfeuchtigkeit);
display.fillRect(0, 32, 64, 9, myBLUE);
display.fillRect(0, 41, 64, 9, myRED);
display.fillRect(0, 50, 64, 9, myYELLOW);
#ifdef Co2 #ifdef Co2
ZeigeCO(1,CoY); ZeigeCO(1,CoY);
#endif #endif
@@ -812,7 +820,7 @@ void loop() {
scroll_text2(matrix_height-24,20,"Frohes neues Jahr 2022.", 128,255,0, true); */ scroll_text2(matrix_height-24,20,"Frohes neues Jahr 2022.", 128,255,0, true); */
//ZeigeWetter(double(TempWohn), WetterY,WetterX); //ZeigeWetter(double(TempWohn), WetterY,WetterX);
if (Aussentemp > -99.9){ if (Aussentemp > 99.9){
char szWetter[10]; char szWetter[10];
#ifdef FLUR #ifdef FLUR
dtostrf(TempFlur, 4, 1, szWetter); dtostrf(TempFlur, 4, 1, szWetter);
@@ -889,3 +897,38 @@ void showTime(tm localTime) {
(localTime.tm_isdst == 1 ? "summer" : "standard") (localTime.tm_isdst == 1 ? "summer" : "standard")
); );
} }
void ZeigeTemperatur(float temperatur, uint16_t Color){
char szWetter[15];
if (Aussentemp > -99)
{
dtostrf(temperatur, 5, 1, szWetter);
display.setFont();
display.setCursor(1, 24);
display.setTextColor(Color);
display.fillRect(0, 23, 40, 9, myBLACK);
display.print(szWetter);
display.setCursor(31, 19);
display.setFont(&Picopixel);
display.print("o");
display.setCursor(34, 80);
display.setFont();
display.print("C");
display.setFont(0);
}
}
void ZeigeInnenFeuchtigkeit(float Luftfeuchtigkeit){
char szWetter[15];
if (Aussentemp > -99)
{
dtostrf(Luftfeuchtigkeit, 2, 0, szWetter);
display.setFont();
display.setCursor(40, 24);
display.setTextColor(myGREEN);
display.fillRect(40, 23, 64, 9, myBLACK);
display.print(szWetter);
display.print("%");
display.setFont(0);
}
}