{"id":1904,"date":"2019-02-23T19:11:02","date_gmt":"2019-02-24T00:11:02","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1904"},"modified":"2026-08-04T21:57:16","modified_gmt":"2026-08-05T02:57:16","slug":"wifi-temperatura-humedad-archivo-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/wifi-temperatura-humedad-archivo-ino\/","title":{"rendered":"WiFi - Temperatura y Humedad: Archivo.ino"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1. Instrucciones en Arduino IDE<\/h2>\n\n\n\n<p>El modelo ESP-07 dispone de suficientes pines que permiten incorporar las funciones de programaci\u00f3n usando pines de una sola funci\u00f3n. Por lo que se facilita el dise\u00f1o.<\/p>\n\n\n\n<p>Modo Ahorro de Energ\u00eda: Las instrucciones se desarrollan en la parte de configuraci\u00f3n Setup() en lugar del lazo, Loop(), debido a que se utiliza el modo de ahorro de energ\u00eda (deep-sleep).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2 Funciones para sensores y actuadores<\/h2>\n\n\n\n<p>Se han separado en funciones las instrucciones para el sensor de bater\u00eda y temperatura-humedad.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\n\/* Sensor de Temperatura y Humedad DHT11\nSensor de Estado de Bater\u00eda\nFuncionamiento con Bater\u00eda\nPara usar, se debe actualizar las secciones de:\n - WIFI datos para conexi\u00f3n a Router\n - MQTT: Servidor MQTT \n - MQTT: identificador de dispositivo y topics\nSe est\u00e1 usando ESP8266-07, pero para programar,\nusar Placa:ESP8285\n*\/\n#include &lt;ESP8266WiFi.h&gt;\n#include &lt;PubSubClient.h&gt;\n#include &lt;dht.h&gt;\n\n\/\/ WIFI datos para conexi\u00f3n a Router\nconst PROGMEM char* ssid = &quot;iotirni19&quot;;\nconst PROGMEM char* password = &quot;anera2018&quot;;\n\n\/\/ MQTT: Servidor MQTT \nconst PROGMEM char* MQTT_SERVER_IP = &quot;192.168.10.100&quot;;\nconst PROGMEM uint16_t MQTT_SERVER_PORT = 1883;\nconst PROGMEM char* MQTT_USER = &quot;username&quot;;\nconst PROGMEM char* MQTT_PASSWORD = &quot;password&quot;;\n\n\/\/ MQTT: identificador de dispositivo y topics\nconst PROGMEM char* MQTT_CLIENT_ID = &quot;Temp_humedad01&quot;;\nconst PROGMEM char* MQTT_SENSOR_TOPIC_T = &quot;oficina\/DHT_Temperatura&quot;;\nconst PROGMEM char* MQTT_SENSOR_TOPIC_H = &quot;oficina\/DHT_Humedad&quot;;\nconst PROGMEM char* MQTT_SENSOR_TOPIC_B = &quot;oficina\/DHT_Bateria&quot;;\nconst PROGMEM char* MQTT_SENSOR_TOPIC_BS = &quot;oficina\/DHT_BatSistema&quot;;\nchar MQTT_SENSOR_STATE_T&#x5B;10] = &quot;0&quot;; \/\/ inicializa\nchar MQTT_SENSOR_STATE_H&#x5B;10] = &quot;0&quot;; \/\/ inicializa\nchar MQTT_SENSOR_STATE_B&#x5B;10] = &quot;0&quot;; \/\/ inicializa\nchar MQTT_SENSOR_STATE_BS&#x5B;10] = &quot;0&quot;; \/\/ inicializa\n\n\/\/ LED monitor interno\n\/\/ESP01-pin=1, ESP07-pin=2\nconst PROGMEM uint8_t LED_pin = 2; \n\n\/\/ Sensor de Temperatura&amp;Humedad\ndht DHT;\n#define DHT11_PIN 12\n\n\/\/ Bateria\n#define bat_estado A0\nconst PROGMEM uint8_t bat_activa = 4;\n\n\/\/ tiempo de dormir\nint durmiendo = 5; \/\/segundos\n\nWiFiClient wifiClient;\nPubSubClient client(wifiClient);\n\nvoid setup() {\n    \/\/ Conexion serial\n    Serial.begin(9600);\/\/74880);\n    Serial.setTimeout(2000);\n\n    \/\/ SENSOR Temperatura&amp;Humedad\n    \/\/pinMode(DHT11_PIN, INPUT);\n\n    \/\/ SENSOR Bateria\n    pinMode(bat_activa, OUTPUT);\n    digitalWrite(bat_activa, LOW);\n\n    \/\/ LED monitor\n    pinMode(LED_pin, OUTPUT);\n    \/\/ LEDactivaestado();\n\n    \/\/ Inicia redes\n    if(WiFi.status() != WL_CONNECTED){\n        inicia_wifi();\n        }\n    if (!client.connected()){\n        inicia_mqtt();\n        }\n    client.loop();\n    \n    \/\/ espera inicializar serial\n    while(!Serial) { }\n    \/\/ actividad al despertar\n    Serial.println();\n    Serial.println(&quot;despertando&quot;);\n    \n    \/\/ lectura de sensores\n    SensorTempHum();\n    SensorBateria();\n\n    \/\/ a dormir\n    Serial.println(&quot;A dormir por &quot; + String(durmiendo) + &quot; segundos&quot;);\n    ESP.deepSleep(durmiendo*1e6); \/\/en microsegundos\n}\n\nvoid loop() {\n    \/\/ modo sleep usa funci\u00f3n setup\n}\n\nvoid SensorTempHum(){\n    int chk = DHT.read11(DHT11_PIN);\n    float temperatura = DHT.temperature;\n    float humedad = DHT.humidity;\n    Serial.println(&quot;Temperatura,Humedad: &quot;);\n    Serial.print(temperatura);\n    Serial.print(&quot;,&quot;);\n    Serial.println(humedad);\n    client.publish(MQTT_SENSOR_TOPIC_T, \n                    String(temperatura).c_str(), \n                    true);\n    client.publish(MQTT_SENSOR_TOPIC_H, \n                    String(humedad).c_str(), \n                    true);\n    delay(1000);\n}\nvoid SensorBateria(){\n\n    \/\/ Activar, Leer, Desactivar, publicar\n    digitalWrite(bat_activa, HIGH);\n    \n    float bateria = analogRead(A0)*(57\/10)\/1024;\n    int bat_sistema = ESP.getVcc()*100\/65535;\n    \/\/delay(5000); \/\/ observar cambio\n    digitalWrite(bat_activa, LOW);\n    \n    Serial.println(&quot;Bateria (V), sistema (%):&quot;);\n    Serial.print(bateria);\n    Serial.print(&quot;,&quot;);\n    Serial.println(bat_sistema);\n    \n    client.publish(MQTT_SENSOR_TOPIC_B,\n                    String(bateria).c_str(),\n                    true);\n    client.publish(MQTT_SENSOR_TOPIC_BS,\n                    String(bat_sistema).c_str(),\n                    true);\n    delay(10);\n}\n\nvoid inicia_wifi() {\n    \/\/ conexion WiFi\n    Serial.print(&quot;\\n Conectando a &quot;);\n    Serial.println(ssid);\n    WiFi.begin(ssid, password);\n    int cuenta = 0;\n    while (WiFi.status() != WL_CONNECTED){\n        Serial.print(&quot;.&quot;);\n        cuenta = cuenta+1;\n        if (cuenta&gt;=40){\n            Serial.println();\n            cuenta = 0;}\n        \/\/ LED interno enciende en LOW\n        digitalWrite(LED_pin, LOW);\n        delay(250);\n        digitalWrite(LED_pin, HIGH);\n        delay(250);\n        }\n    Serial.print(&quot;\\n WiFi conectado \\n Direcci\u00f3n IP: &quot;);\n    Serial.println(WiFi.localIP());\n    delay(10);\n}\n\nvoid inicia_mqtt(){\n    client.setServer(MQTT_SERVER_IP, MQTT_SERVER_PORT);\n    \/\/client.setCallback(callback);\n    while (!client.connected()) {\n        \/\/Serial.println(&quot;\\n Conectando a MQTT &quot;);\n        if (client.connect(MQTT_CLIENT_ID, MQTT_USER, MQTT_PASSWORD)) {\n            Serial.println(&quot; MQTT conectado&quot;);  \n        } else {\n            Serial.print(&quot;Fall\u00f3, estado: &quot;);\n            Serial.print(client.state()); \n            Serial.print(&quot; , reintento en 5 segundos&quot;);\n            \/\/ LED interno enciende en LOW\n            for (int i=0;i&lt;=5;i=i+1){\n                digitalWrite(LED_pin, LOW);\n                delay(600);\n                digitalWrite(LED_pin, HIGH);\n                delay(400);\n            }\n        }\n    }\n}\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>1. Instrucciones en Arduino IDE El modelo ESP-07 dispone de suficientes pines que permiten incorporar las funciones de programaci\u00f3n usando pines de una sola funci\u00f3n. Por lo que se facilita el dise\u00f1o. Modo Ahorro de Energ\u00eda: Las instrucciones se desarrollan en la parte de configuraci\u00f3n Setup() en lugar del lazo, Loop(), debido a que se [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1430993],"tags":[],"class_list":["post-1904","post","type-post","status-publish","format-standard","hentry","category-wifi-temperatura-humedad"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=1904"}],"version-history":[{"count":6,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1904\/revisions"}],"predecessor-version":[{"id":4865,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1904\/revisions\/4865"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=1904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=1904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=1904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}