Test MQTT

This commit is contained in:
2020-11-20 10:08:22 +03:00
parent 279e09334f
commit a81cdcbb9c

View File

@@ -3,6 +3,7 @@
#include <Ticker.h> #include <Ticker.h>
#include <AsyncMqttClient.h> #include <AsyncMqttClient.h>
#include <leds.h> #include <leds.h>
#include <EEPROM.h>
#define R_LED (13) #define R_LED (13)
#define G_LED (12) #define G_LED (12)
@@ -13,9 +14,10 @@
bool meas = false; bool meas = false;
short minCnt; short minCnt;
bool send_move = false; bool send_move = false;
int old_mov = 0; int mov, old_mov = 0;
int adc = 0; int adc = 0;
int lastADC = 0; int lastADC = 0;
int mvDelay, mvDelaySet;
unsigned long cRun; unsigned long cRun;
@@ -36,9 +38,9 @@ void onWifiConnect(const WiFiEventStationModeGotIP& event);
void onWifiDisconnect(const WiFiEventStationModeDisconnected& event); void onWifiDisconnect(const WiFiEventStationModeDisconnected& event);
void onMqttConnect(bool sessionPresent); void onMqttConnect(bool sessionPresent);
void onMqttDisconnect(AsyncMqttClientDisconnectReason reason); 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 onMqttSubscribe(uint16_t packetId, uint8_t qos);
void onMqttUnsubscribe(uint16_t packetId); 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); */ void onMqttPublish(uint16_t packetId); */
leds g_led(G_LED, 100); leds g_led(G_LED, 100);
@@ -83,8 +85,8 @@ void setup() {
mqttClient.onDisconnect(onMqttDisconnect); mqttClient.onDisconnect(onMqttDisconnect);
/* mqttClient.onSubscribe(onMqttSubscribe); /* mqttClient.onSubscribe(onMqttSubscribe);
mqttClient.onUnsubscribe(onMqttUnsubscribe); mqttClient.onUnsubscribe(onMqttUnsubscribe);
mqttClient.onMessage(onMqttMessage);
mqttClient.onPublish(onMqttPublish); */ mqttClient.onPublish(onMqttPublish); */
mqttClient.onMessage(onMqttMessage);
mqttClient.setServer(mqtt_server, 1883); mqttClient.setServer(mqtt_server, 1883);
mqttClient.setClientId("MidRoom"); mqttClient.setClientId("MidRoom");
@@ -122,6 +124,11 @@ void setup() {
Serial1.println(p); */ Serial1.println(p); */
} }
EEPROM.begin(4);
EEPROM.get(0, mvDelaySet);
mvDelaySet = 90;
mvDelay = -1;
connectToWifi(); connectToWifi();
cRun = millis(); cRun = millis();
@@ -136,6 +143,11 @@ void loop() {
ArduinoOTA.handle(); ArduinoOTA.handle();
g_led.tick(); g_led.tick();
//r_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){ if (digitalRead(MOV_SENS) != old_mov){
old_mov = digitalRead(MOV_SENS); old_mov = digitalRead(MOV_SENS);
//Serial1.println(F("Change mov detected")); //Serial1.println(F("Change mov detected"));
@@ -144,6 +156,12 @@ void loop() {
if(cRun + 999 < millis()){ if(cRun + 999 < millis()){
cRun = millis(); cRun = millis();
if(mvDelay == 0) {
//mqttClient.publish("/home/midroom/move", 1, false, "0");
mvDelay = -1;
}
if(mvDelay > 0) mvDelay--;
adc = analogRead(A0); adc = analogRead(A0);
if(abs(adc - lastADC) > 50){ if(abs(adc - lastADC) > 50){
lastADC = adc; lastADC = adc;
@@ -195,6 +213,10 @@ void loop() {
ultoa(millis(), v, 10); ultoa(millis(), v, 10);
if(mqttClient.connected()){ if(mqttClient.connected()){
mqttClient.publish("/home/midroom/millis", 0, false, v); 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); // dtostrf(t, 5, 1,v);
// mqttClient.publish("/home/midroom/temp", 0, false, v); // mqttClient.publish("/home/midroom/temp", 0, false, v);
// //Serial1.println("Publish1"); // //Serial1.println("Publish1");
@@ -264,7 +286,7 @@ void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) {
digitalWrite(B_LED, HIGH); 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.println("Subscribe acknowledged.");
// //Serial1.print(" packetId: "); // //Serial1.print(" packetId: ");
// //Serial1.println(packetId); // //Serial1.println(packetId);
@@ -276,13 +298,16 @@ void onMqttUnsubscribe(uint16_t packetId) {
// //Serial1.println("Unsubscribe acknowledged."); // //Serial1.println("Unsubscribe acknowledged.");
// //Serial1.print(" packetId: "); // //Serial1.print(" packetId: ");
// //Serial1.println(packetId); // //Serial1.println(packetId);
} }*/
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) { 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) { void onMqttPublish(uint16_t packetId) {
//Serial1.println("Publish acknowledged."); //Serial1.println("Publish acknowledged.");
//Serial1.print(" packetId: "); //Serial1.print(" packetId: ");