{"id":2746,"date":"2020-11-20T12:47:06","date_gmt":"2020-11-20T17:47:06","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=2746"},"modified":"2021-03-11T11:23:57","modified_gmt":"2021-03-11T16:23:57","slug":"captura-datos-balizas-y-dispositivo-configuracion-algoritmo-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/captura-datos-balizas-y-dispositivo-configuracion-algoritmo-ino\/","title":{"rendered":"2.1 Captura datos. Balizas y dispositivo - configuraci\u00f3n algoritmo.ino"},"content":{"rendered":"<h2>Instrucciones para el dispositivo en Arduino IDE<\/h2>\n<p>El esquema para baliza y dispositivo propuesto para el modelo de localizaci\u00f3n usa el modelo<a href=\"http:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/\"> multipunto de LoRa<\/a> que usa direcciones para identificar la funci\u00f3n de cada elemento:<\/p>\n<ul>\n<li>Baliza: d1,d2,d3<\/li>\n<li>Dispositivo: c1<\/li>\n<\/ul>\n<p>El esquema se muestra simplificado para un solo punto, se plantea usar el dispositivo 'C1' como punto de captura de datos hacia un archivo tipo texto mediante la conexi\u00f3n USB a un computador portatil.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2758 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01.png\" alt=\"\" width=\"558\" height=\"398\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01.png 558w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01-300x214.png 300w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/a><\/p>\n<p>En el dispositivo, por cada paquete recibido se toman los datos del paquete y valores medidos, creando un registro de trama con: el tipo rx\/tx, id receptor, remitente, los datos recibidos y lecturas de RSSI y SNR del paquete recibido desde el remitente que es cada baliza.<\/p>\n<pre>    <span style=\"color: #000000\">rssi_lorarx<\/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    <span style=\"color: #000000\">snr_lorarx<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">packetSnr<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span><\/pre>\n<h2>Registro de la trama de datos<\/h2>\n<p>El registro de la trama de datos recibida en el computador se compone de la parte de datos recibido y las lecturas de Rssi-SNR del paquete. El orden de los datos se muestra en la tabla:<\/p>\n<table>\n<caption>esquema de trama de datos<\/caption>\n<tbody>\n<tr>\n<td><em><strong>\u00a0tipo<\/strong><\/em><\/td>\n<td>receptor<\/td>\n<td>remitente<\/td>\n<td>dato1<\/td>\n<td>dato2<\/td>\n<td>dato3<\/td>\n<td>Rssi recibido<\/td>\n<td>SNR recibido<\/td>\n<\/tr>\n<tr>\n<td>rx, tx<\/td>\n<td>c1, ff<\/td>\n<td>d1, d2, d3<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td>medido en el dispositivo<\/td>\n<td>medido en el dispositivo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ejemplo de trama recibida:<\/p>\n<pre>rx,c1,d3,36,-62,6.00,-65,6.00\r\ntx,ff,c1,2,-65,6.00,-65,6.00\r\nrx,c1,d2,21,-130,6.00,-130,6.00\r\nrx,c1,d1,138,-98,18.75,-131,10.25\r\n<\/pre>\n<p>Para obtener los valores de Rssi y SNR de recepci\u00f3n desde cada baliza, se emite peri\u00f3dicamente un paquete de difusi\u00f3n ('ff') desde el dispositivo c1. Los valores recibidos en la baliza se replican en los datos del pr\u00f3ximo paquete de la baliza hacia el dispositivo c1, que corresponden a dato2 y dato3.<\/p>\n<p>Para revisar la secuencia del paquete se registra un contador desde el emisor, enviado en la posici\u00f3n de dato1.<\/p>\n<h2>Configurar la funci\u00f3n de baliza o dispositivo<\/h2>\n<p>se\u00a0 establece mediante las direcciones de env\u00edo y recepci\u00f3n descritas en la secci\u00f3n principal del algoritmo.<\/p>\n<p>Para el dispositivo la <code>direcci\u00f3n local<\/code> es C1 , para las balizas ser\u00e1n D1, D2, D3.<\/p>\n<p>En el <strong>dispositivo<\/strong> se usa la direcci\u00f3n local 'C1', y como destino una trama de difusi\u00f3n 'FF' hacia todas las balizas de tal manera que cada baliza pueda medir el nivel de recepci\u00f3n de la se\u00f1al emitida desde el dispositivo.<\/p>\n<pre><span style=\"color: #434f54\">\/\/ Direcciones Enviar mensaje<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_local<\/span>   <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xC1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Concentrador 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\">0xFF<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Broadcast para medir Rssi<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">msjtxContador<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<\/pre>\n<p>En las <strong>balizas<\/strong>,\u00a0 la direcci\u00f3n local de la baliza es D1, D2, D3, y la direcci\u00f3n destino es el dispositivo.<\/p>\n<pre><span style=\"color: #434f54\">\/\/ Direcciones Enviar mensaje<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_local<\/span>   <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xD1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Baliza 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\">0xC1<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Dispositivo<\/span>\r\n<\/pre>\n<p>Otros par\u00e1metros como tiempo entre paquetes, se configuran de acuerdo a las lecturas que se tomar\u00e1n en un intervalo de tiempo. El par\u00e1metro <code>t_ciclotx<\/code> establece el intervalo de tiempo en que cada dispositivo o baliza emite un paquete.<\/p>\n<p>Para LoRa, los tiempos de envio de paquetes son bastante largos de acuerdo al dise\u00f1o b\u00e1sico de la red est\u00e1ndar, sin embargo durante el experimiento para tomar las lecturas m\u00e1s r\u00e1pido en cada ubicaci\u00f3n de prueba se puede reducir a por ejemplo, 10 segundos (10000ms)<\/p>\n<pre><span style=\"color: #00979c\">int<\/span>  t_ciclotx =10000;\r\n<\/pre>\n<p>otros detalles de configuraci\u00f3n del dispositivo se pueden revisar en la secci\u00f3n de referencias al final de la hoja.<\/p>\n<hr \/>\n<h2>M\u00f3dulos LoRa<\/h2>\n<p>El prototipo se implent\u00f3 con los m\u00f3dulos de desarrollo Heltec Lora 32 V2 disponibles al momento de las pruebas. Los m\u00f3dulos son de 915MHz, y se usaron tambi\u00e9n con las pruebas de conexi\u00f3n multipunto descritas en <a href=\"http:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/\">LoRa Multipunto \u2013 Esquema<\/a><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2111\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec.png\" alt=\"\" width=\"757\" height=\"289\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec.png 757w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec-300x115.png 300w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><\/p>\n<hr \/>\n<h2>Instrucciones en Arduino<\/h2>\n<p>Las instrucciones del dispositivo escritas usando el IDE Arduino se presentan en secciones o bloques:<\/p>\n<ul>\n<li>Principal: LoRa_Listener02<\/li>\n<li>Receptor: LoRaReceptor<\/li>\n<li>Transmisor: LoRaTransmisor<\/li>\n<li>Sensor: Sensores<\/li>\n<\/ul>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2747 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01.png\" alt=\"\" width=\"853\" height=\"260\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01.png 853w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01-300x91.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01-768x234.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<hr \/>\n<h3>Secci\u00f3n principal<\/h3>\n<pre><span style=\"color: #95a5a6\">\/* Pruebas de Rssi y SNR multipunto, esquema de triangulaci\u00f3n<\/span>\r\n<span style=\"color: #95a5a6\"> \u00a0Nodo- Receptor. <\/span><u><span style=\"color: #95a5a6\">http:\/\/blog.espol.edu.ec\/girni\/<\/span><\/u>\r\n<span style=\"color: #95a5a6\"> \u00a0Septiembre-2020 *\/<\/span>\r\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #005c5f\">\"heltec.h\"<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ SENSOR Parpadeo<\/span>\r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">sensorBlink<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"ON\"<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ inicializa on\/off: 1\/0<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Direcciones Enviar mensaje<\/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\">\/\/ Concentrador 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\">0xFF<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Broadcast para medir Rssi<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">msjtxContador<\/span> <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\">t_ciclotx<\/span> <span style=\"color: #434f54\">=<\/span> 100<span style=\"color: #000000\">00<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">t_anterior<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">int<\/span> \u00a0<span style=\"color: #000000\">t_intervalo<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">3000<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Direcciones Mensaje Recibido<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">dir_envio<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xC1<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">dir_remite<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0xFF<\/span><span style=\"color: #000000\">;<\/span> \r\n<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paqueteRcb<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqrcbID<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">byte<\/span> \u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ 0:vacio, 1: nuevo, 2:incompleto<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ 3:otro destinatario, 4:Broadcast<\/span>\r\n\r\n<span style=\"color: #00979c\">int<\/span> \u00a0<span style=\"color: #000000\">rssi_lorarx<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">float<\/span> <span style=\"color: #000000\">snr_lorarx<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Mensajes por Puerto Serial<\/span>\r\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">serial_msj<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #5e6d03\">#define<\/span> <span style=\"color: #000000\">BAND<\/span> \u00a0\u00a0\u00a0<span style=\"color: #000000\">915E6<\/span> \u00a0<span style=\"color: #434f54\">\/\/ 868E6,915E6<\/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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\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\">8<\/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\">receive<\/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\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 enviar mensajes entre intervalos<\/span>\r\n \u00a0<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">t_ahora<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #d35400\">millis<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #00979c\">long<\/span> <span style=\"color: #000000\">t_transcurrido<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">t_ahora<\/span> <span style=\"color: #434f54\">-<\/span> <span style=\"color: #000000\">t_anterior<\/span><span style=\"color: #000000\">;<\/span>\r\n \r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">t_transcurrido<\/span> <span style=\"color: #434f54\">&gt;=<\/span> <span style=\"color: #000000\">t_intervalo<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">t_anterior<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">t_ahora<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">t_intervalo<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">t_ciclotx<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #d35400\">random<\/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\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ sensorParpadea(); \/\/actualiza sensor<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">sensorBlink<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">rssi_lorarx<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">snr_lorarx<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c\">String<\/span> <span style=\"color: #000000\">paqueteEnv<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">sensorBlink<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">c_str<\/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\">enviarlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_destino<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">dir_local<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">msjtxContador<\/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: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ mensaje a serial<\/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<span style=\"color: #434f54\">\/\/ muestra todos paqrcbEstado<\/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\">\"tx,\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_destino<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">HEX<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">dir_local<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #00979c\">HEX<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjtxContador<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqueteEnv<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">rssi_lorarx<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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\">snr_lorarx<\/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\u00a0\u00a0<span style=\"color: #000000\">msjtxContador<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">msjtxContador<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ LED parpadea envio 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\">100<\/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> \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\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ LoRa revisar mensajes entrantes<\/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> <span style=\"color: #434f54\">\/\/\u00bfmensaje no vacio?<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">recibirlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">msjRcbLoRa<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">rssi_lorarx<\/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: #000000\">snr_lorarx<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">packetSnr<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\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\">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: #434f54\">\/\/ muestra todos los tipos<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Serial.print(\"Paquete recibido, Estado: \");<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Serial.println(paqrcbEstado);<\/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\">\"rx,\"<\/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: #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: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #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: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqrcbID<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">paqueteRcb<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">rssi_lorarx<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #005c5f\">\",\"<\/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: #00979c\">String<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">snr_lorarx<\/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: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>Secci\u00f3n Receptor<\/h3>\n<p>En esta secci\u00f3n se revisa la trama, separando cada una de las partes del paquete recibido: direcci\u00f3n de env\u00edo, direcci\u00f3n de remitente, identificador del paquete generado por un contador de secuencia.<\/p>\n<p>Se verifica que el destinatario del paquete, si el tama\u00f1o de la trama indica que el mensaje est\u00e1 completo, si la trama es de difusi\u00f3n (broadcast) usada para registrar los niveles de recepci\u00f3n.<\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">recibirlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">tamano<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\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\">paqrcbEstado<\/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\u00a0\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> <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> \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\">paqrcbID<\/span> <span style=\"color: #434f54\">=<\/span> <b><span style=\"color: #d35400\">LoRa<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">read<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\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<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\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Tama\u00f1o incompleto<\/span>\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: #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\u00a0\u00a0<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">4<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ Broadcast<\/span>\r\n \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<span style=\"color: #000000\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">3<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ otro destino<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/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\">paqrcbEstado<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span> \u00a0<span style=\"color: #434f54\">\/\/ mensaje Nuevo<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>Secci\u00f3n de transmisor<\/h3>\n<p>En esta secci\u00f3n se verifica que el canal no se encuentre ocupado o que el dispositivo este listo para transmitir.<\/p>\n<p>Se arma el paquete a enviar y se transmite.<\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">enviarlora<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">destino<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">byte<\/span> <span style=\"color: #000000\">remite<\/span><span style=\"color: #434f54\">,<\/span>\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 \u00a0<span style=\"color: #434f54\">\/\/ espera que el radio est\u00e9 listo<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ 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\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ procesa wifi<\/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<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>Secci\u00f3n Sensor<\/h3>\n<p>La secci\u00f3n del sensor no es requerida para el registro de Rssi y SNR, por lo que se simula con un parpadeo de LED.<\/p>\n<pre><span style=\"color: #434f54\">\/\/ Sensor Simulado<\/span>\r\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">sensorParpadea<\/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><span style=\"color: #000000\">sensorBlink<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #005c5f\">\"ON\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">sensorBlink<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"OFF\"<\/span><span style=\"color: #000000\">;<\/span>\r\n \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<span style=\"color: #000000\">sensorBlink<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"ON\"<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0<span style=\"color: #5e6d03\">return<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<p><em><strong>Referencias<\/strong><\/em>: <a href=\"http:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/\">LoRa Multipunto \u2013 Esquema<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instrucciones para el dispositivo en Arduino IDE El esquema para baliza y dispositivo propuesto para el modelo de localizaci\u00f3n usa el modelo multipunto de LoRa que usa direcciones para identificar la funci\u00f3n de cada elemento: Baliza: d1,d2,d3 Dispositivo: c1 El esquema se muestra simplificado para un solo punto, se plantea usar el dispositivo 'C1' como &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/captura-datos-balizas-y-dispositivo-configuracion-algoritmo-ino\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"2.1 Captura datos. Balizas y dispositivo - configuraci\u00f3n algoritmo.ino\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1463489],"tags":[1457738],"class_list":["post-2746","post","type-post","status-publish","format-standard","hentry","category-localizacion-rssi-lora","tag-lora"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2746","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=2746"}],"version-history":[{"count":17,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2746\/revisions"}],"predecessor-version":[{"id":3145,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2746\/revisions\/3145"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=2746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=2746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=2746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}