{"id":2228,"date":"2020-03-04T08:21:26","date_gmt":"2020-03-04T13:21:26","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=2228"},"modified":"2021-03-29T18:28:47","modified_gmt":"2021-03-29T23:28:47","slug":"lora-multipunto-temperatura-humedad-gateway-archivo-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-temperatura-humedad-gateway-archivo-ino\/","title":{"rendered":"3.4 LoRa multipunto - Temperatura, Humedad: Gateway Archivo.ino"},"content":{"rendered":"<h4>1. Instrucciones en Arduino IDE<\/h4>\n<p>Para el env\u00edo de los mensajes hacia el broker MQTT y Home Assistant se usa un dispositivo configurado como gateway.<\/p>\n<p>Se usa un dispositivo en lugar de un concentrador en la etapa de prototipo considerando los costos involucrados. La pr\u00f3xima tarea es desarrollar el gateway usando un concentrador, cuyo valor es\u00a0 m\u00e1s alto.<\/p>\n<pre><span style=\"color: #95a5a6\">\/* Gateway LoRa<\/span>\n<span style=\"color: #95a5a6\"> \u00a0Lora\/Wifi\/MQTT\/Home-Assistant<\/span>\n<span style=\"color: #95a5a6\"> \u00a0Envia informaci\u00f3n por red Lora\/Gateway WiFi<\/span>\n<span style=\"color: #95a5a6\"> \u00a0hacia un broker MQTT y gestionar datos en Home-Assistant<\/span>\n<span style=\"color: #95a5a6\"> \u00a0edelros@espol.edu.ec<\/span>\n<span style=\"color: #95a5a6\"> \u00a0<\/span><u><span style=\"color: #95a5a6\">http:\/\/blog.espol.edu.ec\/edelros\/<\/span><\/u>\n<span style=\"color: #95a5a6\"> \u00a0<\/span>\n<span style=\"color: #95a5a6\"> \u00a0Referencia: Aaron.Lee <\/span><u><span style=\"color: #95a5a6\">www.heltec.cn<\/span><\/u>\n<span style=\"color: #95a5a6\"> \u00a0<\/span><u><span style=\"color: #95a5a6\">https:\/\/github.com\/Heltec-Aaron-Lee\/WiFi_Kit_series<\/span><\/u>\n<span style=\"color: #95a5a6\">*\/<\/span>\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #005c5f\">\"heltec.h\"<\/span>\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><b><span style=\"color: #d35400\">PubSubClient<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\n\n<span style=\"color: #434f54\">\/\/ DISPOSITIVO LORA Banda ISM en Regi\u00f3n 915Mhz<\/span>\n<span style=\"color: #5e6d03\">#define<\/span> <span style=\"color: #000000\">BAND<\/span> \u00a0<span style=\"color: #000000\">915E6<\/span> <span style=\"color: #434f54\">\/\/433E6,868E6,915E6<\/span>\n<span style=\"color: #434f54\">\/\/ ranges from 6-12,default 7 see API docs<\/span>\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">spread_factor<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">8<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ LoRa Mensaje a enviar por direcciones<\/span>\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paqueteEnv<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_local<\/span> \u00a0\u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xC1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Concentrador 1<\/span>\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_destino<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xD1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Dispositivo 1<\/span>\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">msjContador<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ identificador de mensaje<\/span>\n<span style=\"color: #434f54\">\/\/ tiempo entre lecturas<\/span>\n<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">t_anterior<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">int<\/span> \u00a0<span style=\"color: #000000\">t_intervalo<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">4000<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ LoRa Mensaje Recibido<\/span>\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_envio<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xC1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Concentrador 1<\/span>\n<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">dir_remite<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xD0<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Inicia Remitente<\/span>\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqrcbID<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ 0:vacio, 1: nuevo, 2:incompleto<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ 3:otro destinatario, 4:Broadcast<\/span>\n\n <span style=\"color: #434f54\">\/\/ Mensajes por Puerto Serial<\/span>\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">serial_msj<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">ssid<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"giotirni20\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">password<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"Anera2020@\"<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ MQTT: Servidor<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_IP<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"192.168.10.50\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">uint16_t<\/span> <span style=\"color: #000000\">MQTT_puerto<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1883<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_usuario<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"usuarioprueba\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_contrasena<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"usuarioclave\"<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ MQTT: Dispositivo Sensor<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_ID<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"LoraGatewayC1\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_TOPIC_T<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/loraD1\/temperatura\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_TOPIC_H<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/loraD1\/humedad\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_TOPIC_V<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/loraD1\/voltaje\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_SensorEstado<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"OFF\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">mqtt_desconectado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #434f54\">\/\/ MQTT: Dispositivo Actuador<\/span>\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_COMMAND<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/loraD1\/cambia\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_ActuadorEstado<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"OFF\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">actuador_estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">actuador_bandera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">temperatura<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">]<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"00.00\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">humedad<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"00.00\"<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">voltaje<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"00.00\"<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ Clientes WiFi y MQTT<\/span>\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> <span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\n<b><span style=\"color: #d35400\">PubSubClient<\/span><\/b> <span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #5e6d03\">setup<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #d35400\">Heltec<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">false<\/span> <span style=\"color: #95a5a6\">\/*DisplayEnable Enable*\/<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">true<\/span> <span style=\"color: #95a5a6\">\/*Heltec.Heltec.Heltec.LoRa Disable*\/<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">serial_msj<\/span> <span style=\"color: #95a5a6\">\/*Serial Enable*\/<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">true<\/span> <span style=\"color: #95a5a6\">\/*PABOOST Enable*\/<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">BAND<\/span> <span style=\"color: #95a5a6\">\/*long BAND*\/<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ ranges from 6-12,default 7 see API docs<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">setSpreadingFactor<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">spread_factor<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #434f54\">\/\/LoRa.onReceive(cbk);<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">receive<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI y MQTT<\/span>\n \u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">inicia_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #5e6d03\">loop<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ parametros de recepci\u00f3n<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">rssi_lora<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">snr_lora<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #434f54\">\/\/ Revisa mensajes LoRa entrantes<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">msjRcbLoRa<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">parsePacket<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjRcbLoRa<\/span> <span style=\"color: #434f54\">!=<\/span><span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">recibirlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjRcbLoRa<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">rssi_lora<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">packetRssi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">snr_lora<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">packetSnr<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"remite,msjID,mensaje,estado,Rssi,Snr\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_remite<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HEX<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqrcbID<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqrcbEstado<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">rssi_lora<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">snr_lora<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ LED parpadea Rebibido Lora<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">50<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">100<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n\n \u00a0<span style=\"color: #434f54\">\/\/ Procesa a MQTT mensaje completo<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjRcbLoRa<\/span> <span style=\"color: #434f54\">!=<\/span><span style=\"color: #000000\">0<\/span> <span style=\"color: #434f54\">&amp;&amp;<\/span> <span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ Separa par\u00e1metros<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">t<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">substring<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">6<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">h<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">substring<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">8<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">v<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">substring<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">12<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ procesa t\u00f3pico MQTT<\/span>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ a\u00f1ade dispositivo<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/lora\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">remite<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_remite<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HEX<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">remite<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toUpperCase<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">remite<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ procesa topico<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topicot<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #005c5f\">\"\/temperatura\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topicoh<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #005c5f\">\"\/humedad\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topicov<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #005c5f\">\"\/voltaje\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topicot<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_T<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">topicot<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topicoh<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_H<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">topicoh<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topicov<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_V<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">topicov<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">t<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">temperatura<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">t<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">humedad<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">v<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">voltaje<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">v<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">topicov<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n\n \u00a0\u00a0\u00a0\n \u00a0\u00a0<span style=\"color: #000000\">publica_estado<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n \u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">20<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n\n \u00a0<span style=\"color: #434f54\">\/\/ reenviar a dispositivo<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">actuador_bandera<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">msjContador<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">msjContador<\/span> <span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">enviarlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_destino<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">dir_local<\/span><span style=\"color: #434f54\">,<\/span> \n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">msjContador<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">paqueteEnv<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">actuador_bandera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n \u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">20<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">mqtt_desconectado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">inicia_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ reintento<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqtt_desconectado<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">publica_estado<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">mqtt_desconectado<\/span><span style=\"color: #434f54\">=<\/span><span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #5e6d03\">loop<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">enviarlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">destino<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">remite<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">paqueteID<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paquete<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ espera que el radio est\u00e9 listo<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ para enviar un paquete<\/span>\n \u00a0<span style=\"color: #5e6d03\">while<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">beginPacket<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"Esperando radio disponible...\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">100<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ envio del mensaje LoRa<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">beginPacket<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">write<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">destino<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">write<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">remite<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">write<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqueteID<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">write<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paquete<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paquete<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">endPacket<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">recibirlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">tamano<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">tamano<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span> \n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/vacio<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0\n \u00a0<span style=\"color: #434f54\">\/\/ lectura de paquete<\/span>\n \u00a0<span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">dir_envio<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">dir_remite<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">paqrcbID<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">paqrcbTamano<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #5e6d03\">while<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">available<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">+=<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">char<\/span><span style=\"color: #000000\">)<\/span><b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqrcbTamano<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">length<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Tama\u00f1o incompleto<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_envio<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">dir_local<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">3<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ otro destino<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_envio<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">0xFF<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">4<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Broadcast<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span> \u00a0<span style=\"color: #434f54\">\/\/ mensaje Nuevo<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">inicia_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">void<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">intentosmqtt<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">5<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">cuentamqtt<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" MQTT Conectando a \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_IP<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n\n \u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">setServer<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_IP<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">MQTT_puerto<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connect<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_ID<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">MQTT_usuario<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">MQTT_contrasena<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">setCallback<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">recibirmqtt<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">while<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #434f54\">!<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">&amp;&amp;<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">cuentamqtt<\/span><span style=\"color: #434f54\">&lt;=<\/span><span style=\"color: #000000\">intentosmqtt<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\".\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">cuentamqtt<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">cuentamqtt<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ LED Monitor parpadeo MQTT<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">publica_estado<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Fin de \"....\"<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" MQTT Conectado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"\\t MQTT Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">state<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">publica_estado<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span> \n\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">publish<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_T<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">temperatura<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">publish<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_H<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">humedad<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">publish<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC_V<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">voltaje<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">subscribe<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_COMMAND<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqtt_desconectado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #434f54\">\/\/ llega mensaje MQTT, callback mqtt<\/span>\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">recibirmqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">p_topic<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">byte<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">p_payload<\/span><span style=\"color: #434f54\">,<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c\">unsigned<\/span> <span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">p_length<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\n \u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"un mensaje mqtt\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">p_topic<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ convierte a texto<\/span>\n \u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">payload<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #5e6d03\">for<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">i<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #000000\">i<\/span> <span style=\"color: #434f54\">&lt;<\/span> <span style=\"color: #000000\">p_length<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #000000\">i<\/span><span style=\"color: #434f54\">++<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">payload<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">concat<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">char<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">p_payload<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">i<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #434f54\">\/\/ String dispositivo = p_topic[16] + String(p_topic[17]);<\/span>\n \u00a0<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">dispositivo<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">3<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"D0\"<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">dispositivo<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #434f54\">=<\/span><span style=\"color: #000000\">p_topic<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">17<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">dir_destino<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">int<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #d35400\">strtol<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dispositivo<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">NULL<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">16<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">paqueteEnv<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">payload<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">actuador_bandera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">connected<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqttclient<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">subscribe<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_COMMAND<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">mqtt_desconectado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span>\n\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">void<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">intentoswifi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">cuentawifi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" WiFi Conectando a \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ssid<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">disconnect<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">1000<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">mode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">WIFI_STA<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">setAutoConnect<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ssid<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">password<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">100<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\n \u00a0<span style=\"color: #5e6d03\">while<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span> <span style=\"color: #434f54\">&amp;&amp;<\/span> \n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">cuentawifi<\/span> <span style=\"color: #434f54\">&lt;<\/span> <span style=\"color: #000000\">intentoswifi<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\".\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">cuentawifi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">cuentawifi<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ Parpadeo de Monitor Wifi<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span><span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">300<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span><span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msj<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ mensaje a serial<\/span>\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" MAC: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">macAddress<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" IP: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">localIP<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" RSSI: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">RSSI<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">printDiag<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span>\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. Instrucciones en Arduino IDE Para el env\u00edo de los mensajes hacia el broker MQTT y Home Assistant se usa un dispositivo configurado como gateway. Se usa un dispositivo en lugar de un concentrador en la etapa de prototipo considerando los costos involucrados. La pr\u00f3xima tarea es desarrollar el gateway usando un concentrador, cuyo valor &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-temperatura-humedad-gateway-archivo-ino\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"3.4 LoRa multipunto - Temperatura, Humedad: Gateway Archivo.ino\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1457942],"tags":[602214,1457738],"class_list":["post-2228","post","type-post","status-publish","format-standard","hentry","category-lora-multpunto-temperatura-humedad","tag-iot","tag-lora"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2228","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=2228"}],"version-history":[{"count":2,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2228\/revisions"}],"predecessor-version":[{"id":2562,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2228\/revisions\/2562"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=2228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=2228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=2228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}