diff --git a/ESP_BigRoom/include/main.h b/ESP_BigRoom/include/main.h index d8d0ace..8dedd88 100644 --- a/ESP_BigRoom/include/main.h +++ b/ESP_BigRoom/include/main.h @@ -38,6 +38,7 @@ extern "C" { #define LED_R 13 #define LED_G 15 #define LED_B 2 +#define RECIVER 18 #define TOPIC "home/bigroom/" @@ -48,9 +49,10 @@ uint8_t timeLight; byte levelBlue, levelWhite; bool move, lightWhite; float temp, hum; -bool bLamp, wLamp; +bool bLamp, wLamp, reciever; uint8_t statLamp; + AsyncWebServer server(80); #endif // __MAIN__ diff --git a/ESP_BigRoom/src/main.cpp b/ESP_BigRoom/src/main.cpp index 45aa719..871a64d 100644 --- a/ESP_BigRoom/src/main.cpp +++ b/ESP_BigRoom/src/main.cpp @@ -77,6 +77,8 @@ void setup() { pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(POWER, OUTPUT); + pinMode(RECIVER, OUTPUT); + ledcSetup(PWM_WHITE, 5000, 8); ledcSetup(PWM_BLUE, 5000, 8); ledcAttachPin(LED_WHITE, PWM_WHITE); @@ -209,8 +211,8 @@ void loop() { ledcWrite(PWM_BLUE, levBlue); statLamp |= 0x01; bLamp = true; - Serial.println(F("BLamp On")); - WebSerial.println(F("Blue Lamp On")); + //Serial.println(F("BLamp On")); + //WebSerial.println(F("Blue Lamp On")); } else if((LightLev > (spLight + dbLight)) || (move == 0)){ if((levRunB + 50 <= millis() && levBlue > 0)){ @@ -240,7 +242,7 @@ void loop() { wLamp = false; } if(statLamp > 0) digitalWrite(POWER, HIGH); - else if((levBlue > 0) && (levWhite > 0)) digitalWrite(POWER, LOW); + else if((levBlue == 0) && (levWhite == 0)) digitalWrite(POWER, LOW); if((cRun + 1000) <= millis()){ //Once per second cRun = millis(); if(abs(LightLev - prevLLevel) > 100){ @@ -370,6 +372,7 @@ void onMqttConnect(bool sessionPresent) { mqttClient.publish(TOPIC"spLevel", 1, false, s); itoa(dbLight, s, 10); mqttClient.publish(TOPIC"dbLevel", 1, false, s); + mqttClient.publish(TOPIC"reciever", 1, false, "0"); mqttClient.publish(TOPIC"lampw", 1, false, lightWhite ? "1" : "0"); mqttClient.publish(TOPIC"lampw_set", 1, false, lightWhite ? "1" : "0"); @@ -380,6 +383,7 @@ void onMqttConnect(bool sessionPresent) { mqttClient.subscribe(TOPIC"moveperiod", 1); mqttClient.subscribe(TOPIC"spLevel", 1); mqttClient.subscribe(TOPIC"dbLevel", 1); + mqttClient.subscribe(TOPIC"reciever", 1); Serial.print(F("PeriodMove:"));Serial.println(periodMotion); Serial.print(F("SPLight:"));Serial.println(spLight); @@ -449,6 +453,15 @@ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties //EEPROM.put(0, levelBlue); //w = true; } + if(strcmp(topic, TOPIC"reciever") == 0){ + reciever = atoi(pl); + digitalWrite(RECIVER, reciever); + Serial.printf("New Reciever: %d\n", lightWhite); + WebSerial.print("New Reciever: ");WebSerial.println(lightWhite); + //mqttClient.publish(TOPIC"reciever", 1, false, reciever ? "1" : "0"); + //EEPROM.put(0, levelBlue); + //w = true; + } if(strcmp(topic, TOPIC"moveperiod") == 0){ periodMotion = atoi(pl); Serial.printf("New MovePeriod: %d\n", periodMotion); diff --git a/ESP_MidRoom/include/html.h b/ESP_MidRoom/include/html.h new file mode 100644 index 0000000..2835b39 --- /dev/null +++ b/ESP_MidRoom/include/html.h @@ -0,0 +1,33 @@ +#include +const char index_html[] PROGMEM = R"rawliteral( + + + ESP Web Server + + + + + +

ESP Web Server

+ %BUTTONPLACEHOLDER% + + + +)rawliteral"; \ No newline at end of file diff --git a/ESP_MidRoom/include/main.h b/ESP_MidRoom/include/main.h index 0bb369d..0bfcbcc 100644 --- a/ESP_MidRoom/include/main.h +++ b/ESP_MidRoom/include/main.h @@ -2,6 +2,9 @@ #include #include #include +#include +#include +#include #include #include diff --git a/ESP_MidRoom/platformio.ini b/ESP_MidRoom/platformio.ini index 0f9f2bf..0f76e61 100644 --- a/ESP_MidRoom/platformio.ini +++ b/ESP_MidRoom/platformio.ini @@ -23,5 +23,7 @@ lib_deps = jwrw/ESP_EEPROM @ ^2.0.0 robtillaart/RunningMedian @ ^0.3.3 crankyoldgit/IRremoteESP8266 @ ^2.8.2 + ayushsharma82/WebSerial @ ^1.3.0 + ottowinter/ESPAsyncWebServer-esphome @ ^3.0.0 ;joaolopesf/RemoteDebug @ 3.0.5 \ No newline at end of file diff --git a/ESP_MidRoom/src/main.cpp b/ESP_MidRoom/src/main.cpp index 6661cfe..f498079 100644 --- a/ESP_MidRoom/src/main.cpp +++ b/ESP_MidRoom/src/main.cpp @@ -21,6 +21,7 @@ const char* mqtt_server = "192.168.1.111"; AsyncMqttClient mqttClient; Ticker mqttReconnectTimer; +AsyncWebServer server(80); WiFiEventHandler wifiConnectHandler; WiFiEventHandler wifiDisconnectHandler; @@ -105,7 +106,7 @@ void setup() { } //Serial1.println(); mhz19.begin(Serial); - mhz19.autoCalibration(); + //mhz19.autoCalibration(); Wire.begin(); bool status = bme.begin(BME280_ADDRESS_ALTERNATE); if (!status) { @@ -138,6 +139,9 @@ void setup() { cRun = millis(); cRunADC = millis(); + firstRun = true; + WebSerial.begin(&server); + server.begin(); //Serial1.println(F("Start Loop")); //(R_LED, HIGH); } @@ -155,6 +159,7 @@ void loop() { if(mvDelay == -1){ g_led.start(); mqttClient.publish(TOPIC"/move", 1, false, "1"); + WebSerial.println("Move On"); } mvDelay = mvDelaySet; } @@ -187,12 +192,16 @@ void loop() { if(mvDelay == 0) { g_led.start(); mqttClient.publish(TOPIC"/move", 1, false, "0"); + WebSerial.println("Move Off"); mvDelay = -1; } if(mvDelay > 0) mvDelay--; - if(minCnt % 10 == 0){ + if(minCnt % 5 == 0){ co2 = mhz19.getCO2(); + char s[20]; + sprintf(s, "Ms=%lu,co2=%d", millis(), co2); + WebSerial.println(s); // /* Serial1.print("CO2: "); // Serial1.println(co2); */ // // Serial.println("Measure BME"); @@ -249,7 +258,7 @@ void loop() { //Serial1.println("Publish2"); if(firstRun){ stDelay++; - if(stDelay > 3) firstRun = false; + if(stDelay > 2) firstRun = false; } if(!firstRun && (mhz19.errorCode == RESULT_OK)){ itoa(co2, v, 10); @@ -345,6 +354,7 @@ void onMqttConnect(bool sessionPresent) { mqttClient.subscribe(TOPIC"/ac/eco", 1); mqttClient.publish(TOPIC"/ac/state", 1, false, ac.getPower() ? "1" : "0"); mqttClient.subscribe(TOPIC"/ac/state", 1); + mqttClient.subscribe(TOPIC"/co2cal", 1); // ultoa(ESP.getFlashChipSize(), v, 10); // mqttClient.publish(TOPIC"/chipsize", 1, false, v); // ultoa(ESP.getFlashChipRealSize(), v, 10); @@ -436,6 +446,12 @@ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties else ac.setTurbo(false); ac.send(); } + if(strcmp(topic, TOPIC"/co2cal") == 0){ + char m = payload[0]; + if(m == '1'){ + mhz19.calibrate(); + } + } b_led.start(); } /*