#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <DHT.h>
#define DHTTYPE DHT11 // DHT type (DHT11, DHT22)
#define DHTPIN 5 // Broche du DHT / DHT Pin
const char* ssid = "your WIFI ";
const char* password = "WIFI password";
const char* host = "192.168.1.116";//Domoticz server IP
const int port = 8080;
const int watchdog = 2000; // Frequency of sending data to Domoticz
unsigned long previousMillis = millis();
DHT dht(DHTPIN, DHTTYPE);
HTTPClient http;
void setup() {
Serial.begin(115200);
delay(10);
Serial.setDebugOutput(true);
Serial.println("Connecting Wifi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.print(WiFi.localIP());
}
int value = 0;
void loop() {
unsigned long currentMillis = millis();
if ( currentMillis - previousMillis > watchdog ) {
previousMillis = currentMillis;
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi not connected !");
} else {
Serial.println("Send data to Domoticz");
float t = dht.readTemperature();
float h = dht.readHumidity();
if ( isnan(t) || isnan(h) ) {
Serial.println("DHT KO");
} else {
int hum_stat;
int bar_for = 0;
if ( h > 70 ) {
hum_stat = 3;
} else if ( h < 30 ) {
hum_stat = 2;
} else if ( h >= 30 & h <= 45 ) {
hum_stat = 0;
} else if ( h > 45 & h <= 70 ) {
hum_stat = 1;
}
String url = "/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue=";
url += String(t); url += ";";
url += String(h); url += ";";
url += String(hum_stat); url += ";";
sendDomoticz(url);
}
}
}
}
void sendDomoticz(String url) {
Serial.print("connecting to ");
Serial.println(host);
Serial.print("Requesting URL: ");
Serial.println(url);
http.begin(host, port, url);
int httpCode = http.GET();
if (httpCode) {
if (httpCode == 200) {
String payload = http.getString();
Serial.println("Domoticz response ");
Serial.println(payload);
}
}
Serial.println("closing connection");
http.end();
}