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