#include Power Producing: ");
htmlPage += global_power;
htmlPage += F(" Temperature: ");
htmlPage += temperature;
htmlPage += F(" Humidity: ");
htmlPage += humidity;
htmlPage += "
MQTT Connected: "); htmlPage += MQTTclient.connected(); htmlPage += "
"; htmlPage += F("" "\r\n"); return htmlPage; } void reconect() { while (!MQTTclient.connect(mqttServer, mqttPort)) { Serial.println("Connecting to MQTT..."); // if (MQTTclient.connect()) { // Serial.println("Connected to mqtt!"); // } else { // Serial.print("failed with state "); // Serial.print(MQTTclient.connectError()); // delay(2000); // } } } void setup() { Serial.begin(115200); dht.begin(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println("Connecting to WiFi.."); } Serial.println("Connected to WiFi"); //MQTTclient.setServer(mqttServer, mqttPort); //MQTTclient.setCallback(callback); MQTTclient.onMessage(onMqttMessage); MQTTclient.subscribe(topic); //Get info from Solar //MQTTclient.subscribe("solar/114182126368/0/power"); server.begin(); Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str()); //show 5 sec IP on display display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("IP addr: "); display.println(WiFi.localIP().toString().c_str()); display.display(); delay(5000); } void loop() { if (!MQTTclient.connected()) { reconect(); //Serial.print("loop "); //Serial.println(MQTTclient.connected()); MQTTclient.poll(); MQTTclient.available(); //Serial.println((char)MQTTclient.read()); } MQTTclient.poll(); MQTTclient.available(); MQTTclient.subscribe(topic); //Serial.println((char)MQTTclient.read()); WiFiClient serverClient = server.available(); if (serverClient) { while (serverClient.connected()) { // read line by line what the client (web browser) is requesting if (serverClient.available()) { String line = serverClient.readStringUntil('\r'); if (line.length() == 1 && line[0] == '\n') { serverClient.println(prepareHtmlPage()); break; } } } while (serverClient.available()) { serverClient.read(); } // close the connection: serverClient.stop(); } unsigned long currentMillis = millis(); //Serial.println("outside for"); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; humidity = dht.readHumidity(); temperature = dht.readTemperature(); showDisplay(); if (!MQTTclient.connected()) { reconect(); } //Serial.println(MQTTclient.connected()); MQTTclient.beginMessage("my/office/Temperature"); MQTTclient.print(String(temperature).c_str()); MQTTclient.endMessage(); MQTTclient.beginMessage("my/office/Humidity"); MQTTclient.print(String(humidity).c_str()); MQTTclient.endMessage(); // MQTTclient.publish("my/office/Temperature", String(temperature).c_str()); // MQTTclient.publish("my/office/Humidity", String(humidity).c_str()); } }