{"id":2168,"date":"2020-01-03T16:55:19","date_gmt":"2020-01-03T21:55:19","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=2168"},"modified":"2025-04-07T11:38:29","modified_gmt":"2025-04-07T16:38:29","slug":"lora-multipunto-gateway-ino-basico-con-lora-esp32","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-gateway-ino-basico-con-lora-esp32\/","title":{"rendered":"2.3 LoRa Multipunto - Gateway.ino b\u00e1sico con LoRa-ESP32"},"content":{"rendered":"<p>El prototipo para un gateway simple se inicia con la funci\u00f3n de recepci\u00f3n de mensajes que hay que procesar para enviarlos aun servidor MQTT. A partir de donde se gestionan los datos de los sensores.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/Lora_Gateway02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2204 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/Lora_Gateway02.png\" alt=\"Lora Gateway 02\" width=\"1193\" height=\"660\" \/><\/a><\/p>\n<p>Para el prototipo se usa placa de desarrollo que contiene: un\u00a0 m\u00f3dulo LoRa y un SoC ESP32. Si se reutiliza algunos componentes de algoritmos usados para los dispositivos con WiFi, la versi\u00f3n inicial se conecta un router IP via WiFi de donde se envia el mensaje MQTT.<\/p>\n<p>El mensaje MQTT require la descripci\u00f3n de un t\u00f3pico, por lo que en la conformaci\u00f3n del t\u00f3pico se usa la direcci\u00f3n de env\u00edo.<\/p>\n<p>Los valores usados en el mensaje MQTT, son el estado del sensor u otro valor que se requiera. Para facilitar el seguimiento inicial de datos, se publica el identificador de mensaje, que es un contador ascendente que permite observar la secuencia del n\u00famero de mensaje.<\/p>\n<h2>Gateway Multipunto - Recepci\u00f3n Lora y env\u00edo MQTT<\/h2>\n<p>Para el ejercicio se habilitan dos dispositivos \"D1\" y \"D2\", comprobando los mensajes recibidos de varias formas:<\/p>\n<p>- mensajes por puerto serial<br \/>\n- mensajes MQTT en servidor<\/p>\n<h2><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3718 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08.png\" alt=\"LoRa Multipunto Gtw 08\" width=\"1246\" height=\"521\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08.png 1246w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08-300x125.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08-768x321.png 768w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_08-1024x428.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/h2>\n<h2>Instrucciones en Arduino<\/h2>\n<p>Los bloques se crean a partir del ejemplo de LoRa Mutipunto para dispositivos, aprovechando que el m\u00f3dulo Heltec LoRa-ESP32 tiene incorporado WiFi. Aunque no se encuentran todos los canales disponibles al mismo tiempo para recibir todas las se\u00f1ales, se aprovecha que si el\u00a0 canal est\u00e1 libre se puede realizar la transmisi\u00f3n del estado del sensor desde LoRa hacia WiFi para llegar hasta el broker MQTT.<\/p>\n<p>El ejercicio es una prueba de concepto, pues un gateway completo debe estar atento a todos los canales de transmisi\u00f3n y tener la capacidad de atenci\u00f3n a cada uno de ellos simult\u00e1neamente.<\/p>\n<h3>Bloque principal<\/h3>\n<p>En el bloque principal se adjuntan los par\u00e1metros de conexi\u00f3n por WiFi, as\u00ed como las instrucciones de inicializaci\u00f3n. Desde luego ser\u00e1 necesario a\u00f1adir los procedimientos de WiFi y MQTT.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3711 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_01.png\" alt=\"LoRa Multipunto Gtw 01\" width=\"846\" height=\"129\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_01.png 846w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_01-300x46.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_01-768x117.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #95a5a6\">\/* Dispositivo Gateway: LoRa\/WiFi\/MQTT\/Home-Assistant<\/span>\r\n<span style=\"color: #95a5a6\"> * <\/span><u><span style=\"color: #95a5a6\">http:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/<\/span><\/u>\r\n<span style=\"color: #95a5a6\"> * Referencia: Aaron.Lee <\/span><u><span style=\"color: #95a5a6\">www.heltec.cn<\/span><\/u><span style=\"color: #95a5a6\">, <\/span>\r\n<span style=\"color: #95a5a6\"> * <\/span><u><span style=\"color: #95a5a6\">https:\/\/github.com\/Heltec-Aaron-Lee\/WiFi_Kit_series<\/span><\/u>\r\n<span style=\"color: #95a5a6\">*\/<\/span>\r\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #005c5f\">\"heltec.h\"<\/span>\r\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>\r\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>\r\n\r\n<span style=\"color: #434f54\">\/\/ LoRa Banda ISM en Regi\u00f3n 915Mhz<\/span>\r\n<span style=\"color: #5e6d03\">#define<\/span> <span style=\"color: #000000\">BAND<\/span> <span style=\"color: #000000\">915E6<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/433E6,868E6,915E6<\/span>\r\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> \u00a0<span style=\"color: #434f54\">\/\/ rango 6-12,default 7<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Mensaje LoRa a enviar por direcciones<\/span>\r\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\">\/\/ Dispositivo 1<\/span>\r\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 2<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">id_msjLoRa<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span> \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ cuenta mensaje<\/span>\r\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> \u00a0<span style=\"color: #434f54\">\/\/ mensaje<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Mensaje LoRa recibido<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_envio<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xC1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ receptor<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_remite<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xD1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ emisor<\/span>\r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"OFF\"<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ mensaje LoRa<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqRcb_ID<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ 0:vacio, 1: nuevo, \u00a0\u00a02:incompleto<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ 3:otro destinatario, 4:Broadcast<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ LED interno, ESP01-pin=1, ESP07-pin=2<\/span>\r\n<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">LED_pin<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LED<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/LED interno Heltec<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Mensajes por Puerto Serial<\/span>\r\n<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>\r\n\r\n<span style=\"color: #434f54\">\/\/ tiempo entre lecturas<\/span>\r\n<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">tiempo_antes<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">int<\/span> \u00a0<span style=\"color: #000000\">tiempo_intervalo<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">6000<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">tiempo_espera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">tiempo_intervalo<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #d35400\">random<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">3000<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">ssid<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"miRouter\"<\/span><span style=\"color: #000000\">;<\/span>\r\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\">\"miRouterclave\"<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ MQTT: Servidor<\/span>\r\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>\r\n<span style=\"color: #00979c\">uint16_t<\/span> <span style=\"color: #000000\">MQTT_puerto<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1883<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">MQTT_usuario<\/span> \u00a0\u00a0\u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"usuarioprueba\"<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n\r\n<span style=\"color: #434f54\">\/\/ MQTT: Dispositivo Sensor<\/span>\r\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>\r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico_base<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"invernadero\/lora\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico_valor<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\/valor\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_TOPIC<\/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\">\"\"<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ construido en algoritmo<\/span>\r\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>\r\n<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>\r\n\r\n<span style=\"color: #434f54\">\/\/ MQTT: Dispositivo Actuador<\/span>\r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico_accion<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\/cambia\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span> <span style=\"color: #000000\">MQTT_COMMAND<\/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\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n<span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">actuador_estado<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">false<\/span><span style=\"color: #000000\">;<\/span>\r\n<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>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">sensor_ON<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"ON\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">sensor_OFF<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"OFF\"<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Clientes WiFi y MQTT<\/span>\r\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> \u00a0\u00a0<span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">true<\/span> <span style=\"color: #95a5a6\">\/*Heltec.LoRa Disable*\/<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">serial_msj<\/span> <span style=\"color: #95a5a6\">\/*Serial Enable*\/<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">true<\/span> <span style=\"color: #95a5a6\">\/*PABOOST Enable*\/<\/span><span style=\"color: #434f54\">,<\/span>\r\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>\r\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>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/LoRa.onReceive(cbk);<\/span>\r\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>\r\n \u00a0\r\n \u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI y MQTT<\/span>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n\r\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>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ LoRa Revisa mensajes de dispositivos<\/span>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">recibe_lora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjRcbLoRa<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">int<\/span> <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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">snr_lora<\/span> \u00a0<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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"Recibido: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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\">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>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_envio<\/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>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqRcb_ID<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> \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>\r\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\">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>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">rssi_lora<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> \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>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">snr_lora<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> \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>\r\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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\r\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\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"Paquete recibido Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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\">paqRcb_Estado<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ LED parpadea. Rebibido LoRa <\/span>\r\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>\r\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>\r\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>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ MQTT publica estado recibido desde LoRa<\/span>\r\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\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\r\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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">publica_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ LoRa Reenvia a dispositivo<\/span>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">id_msjLoRa<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">id_msjLoRa<\/span> <span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">envia_lora<\/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> \r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">id_msjLoRa<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">paqueteEnv<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ Revisa estado WiFi y MQTT<\/span>\r\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>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">publica_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>LoRa - env\u00edo de mensajes<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3712 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_02.png\" alt=\"LoRa Multipunto Gtw 02\" width=\"845\" height=\"126\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_02.png 845w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_02-300x45.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_02-768x115.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">envia_lora<\/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>\r\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>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ espera radio para enviar un paquete<\/span>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ envio del mensaje LoRa<\/span>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>LoRa - Recibe mensajes<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3713 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_03.png\" alt=\"LoRa Multipunto Gtw 03\" width=\"847\" height=\"125\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_03.png 847w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_03-300x44.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_03-768x113.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">recibe_lora<\/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>\r\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> \r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/vacio<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ lectura de paquete<\/span>\r\n \u00a0<span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">dir_envio<\/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>\r\n \u00a0<span style=\"color: #000000\">dir_remite<\/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>\r\n \u00a0<span style=\"color: #000000\">paqRcb_ID<\/span> \u00a0\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>\r\n \u00a0\r\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>\r\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>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqRcb_Estado<\/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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">3<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ otro destino<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">4<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Broadcast, difusion<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">paqRcb_Estado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span> \u00a0\u00a0<span style=\"color: #434f54\">\/\/ mensaje Nuevo<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>MQTT- inicia<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3714 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_04.png\" alt=\"LoRa Multipunto Gtw 04\" width=\"843\" height=\"128\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_04.png 843w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_04-300x46.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_04-768x117.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><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>\r\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">esperamqtt<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">5<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n \u00a0\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\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>\r\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>\r\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\">recibe_mqtt<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\r\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\">esperamqtt<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ LED Monitor parpadeo MQTT<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> \u00a0<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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ publica_mqtt();<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ suscribe a todos los topicos base<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Fin de \"....\"<\/span>\r\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\">\"\\n MQTT Conectado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\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 Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>MQTT- publica mensaje<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3715 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_05.png\" alt=\"LoRa Multipunto Gtw 05\" width=\"848\" height=\"125\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_05.png 848w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_05-300x44.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_05-768x113.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">publica_mqtt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span> \r\n \u00a0<span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_SensorEstado<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<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: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ MQTT Construye t\u00f3pico por remitente<\/span>\r\n \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>\r\n \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>\r\n \u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico_base<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">remite<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">topico_valor<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">topico<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_TOPIC<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">topico<\/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>\r\n \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>\r\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\">\" \u00a0\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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\">topico<\/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>\r\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_SensorEstado<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ MQTT Construye t\u00f3pico por remitente<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">topico_cmd<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topico_cmd<\/span> <span style=\"color: #434f54\">+=<\/span> <span style=\"color: #000000\">topico_base<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">remite<\/span> <span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\"\/cambia\"<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">topico_cmd<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">toCharArray<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">MQTT_COMMAND<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">topico_cmd<\/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>\r\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>\r\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\">\" \u00a0sucrito: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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\">MQTT_COMMAND<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0\r\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>\r\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<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">MQTT_SensorEstado<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>MQTT- Recibe mensaje<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3716 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_06.png\" alt=\"LoRa Multipunto Gtw 06\" width=\"847\" height=\"127\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_06.png 847w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_06-300x45.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_06-768x115.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #434f54\">\/\/ llega mensaje MQTT, callback mqtt sin confirmaci\u00f3n<\/span>\r\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">recibe_mqtt<\/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>\r\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>\r\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>\r\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: #005c5f\">\"Recibe mensaje MQTT\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\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\">p_topic<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ convierte a texto<\/span>\r\n \u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">payload<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">paqueteEnv<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">payload<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ direccion destino<\/span>\r\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>\r\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">desde<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">topico_base<\/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>\r\n \u00a0<span style=\"color: #000000\">dispositivo<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">0<\/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\">desde<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #000000\">;<\/span>\r\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\">desde<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #000000\">;<\/span>\r\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>\r\n\r\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>\r\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>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span><span style=\"color: #5e6d03\">else<\/span><span style=\"color: #000000\">{<\/span>\r\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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>WiFi - inicio<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3717 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_07.png\" alt=\"LoRa Multipunto Gtw 07\" width=\"849\" height=\"126\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_07.png 849w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_07-300x45.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LoRaMultipuntoGtw_07-768x114.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><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>\r\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">esperawifi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">;<\/span> \u00a0<span style=\"color: #434f54\">\/\/ &gt;=10 para conectar<\/span>\r\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>\r\n \u00a0\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\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>\r\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>\r\n \u00a0\r\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>\r\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>\r\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>\r\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>\r\n \u00a0\r\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> \r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">cuentawifi<\/span> <span style=\"color: #434f54\">&lt;<\/span> <span style=\"color: #000000\">esperawifi<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ Parpadeo de Monitor Wifi<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> \u00a0<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>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ mensaje a serial, Fin de \"...\"<\/span>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\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>\r\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>\r\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>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<p>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El prototipo para un gateway simple se inicia con la funci\u00f3n de recepci\u00f3n de mensajes que hay que procesar para enviarlos aun servidor MQTT. A partir de donde se gestionan los datos de los sensores. Para el prototipo se usa placa de desarrollo que contiene: un\u00a0 m\u00f3dulo LoRa y un SoC ESP32. Si se reutiliza &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-gateway-ino-basico-con-lora-esp32\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"2.3 LoRa Multipunto - Gateway.ino b\u00e1sico con LoRa-ESP32\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1436897],"tags":[602214,1457738],"class_list":["post-2168","post","type-post","status-publish","format-standard","hentry","category-lora-multipunto","tag-iot","tag-lora"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2168","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=2168"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2168\/revisions"}],"predecessor-version":[{"id":4152,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2168\/revisions\/4152"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=2168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=2168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}