From a81cdcbb9c15262bab2c90c1c1ca4bbb33fc67bc Mon Sep 17 00:00:00 2001 From: lexa Date: Fri, 20 Nov 2020 10:08:22 +0300 Subject: [PATCH] Test MQTT --- ESP_MidRoom/src/main.cpp | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/ESP_MidRoom/src/main.cpp b/ESP_MidRoom/src/main.cpp index 514e129..98cef19 100644 --- a/ESP_MidRoom/src/main.cpp +++ b/ESP_MidRoom/src/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #define R_LED (13) #define G_LED (12) @@ -13,9 +14,10 @@ bool meas = false; short minCnt; bool send_move = false; -int old_mov = 0; +int mov, old_mov = 0; int adc = 0; int lastADC = 0; +int mvDelay, mvDelaySet; unsigned long cRun; @@ -36,9 +38,9 @@ void onWifiConnect(const WiFiEventStationModeGotIP& event); void onWifiDisconnect(const WiFiEventStationModeDisconnected& event); void onMqttConnect(bool sessionPresent); void onMqttDisconnect(AsyncMqttClientDisconnectReason reason); +void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total); /* void onMqttSubscribe(uint16_t packetId, uint8_t qos); void onMqttUnsubscribe(uint16_t packetId); -void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total); void onMqttPublish(uint16_t packetId); */ leds g_led(G_LED, 100); @@ -83,8 +85,8 @@ void setup() { mqttClient.onDisconnect(onMqttDisconnect); /* mqttClient.onSubscribe(onMqttSubscribe); mqttClient.onUnsubscribe(onMqttUnsubscribe); - mqttClient.onMessage(onMqttMessage); mqttClient.onPublish(onMqttPublish); */ + mqttClient.onMessage(onMqttMessage); mqttClient.setServer(mqtt_server, 1883); mqttClient.setClientId("MidRoom"); @@ -122,6 +124,11 @@ void setup() { Serial1.println(p); */ } + EEPROM.begin(4); + EEPROM.get(0, mvDelaySet); + mvDelaySet = 90; + mvDelay = -1; + connectToWifi(); cRun = millis(); @@ -136,6 +143,11 @@ void loop() { ArduinoOTA.handle(); g_led.tick(); //r_led.tick(); + if((digitalRead(MOV_SENS) > 0) && (mvDelay == -1)){ + //mqttClient.publish("/home/midroom/move", 1, false, "1"); + mvDelay = mvDelaySet; + } + if (digitalRead(MOV_SENS) != old_mov){ old_mov = digitalRead(MOV_SENS); //Serial1.println(F("Change mov detected")); @@ -144,6 +156,12 @@ void loop() { if(cRun + 999 < millis()){ cRun = millis(); + if(mvDelay == 0) { + //mqttClient.publish("/home/midroom/move", 1, false, "0"); + mvDelay = -1; + } + if(mvDelay > 0) mvDelay--; + adc = analogRead(A0); if(abs(adc - lastADC) > 50){ lastADC = adc; @@ -195,6 +213,10 @@ void loop() { ultoa(millis(), v, 10); if(mqttClient.connected()){ mqttClient.publish("/home/midroom/millis", 0, false, v); + itoa(mvDelay, v, 10); + mqttClient.publish("/home/midroom/movesec", 0, false, v); + itoa(mvDelaySet, v, 10); + mqttClient.publish("/home/midroom/movesecset", 0, false, v); // dtostrf(t, 5, 1,v); // mqttClient.publish("/home/midroom/temp", 0, false, v); // //Serial1.println("Publish1"); @@ -264,7 +286,7 @@ void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) { digitalWrite(B_LED, HIGH); } -/* void onMqttSubscribe(uint16_t packetId, uint8_t qos) { +/*void onMqttSubscribe(uint16_t packetId, uint8_t qos) { // //Serial1.println("Subscribe acknowledged."); // //Serial1.print(" packetId: "); // //Serial1.println(packetId); @@ -276,13 +298,16 @@ void onMqttUnsubscribe(uint16_t packetId) { // //Serial1.println("Unsubscribe acknowledged."); // //Serial1.print(" packetId: "); // //Serial1.println(packetId); -} +}*/ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) { - if(strcmp(topic, "/home/kor/lamp1_set") == 0){ + if(strcmp(topic, "/home/midroom/mvdelay") == 0){ + mvDelaySet = atol(payload); + EEPROM.put(0, mvDelaySet); + EEPROM.commit(); } } - +/* void onMqttPublish(uint16_t packetId) { //Serial1.println("Publish acknowledged."); //Serial1.print(" packetId: ");