{"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":"2026-08-04T11:32:33","modified_gmt":"2026-08-04T16:32:33","slug":"captura-datos-balizas-dispositivo-configuracion-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/captura-datos-balizas-dispositivo-configuracion-ino\/","title":{"rendered":"2.1 Captura datos - Balizas y dispositivo - configuraci\u00f3n algoritmo.ino"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Instrucciones para el dispositivo en Arduino IDE<\/h2>\n\n\n\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\n\n\n<figure class=\"wp-block-image alignleft\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"398\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/BalizasDispositivo01.png\" alt=\"\" class=\"wp-image-2758\" 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><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Baliza: d1,d2,d3<\/li>\n\n\n\n<li>Dispositivo: c1<\/li>\n<\/ul>\n\n\n\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 port\u00e1til.<\/p>\n\n\n\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\n\n\n<pre class=\"wp-block-code alignwide\"><code>    <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>\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><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Registro de la trama de datos<\/h2>\n\n\n\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\n\n\n<figure class=\"wp-block-table alignwide\"><table><tbody><tr><td><em><strong>&nbsp;tipo<\/strong><\/em><\/td><td>receptor<\/td><td>remitente<\/td><td>dato1<\/td><td>dato2<\/td><td>dato3<\/td><td>Rssi recibido<\/td><td>SNR recibido<\/td><\/tr><tr><td>rx, tx<\/td><td>c1, ff<\/td><td>d1, d2, d3<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>medido en el dispositivo<\/td><td>medido en el dispositivo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Ejemplo de trama recibida:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>rx,c1,d3,36,-62,6.00,-65,6.00\ntx,ff,c1,2,-65,6.00,-65,6.00\nrx,c1,d2,21,-130,6.00,-130,6.00\nrx,c1,d1,138,-98,18.75,-131,10.25<\/code><\/pre>\n\n\n\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\n\n\n<p>Para revisar la secuencia del paquete se registra un contador desde el emisor, enviado en la posici\u00f3n de dato1.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar la funci\u00f3n de baliza o dispositivo<\/h2>\n\n\n\n<p>se&nbsp; establece mediante las direcciones de env\u00edo y recepci\u00f3n descritas en la secci\u00f3n principal del algoritmo.<\/p>\n\n\n\n<p>Para el dispositivo la <code>direcci\u00f3n local<\/code> es C1 , para las balizas ser\u00e1n D1, D2, D3.<\/p>\n\n\n\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\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\n\/\/ Direcciones Enviar mensaje\nbyte dir_local   = 0xC1; \/\/ Concentrador 1\nbyte dir_destino = 0xFF; \/\/ Broadcast para medir Rssi\nbyte msjtxContador = 0;\n<\/pre><\/div>\n\n\n<p>En las <strong>balizas<\/strong>,&nbsp; la direcci\u00f3n local de la baliza es D1, D2, D3, y la direcci\u00f3n destino es el dispositivo.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\n\/\/ Direcciones Enviar mensaje\nbyte dir_local   = 0xD1; \/\/ Baliza 1\nbyte dir_destino = 0xC1; \/\/ Dispositivo\n<\/pre><\/div>\n\n\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\n\n\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\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\nint  t_ciclotx =10000;\n<\/pre><\/div>\n\n\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\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">M\u00f3dulos LoRa<\/h2>\n\n\n\n<figure class=\"wp-block-image alignleft\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec.png\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"289\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/01\/LORA32_915MHz-v2Heltec.png\" alt=\"\" class=\"wp-image-2111\" 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: 757px) 100vw, 757px\" \/><\/a><\/figure>\n\n\n\n<p>El prototipo se implement\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=\"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/\" data-type=\"post\" data-id=\"2147\">LoRa Multipunto \u2013 Esquema<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Instrucciones en Arduino<\/h2>\n\n\n\n<p>Las instrucciones del dispositivo escritas usando el IDE Arduino se presentan en secciones o bloques:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Principal: LoRa_Listener02<\/li>\n\n\n\n<li>Receptor: LoRaReceptor<\/li>\n\n\n\n<li>Transmisor: LoRaTransmisor<\/li>\n\n\n\n<li>Sensor: Sensores<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"853\" height=\"260\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2020\/11\/DispositivoLocalizacion01.png\" alt=\"\" class=\"wp-image-2747\" 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: 853px) 100vw, 853px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Secci\u00f3n principal<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\n\/* Pruebas de Rssi y SNR multipunto, esquema de triangulaci\u00f3n\n \u00a0Nodo- Receptor. http:\/\/blog.espol.edu.ec\/girni\/\n \u00a0Septiembre-2020 *\/\n#include &quot;heltec.h&quot;\n\n\/\/ SENSOR Parpadeo\nString sensorBlink = &quot;ON&quot;; \/\/ inicializa on\/off: 1\/0\n\n\/\/ Direcciones Enviar mensaje\nbyte dir_local \u00a0\u00a0= 0xC1; \/\/ Concentrador 1\nbyte dir_destino = 0xFF; \/\/ Broadcast para medir Rssi\nbyte msjtxContador = 0;\nint \u00a0t_ciclotx = 10000;\nlong t_anterior = 0;\nint \u00a0t_intervalo = 3000;\n\n\/\/ Direcciones Mensaje Recibido\nbyte dir_envio = 0xC1;\nint dir_remite = 0xFF; \nString paqueteRcb = &quot;&quot;;\nbyte \u00a0\u00a0paqrcbID = 0;\nbyte \u00a0\u00a0paqrcbEstado = 0;\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ 0:vacio, 1: nuevo, 2:incompleto\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ 3:otro destinatario, 4:Broadcast\n\nint \u00a0rssi_lorarx = 0;\nfloat snr_lorarx = 0;\n\n\/\/ Mensajes por Puerto Serial\nvolatile boolean serial_msj = true;\n\n#define BAND \u00a0\u00a0\u00a0915E6 \u00a0\/\/ 868E6,915E6\n\nvoid setup() {\n \u00a0Heltec.begin(false \/*DisplayEnable Enable*\/,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true \/*Heltec.LoRa Disable*\/,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0serial_msj \/*Serial Enable*\/,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0true \/*PABOOST Enable*\/,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0BAND \/*long BAND*\/);\n \u00a0LoRa.setSpreadingFactor(8);\n \u00a0LoRa.receive();\n}\n\nvoid loop() {\n\n \u00a0\/\/ LoRa enviar mensajes entre intervalos\n \u00a0long t_ahora = millis();\n \u00a0long t_transcurrido = t_ahora - t_anterior;\n \n \u00a0if (t_transcurrido &gt;= t_intervalo){\n \u00a0\u00a0\u00a0t_anterior = t_ahora;\n \u00a0\u00a0\u00a0t_intervalo = t_ciclotx + random(1000);\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0\/\/ sensorParpadea(); \/\/actualiza sensor\n \u00a0\u00a0\u00a0sensorBlink = String(rssi_lorarx)+&quot;,&quot;+String(snr_lorarx);\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0String paqueteEnv = String(sensorBlink).c_str() ;\n \u00a0\u00a0\u00a0enviarlora(dir_destino, dir_local,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0msjtxContador, paqueteEnv);\n \u00a0\u00a0\u00a0yield();\n\n \u00a0\u00a0\u00a0\/\/ mensaje a serial\n \u00a0\u00a0\u00a0if (serial_msj==true){\n \u00a0\u00a0\u00a0\u00a0\u00a0\/\/ muestra todos paqrcbEstado\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(&quot;tx,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(dir_destino,HEX)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(dir_local,HEX)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(msjtxContador)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(paqueteEnv)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(rssi_lorarx)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.println(snr_lorarx);\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0msjtxContador = msjtxContador + 1;\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0\/\/ LED parpadea envio LoRa\n \u00a0\u00a0\u00a0digitalWrite(LED, HIGH); delay(100);\n \u00a0\u00a0\u00a0digitalWrite(LED, LOW); \u00a0delay(100);\n \u00a0\u00a0\u00a0yield(); \/\/ procesa wifi\n \u00a0}\n\n \u00a0\/\/ LoRa revisar mensajes entrantes\n \u00a0int msjRcbLoRa = LoRa.parsePacket();\n \u00a0if (msjRcbLoRa !=0){ \/\/\u00bfmensaje no vacio?\n \u00a0\u00a0\u00a0recibirlora(msjRcbLoRa);\n \u00a0\u00a0\u00a0rssi_lorarx = LoRa.packetRssi();\n \u00a0\u00a0\u00a0snr_lorarx = LoRa.packetSnr();\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0if (serial_msj==true){\n \u00a0\u00a0\u00a0\u00a0\u00a0\/\/ muestra todos los tipos\n \u00a0\u00a0\u00a0\u00a0\u00a0\/\/Serial.print(&quot;Paquete recibido, Estado: &quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0\/\/Serial.println(paqrcbEstado);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(&quot;rx,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(dir_envio,HEX)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(dir_remite,HEX)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(paqrcbID)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(paqueteRcb)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.print(String(rssi_lorarx)+&quot;,&quot;);\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.println(String(snr_lorarx));\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0\u00a0yield(); \/\/ procesa wifi\n \u00a0}\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Secci\u00f3n Receptor<\/h3>\n\n\n\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\n\n\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\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\nvoid recibirlora(int tamano){\n \u00a0if (tamano == 0){ \n \u00a0\u00a0\u00a0paqrcbEstado = 0; \/\/vacio\n \u00a0\u00a0\u00a0return;\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0\u00a0\n \u00a0\/\/ lectura de paquete\n \u00a0paqueteRcb = &quot;&quot;;\n \u00a0dir_envio = LoRa.read();\n \u00a0dir_remite \u00a0= LoRa.read();\n \u00a0paqrcbID = LoRa.read();\n \u00a0byte paqrcbTamano = LoRa.read();\n \u00a0while(LoRa.available()){\n \u00a0\u00a0\u00a0paqueteRcb += (char)LoRa.read();\n \u00a0}\n \u00a0if (paqrcbTamano != paqueteRcb.length()){\n \u00a0\u00a0\u00a0paqrcbEstado = 2; \/\/ Tama\u00f1o incompleto\n \u00a0\u00a0\u00a0return;\n \u00a0}\n \u00a0if (dir_envio != dir_local){\n \u00a0\u00a0\u00a0if (dir_envio == 0xFF) {\n \u00a0\u00a0\u00a0\u00a0\u00a0paqrcbEstado = 4; \/\/ Broadcast\n \u00a0\u00a0\u00a0}else{\n \u00a0\u00a0\u00a0\u00a0\u00a0paqrcbEstado = 3; \/\/ otro destino\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0\u00a0return;\n \u00a0}\n \u00a0paqrcbEstado = 1; \u00a0\/\/ mensaje Nuevo\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Secci\u00f3n de transmisor<\/h3>\n\n\n\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\n\n\n<p>Se arma el paquete a enviar y se transmite.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\nvoid enviarlora(byte destino, byte remite,\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0byte paqueteID, String paquete) {\n \u00a0\/\/ espera que el radio est\u00e9 listo\n \u00a0\/\/ para enviar un paquete\n \u00a0while(LoRa.beginPacket() == 0){\n \u00a0\u00a0\u00a0if (serial_msj==true){\n \u00a0\u00a0\u00a0\u00a0\u00a0Serial.println(&quot;Esperando radio disponible...&quot;);\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0\u00a0yield(); \/\/ procesa wifi\n \u00a0\u00a0\u00a0delay(100);\n \u00a0}\n \u00a0\/\/ envio del mensaje LoRa\n \u00a0LoRa.beginPacket();\n \u00a0LoRa.write(destino);\n \u00a0LoRa.write(remite);\n \u00a0LoRa.write(paqueteID);\n \u00a0LoRa.write(paquete.length());\n \u00a0LoRa.print(paquete);\n \u00a0LoRa.endPacket();\n}\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Secci\u00f3n Sensor<\/h3>\n\n\n\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\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\n\/\/ Sensor Simulado\nvoid sensorParpadea(){\n \u00a0\u00a0\u00a0if (sensorBlink == &quot;ON&quot;){\n \u00a0\u00a0\u00a0\u00a0\u00a0sensorBlink = &quot;OFF&quot;;\n \u00a0\u00a0\u00a0}else{\n \u00a0\u00a0\u00a0\u00a0\u00a0sensorBlink = &quot;ON&quot;;\n \u00a0\u00a0\u00a0}\n \u00a0\u00a0return;\n}\n<\/pre><\/div>\n\n\n<p><em><strong>Referencias<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/girni\/lora-multipunto-esquema\/\" data-type=\"post\" data-id=\"2147\">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: El esquema se muestra simplificado para un solo punto, se plantea usar el dispositivo 'C1' como punto de captura de [&hellip;]<\/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-lorawan-localizacion-rssi","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":19,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2746\/revisions"}],"predecessor-version":[{"id":4805,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/2746\/revisions\/4805"}],"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}]}}