/* Programa DHT11_Nodemcu_Thingspeek1 Version 2 * FALTA COLOCAR API KEY DONDE XXXXXXXXXXXXXXXX * PROBANDO SI FUNCIONO SATISFACTORIAMENTE- * * * Envia por Internet a pagina de Thingspeak datos del DHT11 * Este programa muestra temperatura y humedad mediante DHT11 * Funciona con la libreria DHT.h contenida en esta carpeta del * programa. * El PIN del Nodemcu es el D3 * */ #include "DHT.h" // including the library of DHT11 temperature and humidity sensor #define DHTTYPE DHT11 // DHT 11 #define dht_dpin 0 DHT dht(dht_dpin, DHTTYPE); #include /*----------------------------- WiFiClient client; //Crea un cliente que puede conectarse a //una dirección IP y puerto de Internet //especificados como se define en client.connect () */ //-------------------VARIABLES GLOBALES-------------------------- int contconexion = 0; const char *ssid = "CASA"; //Nombre de la red const char *password = "grthjety";//Clave de la red unsigned long previousMillis = 0; const char* server = "184.106.153.149";//Servidor Thingspeak String apiKey ="xxxxxxxxxxxxxx"; //APIKEY del canal //-------------------------------------------------- //const char* server = "api.thingspeak.com"; //Servidor Thingspeak //Tambien podria ser... //const char* server = "184.106.153.149"; //Servidor Thingspeak //-------------------------------------------------- int LED = 16; // led connected to D3 void setup(void) { dht.begin(); //Inicializamos el sensor Serial.begin(115200); // Inicia Serial delay(10); Serial.println(""); // Conexión WIFI WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED and contconexion <50) { //Cuenta hasta 50 si no se puede conectar lo cancela ++contconexion; delay(500); Serial.print("."); } } void loop() { delay(15000);//cada 15 segundos //Definimos variables tipo float para lectura //de temperatura y humedad y realizamos la lectura float hum = dht.readHumidity(); float temp = dht.readTemperature(); //----------------------------------------------- enviarTempTS(temp,hum); } //---ZONA DE FUNCIONES----------------------- //----Función para Enviar Datos a Thingspeak---- void enviarTempTS(float temp,float hum) { WiFiClient client; if (client.connect(server, 80)) { Serial.println("WiFi Client connected "); String postStr = apiKey; postStr += "&field1="; postStr += String(temp);//Envia dato temperatura postStr += "&field2="; postStr += String(hum);//Envia dato huemedad postStr += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); delay(1000); } client.stop(); }