From d819907010ac5b65cdd2e1f3f6f8cc25eecfd093 Mon Sep 17 00:00:00 2001 From: Domagoj Zecevic Date: Thu, 24 Aug 2023 18:57:25 +0200 Subject: [PATCH] fixed mqtt --- tata_station/tata_station.ino | 69 +++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/tata_station/tata_station.ino b/tata_station/tata_station.ino index 73d59b9..69509de 100644 --- a/tata_station/tata_station.ino +++ b/tata_station/tata_station.ino @@ -1,6 +1,6 @@ #include #include -#include +#include #include // set the LCD number of columns and rows @@ -11,16 +11,14 @@ LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); // WiFi Info const char* ssid = "IoT-Zecevic"; const char* password = "IoTSifra123456!"; +WiFiClient espClient; //MQTT data const char* mqttServer = "192.168.1.11"; const int mqttPort = 1883; const char* mqttUser = "yourMQTTuser"; const char* mqttPassword = "yourMQTTpassword"; -WiFiClient espClient; -PubSubClient MQTTclient(espClient); - - +MqttClient MQTTclient(espClient); // DHT setup #define DHTPIN 2 @@ -59,7 +57,7 @@ void initWiFi() { } void reconect() { - while (MQTTclient.connect("ESP32Client", mqttUser, mqttPassword )) { + while (!MQTTclient.connect(mqttServer, mqttPort)) { Serial.println("Connecting to MQTT..."); } } @@ -77,11 +75,18 @@ String prepareHtmlPage() "" ""); htmlPage += F("

" - "

Temperature: "); + "

Temperatura unutra: "); htmlPage += global_temp_indoor; htmlPage += F("

" - "

Humidity: "); + "

Vlaznost unutra: "); htmlPage += global_hym_indoor; + + htmlPage += F("

" + "

Temperatura vani: "); + htmlPage += global_temp_outdoor; + htmlPage += F("

" + "

Vlaznost vani: "); + htmlPage += global_hym_outdoor; htmlPage += F("" "\r\n"); @@ -104,20 +109,6 @@ void setup() { server.begin(); Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str()); - //connect to MQTT - MQTTclient.setServer(mqttServer, mqttPort); - //MQTTclient.setCallback(callback); - - while (!MQTTclient.connected()) { - - if (MQTTclient.connect("ESP32Client", mqttUser, mqttPassword )) { - Serial.println("Connected to mqtt!"); - } else { - Serial.print("failed with state "); - Serial.print(MQTTclient.state()); - delay(2000); - } - } //show 5 sec IP on display lcd.setCursor(0, 0); lcd.print("IP Adresa:"); @@ -155,15 +146,31 @@ void loop() { unsigned long currentMillis = millis(); - //if(currentMillis - previousMillis > interval) { - // previousMillis = currentMillis; - // if (!MQTTclient.connected()) { - // WiFi.reconnect(); - // reconect(); - // } - // MQTTclient.publish("my/BedRoom/Temperature", String(global_temp_indoor).c_str()); - // MQTTclient.publish("my/BedRoom/Humidity", String(global_hym_indoor).c_str()); - // } + if(currentMillis - previousMillis > interval) { + previousMillis = currentMillis; + if (!MQTTclient.connected()) { + WiFi.reconnect(); + reconect(); + } + MQTTclient.beginMessage("my/Osijek/Indor-Temperature"); + MQTTclient.print(String(global_temp_indoor).c_str()); + MQTTclient.endMessage(); + + MQTTclient.beginMessage("my/Osijek/Indor-Humidity"); + MQTTclient.print(String(global_hym_indoor).c_str()); + MQTTclient.endMessage(); + + MQTTclient.beginMessage("my/Osijek/Outdoor-Temperature"); + MQTTclient.print(String(global_temp_outdoor).c_str()); + MQTTclient.endMessage(); + + MQTTclient.beginMessage("my/Osijek/Outdoor-Humidity"); + MQTTclient.print(String(global_hym_outdoor).c_str()); + MQTTclient.endMessage(); + + Serial.println("mqqt published"); + } + WiFiClient serverClient = server.available(); if (serverClient)