2025-12-1400 Überarbeitet kompl.
This commit is contained in:
@@ -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\"
|
||||||
|
|||||||
67
src/main.cpp
67
src/main.cpp
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user