diff --git a/ESP_BigRoom/include/main.h b/ESP_BigRoom/include/main.h index bccfb6e..6de23a8 100644 --- a/ESP_BigRoom/include/main.h +++ b/ESP_BigRoom/include/main.h @@ -44,8 +44,8 @@ extern "C" { #define TOPIC "home/bigroom/" -WiFiMulti wifiMulti; -const uint32_t connectTimeoutMs = 5000; +//WiFiMulti wifiMulti; +//const uint32_t connectTimeoutMs = 5000; byte periodMotion; int8_t curDelay; diff --git a/ESP_BigRoom/src/main.cpp b/ESP_BigRoom/src/main.cpp index 72fc7ba..2641b38 100644 --- a/ESP_BigRoom/src/main.cpp +++ b/ESP_BigRoom/src/main.cpp @@ -8,15 +8,14 @@ AsyncMqttClient mqttClient; TimerHandle_t mqttReconnectTimer; TimerHandle_t wifiReconnectTimer; -//const char* ssid = "wf-home"; -//const char* password = "0ndthnrf"; +const char* ssid = "wf-home"; +const char* password = "0ndthnrf"; const char* ssid1 = "wf-home"; const char* password1 = "0ndthnrf"; const char* ssid2 = "BR"; const char* password2 = "499727479o"; const char* mqtt_server = "192.168.1.111"; - void connectToWifi(); void connectToMqtt(); void WiFiEvent(WiFiEvent_t event); @@ -34,10 +33,10 @@ void setup() { Serial.begin(115200); Serial.println("Booting"); // "Загрузка" WiFi.mode(WIFI_STA); - WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE, INADDR_NONE); + //WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE, INADDR_NONE); WiFi.setHostname("BigRoom"); - wifiMulti.addAP(ssid1, password1); - wifiMulti.addAP(ssid2, password2); + //wifiMulti.addAP(ssid1, password1); + //wifiMulti.addAP(ssid2, password2); // ArduinoOTA.onStart([]() { // // Serial.println("Start"); // "Начало OTA-апдейта" // }); @@ -324,8 +323,8 @@ void loop() { void connectToWifi() { Serial.println("Connecting to Wi-Fi..."); - wifiMulti.run(connectTimeoutMs); - //WiFi.begin(ssid, password); + //wifiMulti.run(connectTimeoutMs); + WiFi.begin(ssid, password); } void connectToMqtt() { diff --git a/ESP_Midroom2/src/main.cpp b/ESP_Midroom2/src/main.cpp index 205ec74..4ff3da5 100644 --- a/ESP_Midroom2/src/main.cpp +++ b/ESP_Midroom2/src/main.cpp @@ -59,8 +59,8 @@ void setup() { WiFi.mode(WIFI_STA); WiFi.persistent(false); WiFi.hostname(HOSTNAME); - wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD); - wifiMulti.addAP(WIFI_SSID2, WIFI_PASSWORD2); + //wifiMulti.addAP(WIFI_SSID, WIFI_PASSWORD); + //wifiMulti.addAP(WIFI_SSID2, WIFI_PASSWORD2); client.setServer(MQTT_SERV, 1883); client.setCallback(callback); @@ -100,6 +100,11 @@ void setup() { pinMode(LAMP_OUT, OUTPUT); dht.setup(D1, DHTesp::DHT22); delay(dht.getMinimumSamplingPeriod()); + sTaH = dht.getTempAndHumidity(); + if(dht.getStatus() == dht.ERROR_NONE){ + temp_out = sTaH.temperature; + hum_out = sTaH.humidity; + } // if (! aht.begin()) { // Serial.println("Could not find AHT? Check wiring"); // aht_pesent = false; @@ -148,8 +153,8 @@ void loop() { Serial.println(bSecs); sTaH = dht.getTempAndHumidity(); if(dht.getStatus() == dht.ERROR_NONE){ - temp_out += (sTaH.temperature - temp_out) / 300; - hum_out += (sTaH.humidity - hum_out) / 300; + temp_out += (sTaH.temperature - temp_out) / 150.0; + hum_out += (sTaH.humidity - hum_out) / 150.0; WebSerial.print("Temp: "); WebSerial.print(sTaH.temperature); WebSerial.print(", Hum: "); @@ -161,6 +166,49 @@ void loop() { client.publish(TOPIC"tempout", v); sprintf(v, "%.1f", hum_out); client.publish(TOPIC"humout", v); + sprintf(v, "%.1f", dht.computeHeatIndex(temp_out, hum_out)); + client.publish(TOPIC"heatindex", v); + sprintf(v, "%.1f", dht.computeDewPoint(temp_out, hum_out)); + client.publish(TOPIC"dewpoint", v); + ComfortState cs; + dht.getComfortRatio(cs, temp_out, hum_out); + String comfortStatus; + switch(cs) { + case Comfort_OK: + comfortStatus = "Нормально"; + break; + case Comfort_TooHot: + comfortStatus = "Очень жарко"; + break; + case Comfort_TooCold: + comfortStatus = "Очень холодно"; + break; + case Comfort_TooDry: + comfortStatus = "Очень сухо"; + break; + case Comfort_TooHumid: + comfortStatus = "Очень влажно"; + break; + case Comfort_HotAndHumid: + comfortStatus = "Жарко и влажно"; + break; + case Comfort_HotAndDry: + comfortStatus = "Жарко и сухо"; + break; + case Comfort_ColdAndHumid: + comfortStatus = "Холодно и влажно}"; + break; + case Comfort_ColdAndDry: + comfortStatus = "Холодно и сухо"; + break; + default: + comfortStatus = "Неизвестно"; + break; + }; + client.publish(TOPIC"comfortstatus", comfortStatus.c_str()); + byte hp = dht.computePerception(temp_out, hum_out); + itoa(hp, v, 10); + client.publish(TOPIC"perception", v); } } if((bSecs % 15) == 0){ @@ -176,8 +224,8 @@ void loop() { void connectToWifi() { Serial.println("Connecting to Wi-Fi..."); - wifiMulti.run(); - //WiFi.begin(WIFI_SSID, WIFI_PASSWORD); + //wifiMulti.run(); + WiFi.begin(WIFI_SSID, WIFI_PASSWORD); } void onWifiConnect(const WiFiEventStationModeGotIP& event) { @@ -238,6 +286,11 @@ void reconnect() { client.publish(TOPIC"online", "1"); client.subscribe(TOPIC"light"); client.subscribe(TOPIC"ledint"); + char vout[7]; + sprintf(vout, "%.1f", temp_out); + client.publish(TOPIC"tempout", vout); + sprintf(vout, "%.1f", hum_out); + client.publish(TOPIC"humout", vout); } else { Serial.print("failed, rc="); Serial.print(client.state());