#include #include #include #include #include #include #include "DHT.h" //**********************// // interaction Jeedom #define JEEDOM true // Activation interaction avec Jeedom ( veuillez renseigner tous les champs , avant de l'activer : true) String ApiKey = "P0PqxGL0VHYhArSyX0VU8kiEY2ejwaVH"; // cle API Jeedom P0PqxGL0VHYhArSyX0VU8kiEY2ejwaVH String IPJeedom = "192.168.1.85"; String PortJeedom = "80"; HTTPClient http; //base URL jeedom Virtuel String BaseUrlJeedom ="http://"+IPJeedom+":"+PortJeedom+"/core/api/jeeApi.php?apikey=" + ApiKey + "&type=virtual&id="; #define DHTTYPE DHT22 // DHT 22 const int DHTPin = 2; DHT dht(DHTPin, DHTTYPE); // Temporary variables char celsiusTemp[6]; char humidityTemp[6]; boolean temp_ok; // WiFi char ssid[] = "PMC_LIM"; // SSID NAME char pass[] = "SolineSimonMaelleMalo"; // SSID PASSWORD byte mac[6]; char mac_addr[20]; IPAddress ip; char ip_addr[20]; // Nos ESP8266-01 #define NBRE_ESP 3 String T_Mac_Addr[NBRE_ESP] = {"18:FE:34:9A:45:3A","18:FE:34:9A:4F:ED","84:F3:EB:4B:F2:17"}; char *T_Lieux[NBRE_ESP] = {"Cuisine","Cave","Extérieur"}; String T_ID_Temp[NBRE_ESP] = {"1554","378","386"}; String T_ID_Hum[NBRE_ESP] = {"1555","1556","1557"}; String ID_Temp = ""; String ID_Hum = ""; String Lieu = ""; const char* password = ".........."; WiFiClient client; void setup() { ArduinoOTA.setHostname("Extérieur"); // on donne une petit nom a notre module ArduinoOTA.setPassword("soline28"); ArduinoOTA.begin(); // initialisation de l'OTA ID_Temp = 386; ID_Hum = 1557; Lieu = "Ext"; Serial.println ( "Début" ); Serial.begin(115200); WiFi.begin(ssid, pass); while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( "." ); } Serial.println ( "" ); Serial.print ( "Connected to " ); Serial.println ( ssid ); Serial.print ( "IP address: " ); Serial.println ( WiFi.localIP() ); Serial.print ( "MAC address: " ); Serial.println ( WiFi.macAddress() ); // macaddress mac = WiFi.macAddress(); WiFi.macAddress(mac); sprintf(mac_addr, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]); // IPAddress ip = WiFi.localIP(); // WiFi.localIP(ip); ip = WiFi.localIP(); // sprintf(ip_addr, "%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3]); //// Détermination ID_Temp et ID_Hum en fonction de la Mac_Addr // // int i; // for (i = 0; i < NBRE_ESP; i = i + 1) { // if (T_Mac_Addr[i] = mac_addr) { // Serial.print ( "Valeur de i: " ); // Serial.println ( i ); // ID_Temp = T_ID_Temp[i]; // ID_Hum = T_ID_Hum[i]; // Lieu = T_Lieux[i]; // } // } // // Serial.print ( "ID_Temp: " ); // Serial.println ( ID_Temp ); // Serial.print ( "ID_Hum: " ); // Serial.println ( ID_Hum ); dht.begin(); delay(10000); } void saveTempData() { temp_ok = true; delay(2000); // Read Humidity float h = dht.readHumidity(); if (isnan(h)) { h = 99.99; temp_ok = false; } dtostrf(h, 5, 2, humidityTemp); // Read temperature as Celsius (the default) float t = dht.readTemperature(); if (isnan(t)) { t = 88.88; temp_ok = false; } dtostrf(t, 5, 2, celsiusTemp); // if (isnan(h) || isnan(t)) { if (celsiusTemp == "-127.00") { temp_ok = false; } } // Fonction envoie requete vers Jeedom void sendToJeedom(String url , String id , String valeur){ // Serial.println ( "Dans sendToJeedom" ); // Serial.print ( "ID: " ); // Serial.println ( id ); // Serial.print ( "Valeur: " ); // Serial.println ( valeur ); if (JEEDOM) { url +=id; url +="&value="+valeur; Serial.print ( "URL: " ); Serial.println ( url ); http.begin(url); int httpCode = http.GET(); http.end(); } } void loop() { ArduinoOTA.handle(); if (WiFi.status() != WL_CONNECTED) { Serial.println("...WIFI LOST..."); delay(1000); //-- On reboot ESP.reset(); } saveTempData(); // Serial.println ( "Après saveTempData" ); // Serial.print ( "Temp: " ); // Serial.println ( celsiusTemp ); // Serial.print ( "Hum: " ); // Serial.println ( humidityTemp ); sendToJeedom(BaseUrlJeedom , ID_Temp , celsiusTemp); sendToJeedom(BaseUrlJeedom , ID_Hum , humidityTemp); // sendToJeedom(BaseUrlJeedom , ID_Temp , "33.33"); // sendToJeedom(BaseUrlJeedom , ID_Hum , "66.66"); //#if (JEEDOM) // if (httpCode != 200 ) { // message = " Erreur connexion Jeedom "; // message.toCharArray(Notif,BUF_SIZE); // Alert=true; // httpCode=200; // } //#endif delay(50000); }