meta data de esta página
¡Esta es una revisión vieja del documento!
2 Temperatura y Humedad en la nube
Una vez que hemos visto como montar nuestro propio servidor web, vamos a ver ahora como hacerlo directamente desde un servidor en la nube.
En primer lugar vamos a usar la plataforma http://dweet.io, en la cual no hay que registrarse para usarla, basta con crear un nombre de dispositivo único para llamar a la HAPI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
// Librerias #include "ESP8266WiFi.h" #include "DHT.h" // Parámetros de Conexión a la WiFi const char* ssid = "miredwifi" ; const char* password = "miclave" ; // Pin del ESP8266 al que está conectado. // El GPIO 4 corresponde al D2 del ESP8266-12E NodeMCU v3 #define DHTPIN 4 // tipo de sensor DHT #define DHTTYPE DHT11 // DHT 11 // Inicializa el sensor DHT dht(DHTPIN, DHTTYPE); // Host al que nos vamos a conectar const char* host = "dweet.io" ; void setup() { Serial.begin(115200); delay(100); // Inicializamos el sensor dht.begin(); // Conectamod a la red WIFI Serial.println(); Serial.println(); Serial.print( "Conectando con la red WIFI " ); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print( "." ); } Serial.println( "" ); Serial.println( "Conectado a la WiFi" ); Serial.println( "Dirección IP: " ); Serial.println(WiFi.localIP()); } void loop() { // Usa la clase WiFiClient para crear una conexión TCP WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println( "Error de Conexión" ); return ; } // Obtiene la Humedad float h = dht.readHumidity(); // Obtiene la Temperatura en Celsius float t = dht.readTemperature(); delay(3000); //retardo para que no de fallo de lectura del sensor // Control de errores, valida que se obtuvieron valores para los datos medidos if (isnan(h) || isnan(t)) { Serial.println( "Falla al leer el sensor DHT!" ); client.print( "Falla al leer el sensor DHT" ); return ; } // Enviamos los datos al servidor. client.print(String( "GET /dweet/for/tunombrededispositivounico?temperatura=" ) + String(t) + "&humedad=" + String(h) + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n" ); // Read all the lines of the reply from server and print them to Serial while (client.available()) { String line = client.readStringUntil( '\r' ); Serial.print(line); } Serial.println(); Serial.println( "Cerramos la conexión" ); // Repeat every 10 seconds delay(10000); } |
Si toda ha ido correctamente deberías de ver por el puerto serial algo similar a <box> {“this”:“succeeded”,“by”:“dweeting”,“the”:“dweet”,“with”:{“thing”:“elesp8266delc”,“created”:“2016-08-31T22:04:33.970Z”,“content”:{“temperatura”:27,“humedad”:48},“transaction”:“dd2d251d-e6ab-4006-9cd3-168fae589158”}} Cerramos la conexión HTTP/1.1 200 OK Access-Control-Allow-Origin: * Content-Type: application/json Content-Length: 215 Date: Wed, 31 Aug 2016 22:04:49 GMT Connection: close </box>