Étape 5: Codigo
Una vez preparado todo es hora de nuestro programar ESP8266por medio del IDE Arduino y el plugin para ESP8266, en el programa habrá que hacer los cambios necesarios dependiendo de tu SSID tu contraseña sus clé e ID generadas anteriormente.
Une fois que preparated tout son temps à programmer nos ESP8266 par l’IDE Arduino et le plugin de la ESP8266, dans le programme, que vous devrez modifier certaines informations telles que votre SSID votre clé du mot de passe et l’ID généré précédemment.
GitHub :
https://github.com/wero1414/ESPWeatherStation/BLOB...
#include #include « DHT.h » #define DHTPIN 2 //Pin pour fixer la DHT #define DHTTYPE DHT11 //type de SRD const char * ssid = « Votre SSID »; const char * mot de passe = « Votre mot de passe »; const int sleepTimeS = 600 ; //18000 pour la demi-heure, 300 pendant 5 minutes etc..
Météo / / / char [serveur] = "weatherstation.wunderground.com" ; Char [page Web] = "GET weatherstation/updateweatherstation.php?" ; Char [] ID = "YourWeatherID"; char [] mot de passe = "YourPasswordOfWunderground" ;
/////////////IFTTT///////////////////////
const char * hôte = "maker.ifttt.com";//dont changeconst String IFTTT_Event = « YourEventName » ; const int puertoHost = 80 ; const String Maker_Key = « YourMakerKey » ; String conexionIF = « POST /trigger/ » + IFTTT_Event + « / avec/clé / » + Maker_Key + "HTTP/1.1\r\n" + "hôte:" + hôte + « \r\n » + "Content-Type : application/x-www-formulaires-urlencoded \r\n\r\n" ;
//////////////////////////////////////////
DHT dht (DHTPIN, DHTTYPE) ;
void setup() {Serial.begin(115200) ; dht.begin() ; delay(1000) ; Serial.println() ; Serial.Print (« Connecting to ») ; Serial.println(SSID) ; WiFi.begin (ssid, mot de passe) ; tandis que (WiFi.status()! = WL_CONNECTED) {delay(500) ; Serial.Print(".") ; }} void loop() {//Check niveau de batterie int = analogRead(A0); = niveau carte (niveau, 0, 1024, 0, 100); if(level<50) {mandarNot() ; //Send Serial.println("Low batter") IFITT ; delay(500);} //Get données de capteur flottent NC = dht.readTemperature() ; float tempf = (NC * 9.0) / 5.0 + 32.0 ; float humidité = dht.readHumidity() ; float dewptf = (point de rosée (tempf, dht.readHumidity())) ; données de capteurs //check Serial.println("+++") ; Serial.Print ("tempF =") ; Serial.Print(tempf) ; Serial.println ("* F") ; Serial.Print (« NC = ") ; Serial.Print(TEMPC) ; Serial.println ("* C") ; Serial.Print ("point de rosée =") ; Serial.println(dewptf) ; Serial.Print ("humidité =") ; Serial.println(Humidity) ; Envoyer des données au Weather Underground Serial.print("connecting to") ; Serial.println(Server) ; WiFiClient client ; Si (! client.connect (serveur, 80)) {Serial.println ("Echec de la Conection"); return;} client.print(WEBPAGE) ; client.Print("ID=") ; client.Print(ID) ; client.Print ("& PASSWORD =") ; client.Print(Password) ; client.Print ("& dateutc =") ; client.Print("Now") ; client.Print ("& tempf =") ; client.Print(tempf) ; client.Print ("& dewptf =") ; client.Print(dewptf) ; client.Print ("& humidité =") ; client.Print(Humidity) ; client.Print ("& softwaretype = ESP % 208266O % 20version1 & action = updateraw & en temps réel = 1 & rtfreq = 2,5") ; client.println() ; Delay(2500) ; sleepMode() ; }
double point de rosée (double tempf, double humidité) du Point de rosée //Calculate {double A0 = 373,15 / (273,15 + tempf); double somme =-7.90298 * (A0-1) ; SUM += 5.02808 * log10(A0) ; SOMME +=-1.3816e-7 * (pow (10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246) ; double VP = pow (10, SUM-3) * humidité ; double T = log(VP/0.61078) ; retour (241.88 * T) / (17,558-T);} void mandarNot() {WiFiClient client ; if (! client.connect (host, puertoHost)) //Check connexion {Serial.println ("connection Failed"); return;} client.print (conexionIF); //Send informations delay(10) ; while(client.available()) {String line = client.readStringUntil('\r') ; Serial.Print(Line) ; Sub}} sleepMode() {Serial.print(F("Sleeping...")) ; ESP.deepSleep(sleepTimeS * 1000000);}