jueves, 14 de julio de 2016

Monitorización de temperatura, humedad y sensación térmica



Con un WeMos D1 mini V2 (3,66 euros) y una shield DHT11 (2,29 euros) vamos a monitorizar la  temperatura, humedad y sensación térmica de donde se encuentre instalado y funcionando el WeMos.




Los datos se subirán cada diez segundos al sitio emoncms.org y allí crearemos las gráficas para visualizarlas en el smartphone u ordenador.




 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
88
89
90
91
92
93
94
95
96
/*****************************************************************************
 * ***************************************************************************
 *  Fecha: 14/07/2016       Autor: AntonioBG
 *  Material: Wemos mini D1 V2 + shield DHT11
 * 
 * 
 * Conexión:  
 *    Por defecto la shield ya tiene la conexion al pin D4   
*          
 * LICENCIA DE USO GNU GPL, si mejoras el programa o añades funcionalidades,
 * por favor, compártelo!
 ***************************************************************************
 ****************************************************************************/
#include <ESP8266WiFi.h>
#include "DHT.h"
#include "EmonLib.h"  

const char* ssid = "xxxxxxxxxxxxxx";
const char* password = "xxxxxxxxxxxxxxx";
const char* host = "emoncms.org";
const char* apikey = "xxxxxxxxxxxxxxxxxxxxx";

int node = 1; //numero del nodo

  #define DHTPIN D4     // pin de conexion
  #define DHTTYPE DHT11   // DHT 11
  //#define DHTTYPE DHT22   // DHT 22  (AM2302)
  //#define DHTTYPE DHT21   // DHT 21 (AM2301)
  float h; //declara humedad
  float t; //temperatura
  float hic; //sensacion termica
  DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}


void loop() {
  delay(5000);
  
   h = dht.readHumidity();
   t = dht.readTemperature(); //temperatura en celsius
   hic = dht.computeHeatIndex(t, h); //computa el índice de calor
   
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

  delay(1000);    

  if (client.connect(host, httpPort)) {
    Serial.println("Conectando...");
    client.print("GET /api/post?apikey=");
    client.print(apikey);
    client.print("&node=");
    client.print(node);
    client.print("&json={Humedad");
    client.print(":");
    client.print(h);    
    client.print(",Temp_dht:");
    client.print(t);
    client.print(",Sensacion_terminca:");
    client.print(hic);
    client.println("} HTTP/1.1");
    client.println("Host:emoncms.org");
    client.println("User-Agent: Arduino-ethernet");
    client.println("Connection: close");
    client.println();

  } 
  
  delay(4000);
  
  Serial.println();
  Serial.println("closing connection");
}

No hay comentarios:

Publicar un comentario