meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
electronica:esp8266:nube [2016/08/31 23:32] – [2 Temperatura y Humedad en la nube] lcelectronica:esp8266:nube [2016/09/12 23:26] lc
Línea 3: Línea 3:
 Una vez que hemos visto como montar nuestro propio servidor web, vamos a ver ahora como hacerlo directamente desde un servidor 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 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 
 + 
 +<sxh c> 
 +// wiki.intrusos.info 
 + 
 +// 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"); 
 + 
 + 
 +  // Leemos la respuesta del servidor y la sacamos por el puerto serie 
 +  while (client.available()) { 
 +    String line = client.readStringUntil('\r'); 
 +    Serial.print(line); 
 +  } 
 + 
 +  Serial.println(); 
 +  Serial.println("Cerramos la conexión"); 
 + 
 +  // Repetir cada 10s 
 +  delay(10000); 
 + 
 +
 +</sxh> 
 + 
 +Si toda ha ido correctamente deberías de ver por el puerto serial algo similar a 
 +<code> 
 +{"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 
 +</code> 
 + 
 +==== Visualizar gráficamente nuestros datos ==== 
 +Como última parte de esta práctica vamos a visualizar gráficamente las medidas de humedad y temperatura usando la plataforma [[https://www.freeboard.io]] 
 + 
 +Lo primero es crear una cuenta y una vez creada debemos seguir estos pasos: 
 +  - Añadir un **DATASOURCE**  con los parámetros que pusimos en nuestro código {{ :electronica:esp8266:datasource.png?nolink&600 |}} 
 +  - Pulsamos el botón **Add Panel** y dentro del panel pulsamos el botón **+** para añadir un WIDGET {{ :electronica:esp8266:temperatura.png?nolink&600 |}} {{ :electronica:esp8266:humedad.png?nolink&600 |}} 
 + 
 + 
 +Con esto ya podemos ver gráficamente nuestro dispositivo 
 +{{ :electronica:esp8266:freeboard.png?nolink&600 |}}
 ==== Referencias ==== ==== Referencias ====
   * https://www.openhomeautomation.net/cloud-temperature-logger-esp8266/   * https://www.openhomeautomation.net/cloud-temperature-logger-esp8266/