V 1.5.2 Versionszeit anzeigen, Offsets per MQTT einstellbar
This commit is contained in:
@@ -339,8 +339,8 @@ void drawChart()
|
||||
|
||||
// Versionsnummer und Datum
|
||||
lv_obj_t *version_label = lv_label_create(lv_screen_active());
|
||||
char ver[20];
|
||||
sprintf(ver, "V %s %s", VERSION, VDATE);
|
||||
char ver[40];
|
||||
sprintf(ver, "V %s %s %s", VERSION, VDATE, VTIME);
|
||||
lv_label_set_text(version_label, ver);
|
||||
lv_obj_align(version_label, LV_ALIGN_BOTTOM_MID, 0, 0);
|
||||
lv_obj_add_style(version_label, &style_info_label, LV_PART_MAIN);
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
// Feuchte immer deutlich zu niedrig. Mit Hilfe der Sättigungs-Tabelle wird nun die absolute Feuchte bei der
|
||||
// wahren Temperatur (Tmess - 3.2°C) ermittelt und dann die relative Feuchte berechnet.
|
||||
|
||||
#define INTERPOL
|
||||
|
||||
#include <math.h>
|
||||
#include "interpolation.h"
|
||||
|
||||
|
||||
@@ -13,9 +13,14 @@ const float dampftabelle[] = {
|
||||
// 30, 31, 32, 33, 34, 35 36
|
||||
30.35, 32.05, 33, 85, 35.70, 37.65, 39.6, 41.7};
|
||||
const int indexOffset = 15;
|
||||
const float tempOffset = 3.2;
|
||||
const float humOffset = 5.0;
|
||||
|
||||
#ifdef INTERPOL
|
||||
float tempOffset = 3.2;
|
||||
float humOffset = 5.0;
|
||||
#else
|
||||
extern float tempOffset;
|
||||
extern float humOffset;
|
||||
#endif
|
||||
|
||||
float getDampfgehalt(float temp);
|
||||
int getRelativeFeuchte(float temp, float hum);
|
||||
|
||||
17
src/main.cpp
17
src/main.cpp
@@ -72,6 +72,7 @@ void setup() {
|
||||
|
||||
bmedata = readBME280();
|
||||
bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
||||
bmedata.temp = bmedata.temp - tempOffset;
|
||||
arcTemp.value = bmedata.temp;
|
||||
arcHum.value = bmedata.hum;
|
||||
delay(1000);
|
||||
@@ -126,8 +127,11 @@ void loop() {
|
||||
if (millis() - bmeReadtimer > bmeReadTime) {
|
||||
bmeReadtimer = millis();
|
||||
bmedata = readBME280();
|
||||
float tmess = bmedata.temp;
|
||||
float hmess = bmedata.hum;
|
||||
bmedata.hum = getRelativeFeuchte(bmedata.temp, bmedata.hum);
|
||||
doPublish(bmedata.temp+arcTemp.value_offset, bmedata.hum+arcHum.value_offset, bmedata.temp, bmedata.hum);
|
||||
bmedata.temp = bmedata.temp - tempOffset;
|
||||
doPublish(bmedata.temp, bmedata.hum, tmess, hmess);
|
||||
}
|
||||
if (millis() - updatetimer > updateTime) {
|
||||
updatetimer = millis();
|
||||
@@ -136,11 +140,12 @@ void loop() {
|
||||
setValuetoArc(arcHum, bmedata.hum+arcHum.value_offset);
|
||||
}
|
||||
|
||||
if (!client.connected())
|
||||
{
|
||||
reconnect();
|
||||
}
|
||||
client.loop();
|
||||
checkMQTT();
|
||||
// if (!client.connected())
|
||||
// {
|
||||
// reconnect();
|
||||
// }
|
||||
// client.loop();
|
||||
|
||||
|
||||
server.handleClient();
|
||||
|
||||
22
src/mqtt.cpp
22
src/mqtt.cpp
@@ -3,6 +3,7 @@
|
||||
#include "grafik.h"
|
||||
#include "main.h"
|
||||
#include "weifi.h"
|
||||
#include "interpolation.h"
|
||||
#include "mqtt.h"
|
||||
|
||||
|
||||
@@ -44,13 +45,13 @@ void onmessage(char *tp, byte *msg, unsigned int length)
|
||||
setBMEreadtime(doc["updaterate"]);
|
||||
// showRate(doc["updaterate"]);
|
||||
}
|
||||
if(doc.containsKey("isttemp")) {
|
||||
arcTemp.value_offset = (float)doc["isttemp"] - arcTemp.value;
|
||||
if(doc.containsKey("tempoffset")) {
|
||||
tempOffset = (float)doc["tempoffset"];
|
||||
}
|
||||
if(doc.containsKey("isthum")) {
|
||||
arcHum.value_offset = (float)doc["isthum"] - arcHum.value;
|
||||
if(doc.containsKey("humoffset")) {
|
||||
humOffset = (float)doc["humoffset"];
|
||||
}
|
||||
Serial.printf("tempoffset: %.1f, humoffset: %.1f\n", arcTemp.value_offset, arcHum.value_offset);
|
||||
Serial.printf("tempoffset: %.1f, humoffset: %.1f\n",tempOffset, humOffset);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,10 +61,11 @@ void reconnect(void)
|
||||
while (!client.connected())
|
||||
{
|
||||
Serial.print("Reconnecting...");
|
||||
bool erg = client.connect(CLIENT_ID, MQTT_USER, MQTT_PASSWD);
|
||||
char * chipID = getChipID();
|
||||
bool erg = client.connect(chipID, MQTT_USER, MQTT_PASSWD);
|
||||
Serial.println(erg);
|
||||
|
||||
if (!client.connect(CLIENT_ID, MQTT_USER, MQTT_PASSWD))
|
||||
if (!client.connect(chipID, MQTT_USER, MQTT_PASSWD))
|
||||
{
|
||||
Serial.print("failed, rc=");
|
||||
Serial.print(client.state());
|
||||
@@ -76,8 +78,8 @@ void reconnect(void)
|
||||
}
|
||||
|
||||
void doPublish(float temp, float hum, float tm, float hm) {
|
||||
char payload[50];
|
||||
sprintf(payload, "{\"temperature\":%.1f,\"tempmess\":%.1f,\"humidity\":%.1f,\"hummess\":%.1f}", temp, hum, tm, hm);
|
||||
char payload[80];
|
||||
sprintf(payload, "{\"temperature\":%.1f,\"tempmess\":%.1f,\"humidity\":%.1f,\"hummess\":%.1f}", temp, tm, hum, hm);
|
||||
char * chipID = getChipID();
|
||||
char topic[50];
|
||||
sprintf(topic, "CYD/get/%s/bme280", chipID);
|
||||
@@ -88,8 +90,6 @@ void doPublish(float temp, float hum, float tm, float hm) {
|
||||
|
||||
// check MQTT in the loop
|
||||
void checkMQTT(void) {
|
||||
Serial.println("Try connected ...");
|
||||
|
||||
if (!client.connected())
|
||||
{
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
#define MQTT_TOPIC "CYD/set/"
|
||||
#define MQTT_PUB_TEMP "CYD/get/bme280"
|
||||
|
||||
#define CLIENT_ID "ESP32Client7"
|
||||
|
||||
#ifdef MQTT
|
||||
WiFiClient espClient;
|
||||
PubSubClient client(espClient);
|
||||
|
||||
@@ -1,10 +1,20 @@
|
||||
// Versionsgeschichte
|
||||
|
||||
#define VERSION "1.5.0"
|
||||
#define VERSION "1.5.2"
|
||||
#define VDATE "2024-08-21"
|
||||
#define VTIME "12:15 UTC"
|
||||
|
||||
/*
|
||||
Version Date Author
|
||||
1.5.2 2024-08-21 rxf
|
||||
- Payloadbuffer für MQTT auf 80 Byte vergrößert
|
||||
- Version-Time zu version.h hinzugefügt und zur Anzeige
|
||||
- tempoffset und humoffset per MQTT einstellbar
|
||||
|
||||
1.5.1 2024-08-21 rxf
|
||||
- Temperaturanzeige ebenfalls angepasst (-3.2°C)
|
||||
- via MQTT gemessen und berechte Werte ausgeben
|
||||
|
||||
1.5.0 2024-08-21 rxf
|
||||
- Mit Hilfe von Interpolation werde die echten Feuchtewerte ausgerechnet und angezeigt
|
||||
- Die Werte sind jetzt (soweit) korrekt
|
||||
|
||||
Reference in New Issue
Block a user