Paso 5: Codigo
Una vez preparado todo es hora de programar nuestro ESP8266por medio del IDE de Arduino y el plugin para ESP8266, en el programa habrá hacer los cambios necesarios dependiendo de tu SSID tu contraseña sus clave e ID generadas anteriormente.
Una vez preparado todo su tiempo para programar nuestro ESP8266 por el IDE de Arduino y el plugin de ESP8266, en el programa que tendrá que cambiar algunos datos como su SSID contraseña su clave y su ID generado previamente.
GitHub:
https://github.com/wero1414/ESPWeatherStation/BLOB...
#include //Pin #include "DHT.h" #define DHTPIN 2 para fijar el DHT #define //type DHTTYPE DHT11 de DTH const char * ssid = "Tu SSID"; const char * clave = "Contraseña"; const int sleepTimeS = 600; //18000 por media hora, 300 durante 5 minutos etc.
El tiempo en / / char server [] = "weatherstation.wunderground.com"; Char [] Página Web = "GET weatherstation/updateweatherstation.php?"; Char [] ID = "YourWeatherID"; char [contraseña] = "YourPasswordOfWunderground";
/////////////IFTTT///////////////////////
const char * host = "maker.ifttt.com";//dont changeconst String IFTTT_Event = "YourEventName"; const int puertoHost = 80; const String Maker_Key = "YourMakerKey"; String conexionIF = "POST /trigger/" + IFTTT_Event + "/ / clave /" + Maker_Key + "HTTP/1.1\r\n" + "Host:" + host + "\r\n" + "Content-Type: aplicación/x--www-form-urlencoded \r\n\r\n";
//////////////////////////////////////////
DHT dht (DHTPIN, DHTTYPE);
void setup() {Serial.begin(115200); dht.begin(); delay(1000); Serial.println(); Serial.Print ("conectarse"); Serial.println(SSID); WiFi.begin (ssid, contraseña); mientras que (WiFi.status()! = WL_CONNECTED) {delay(500); Serial.Print("."); }} void loop() {//Check int nivel = analogRead(A0); = nivel mapa (nivel, 0, 1024, 0, 100); if(level<50) {mandarNot(); //Send IFTT Serial.println("Low batter"); delay(500);} //Get datos de los sensores de flotador tempc = dht.readTemperature(); float tempf = (tempc * 9.0) / 5.0 + 32.0; float humedad = dht.readHumidity(); float dewptf = (punto de rocío (tempf, dht.readHumidity())); datos del sensor //check Serial.println("+++"); Serial.Print ("tempF ="); Serial.Print(tempf); Serial.println ("* F"); Serial.Print ("tempC ="); Serial.Print(tempC); Serial.println ("* C"); Serial.Print ("punto de rocío ="); Serial.println(dewptf); Serial.Print ("humedad ="); Serial.println(Humidity); Enviar datos a Serial.print("connecting to") metro tiempo; Serial.println(Server); Cliente WiFiClient; Si (! client.connect (servidor, 80)) {Serial.println ("error de conexión"); 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 ("& humedad ="); Client.Print(Humidity); Client.Print ("& softwaretype = ESP % 208266O % 20version1 & action = updateraw & en tiempo real = 1 & rtfreq = 2. 5"); Client.println(); Delay(2500); sleepMode(); }
doble punto de rocío (doble tempf, doble humedad) punto de rocío //Calculate {doble A0 = 373.15 / (273.15 + tempf); doble suma =-7.90298 * (A0-1); SUMA += 5.02808 * log10(A0); SUMA +=-1.3816e-7 * (pow (10, (11.344*(1-1/A0)))-1); SUMA += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1); SUMA += log10(1013.246); doble VP = pow (10, SUM-3) * humedad; doble T = log(VP/0.61078); volver (241.88 * T) / (17,558-T);} void mandarNot() {WiFiClient cliente; si (! client.connect (host, puertoHost)) //Check conexión {Serial.println ("Conexión fallida"); return;} client.print (conexionIF); //Send información delay(10) while(client.available()) {String línea = client.readStringUntil('\r'); Serial.Print(line); }} void sleepMode() {Serial.print(F("Sleeping...")); ESP.deepSleep(sleepTimeS * 1000000);}