From 9e1fe9072a8d7f8aa804054ba171fac0ab8cdca5 Mon Sep 17 00:00:00 2001 From: hans-jurgen Date: Sun, 14 Dec 2025 01:29:23 +0100 Subject: [PATCH] =?UTF-8?q?2025-12-1400=20=C3=9Cberarbeitet=20kompl.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformio.ini | 10 +++++--- src/main.cpp | 67 +++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/platformio.ini b/platformio.ini index eef16c8..f398582 100644 --- a/platformio.ini +++ b/platformio.ini @@ -23,7 +23,7 @@ lib_deps = ;adafruit/Adafruit BusIO @ 1.7.2 build_flags = - -DSCAN=16 + -DSCAN=32 [env:debug] ; Entwicklungssystem @@ -39,6 +39,8 @@ build_flags = ${env.build_flags} -DSUBNET=\"255.255.255.0\" -Dmqtt_server=\"hjkmqtt.dedyn.io\" -Dmqtt_port=61883 + -Dmqtt_user=\"hjk\" + -Dmqtt_pass=\"51Fische#\" -DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\" -DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\" ;-DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\" @@ -62,7 +64,7 @@ build_flags = ${env.build_flags} -DSECONDARDNS=\"8.8.8.8\" -Dmqtt_server=\"192.168.2.55\" -Dmqtt_port=1883 - -Dmqtt_user=\"boris" + -Dmqtt_user=\"boris\" -Dmqtt_pass=\"13.April13\" -DINNEN=\"hjk/devices/MESSUNITTEMPBORIS/telemetry/temperature_Htu_21\" -DAKKU=\"hjk/devices/WETTERSTATIONBORIS/telemetry/battery\" @@ -82,8 +84,10 @@ build_flags = ${env.build_flags} -DSECONDARDNS=\"8.8.8.8\" -DMYIP=\"192.168.127.44\" -DSUBNET=\"255.255.255.0\" - -Dmqtt_server=\"192.168.127.251\" + -Dmqtt_server=\"192.168.127.193\" -Dmqtt_port=1883 + -Dmqtt_user=\"hjk\" + -Dmqtt_pass=\"51Fische#\" -DINNEN=\"hjk/devices/TEMPWOHNZIM/telemetry/temperature\" -DINNENHUMITY=\"hjk/devices/TEMPWOHNZIM/telemetry/humity\" -DFLUR=\"hjk/devices/TEMPFLUR/telemetry/temperature\" diff --git a/src/main.cpp b/src/main.cpp index 421af94..f57b65a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,8 +28,8 @@ #define P_B 23 #define P_C 18 #define P_D 5 -//#define P_E 15 -#define P_E -1 +#define P_E 15 +//#define P_E -1 #define P_OE 16 hw_timer_t * timer = NULL; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; @@ -68,15 +68,15 @@ PubSubClient client(espClient); #define CO2_CRITICAL_PPM 1850 #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, // 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 //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,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E); +//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); // Some standard colors uint16_t myRED = display.color565(255, 0, 0); @@ -131,7 +131,7 @@ float TempWohn = -99.90; float TempFlur = -99.99; float Luftfeuchtigkeit = 0.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"}; @@ -172,6 +172,8 @@ bool getNTPtime(int sec); void showTime(tm localTime); static uint32_t lastTime = 0; // millis() memory static void setup_wifi(); +void ZeigeTemperatur(float temperatur, uint16_t Color); +void ZeigeInnenFeuchtigkeit(float Luftfeuchtigkeit); #ifdef ESP8266 // ISR for display refresh @@ -504,7 +506,7 @@ void setup() { //display.begin(8, 14, 13, 12, 4); // 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) display.setScanPattern(LINE); @@ -523,7 +525,8 @@ void setup() { display.setMuxPattern(BINARY); // 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 // (May help if some rows are missing / the mux chip is too slow) @@ -544,12 +547,12 @@ void setup() { display.setCursor(30,0); display.print("Time"); */ //---------------------- - /* display.setTextColor(myBLUE); + display.setTextColor(myBLUE); display.setCursor(2,matrix_height-8); display.print("Pixel"); display.setTextColor(myYELLOW); display.setCursor(30,matrix_height-8); - display.print("1234"); */ + display.print("1234"); display_update_enable(true); //-------------------------------------------------- //-------------------------------------------------- @@ -776,7 +779,12 @@ void loop() { blinkSek = !blinkSek; ZeigeDatum(timeinfo, 1, 0); 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 ZeigeCO(1,CoY); #endif @@ -812,7 +820,7 @@ void loop() { scroll_text2(matrix_height-24,20,"Frohes neues Jahr 2022.", 128,255,0, true); */ //ZeigeWetter(double(TempWohn), WetterY,WetterX); - if (Aussentemp > -99.9){ + if (Aussentemp > 99.9){ char szWetter[10]; #ifdef FLUR dtostrf(TempFlur, 4, 1, szWetter); @@ -889,3 +897,38 @@ void showTime(tm localTime) { (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); + } +} \ No newline at end of file