{"id":3750,"date":"2021-09-05T23:30:16","date_gmt":"2021-09-06T04:30:16","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=3750"},"modified":"2025-04-07T11:40:46","modified_gmt":"2025-04-07T16:40:46","slug":"lorawan-enlaces-up-down-archivo-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/lorawan-enlaces-up-down-archivo-ino\/","title":{"rendered":"LoRaWan - Enlaces Up\/Down Archivo.ino"},"content":{"rendered":"<h2>Preparaci\u00f3n de trama<\/h2>\n<p>La trama se configura usando los parametros obtenidos en el dispositivo con una trama de confirmaci\u00f3n de subida (Ack). El primer valor enviado ser\u00e1 cero, puesto que no se dispone de par\u00e1metros iniciales.<\/p>\n<ul>\n<li>Rssi Downlink (1 byte)<\/li>\n<li>Snr Downlink (1 byte)<\/li>\n<li>Datarate Downlink (1 byte)<\/li>\n<li>Voltaje de bateria (2 bytes)<\/li>\n<\/ul>\n<pre><span style=\"color: #434f54\">\/\/ Ack parametros de recepci\u00f3n<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaRssi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaSnr<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaDatarate<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<\/pre>\n<p>A Septiembre del 2021, se usan las librer\u00edas publicadas para el m\u00f3dulo HELTEC Cubecell Board-Plus HTCC-AB02. Para obtener los par\u00e1metros de la trama de confirmaci\u00f3n de recibido (Ack) el gateway para una trama de subida de datos (Uplink) se sustituye el procedimiento:<\/p>\n<pre>downLinkAckHandle(McpsIndication_t *mcpsIndication)<\/pre>\n<p>Las instrucciones para el manejo de LoraWan se pueden revisar en:<\/p>\n<p><a href=\"https:\/\/github.com\/HelTecAutomation\/CubeCell-Arduino\/blob\/master\/libraries\/LoRa\/src\/LoRaWan_APP.cpp\">https:\/\/github.com\/HelTecAutomation\/CubeCell-Arduino\/blob\/master\/libraries\/LoRa\/src\/LoRaWan_APP.cpp<\/a><\/p>\n<p>El archivo<em><strong> LoRaWan_APP.cpp<\/strong><\/em> se encuentra instalado en el directorio de windows:<\/p>\n<pre>C:\\Users\\MiUsuario\\AppData\\Local\\Arduino15\\packages\r\n  \\CubeCell\\hardware\\CubeCell\\1.3.0\\libraries\\LoRa\\src<\/pre>\n<p>desde donde es posible complementar las instrucciones usando un editor de texto en las l\u00edneas corespondientes:<\/p>\n<pre>void __attribute__((weak)) downLinkAckHandle()\r\n{\r\n\t\/\/printf(\"ack received\\r\\n\");\r\n}\r\n<\/pre>\n<p>para indicar los par\u00e1metros a usar al recibir la trama Ack:<\/p>\n<pre>void __attribute__((weak)) downLinkAckHandle(McpsIndication_t *mcpsIndication)\r\n{\r\n\t\/\/printf(\"ack received\\r\\n\");\r\n}\r\n<\/pre>\n<p>adicionalmente, en el mismo archivo, m\u00e1s adelante:<\/p>\n<pre>static void McpsIndication( McpsIndication_t *mcpsIndication )\r\n....\r\n\tif(mcpsIndication-&gt;AckReceived)\r\n\t{\r\n\t\tdownLinkAckHandle(mcpsIndication);\r\n\t}<\/pre>\n<p>con lo que es posible usar las instrucciones del dispositivo para obtener los par\u00e1metros indicados para la trama de confirmaci\u00f3n de recibo (Ack)<\/p>\n<h2>Par\u00e1metros de trama de confirmaci\u00f3n de recibido - Ack<\/h2>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownParametrosAck.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3751 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownParametrosAck.png\" alt=\"LoRaWan Enlace UpDown Parametros Ack\" width=\"808\" height=\"124\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownParametrosAck.png 808w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownParametrosAck-300x46.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownParametrosAck-768x118.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\">downLinkAckHandle<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">McpsIndication_t<\/span> <span style=\"color: #434f54\">*<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #000000\">confirmaRssi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">uint8_t<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #d35400\">abs<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Rssi<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">confirmaSnr<\/span> \u00a0<span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">uint8_t<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Snr<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">confirmaDatarate<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">uint8_t<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">RxDoneDatarate<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \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\">\" ack received(rssi,snd,datarate): -\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \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\">confirmaRssi<\/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<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\">confirmaSnr<\/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<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\">confirmaDatarate<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<p>con los par\u00e1metros obtenidos y a\u00f1adiendo el voltaje de la bater\u00eda, se conforma la trama a enviar.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownEnviar.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3752 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownEnviar.png\" alt=\"LoRaWan Enlace UpDown Enviar\" width=\"808\" height=\"126\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownEnviar.png 808w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownEnviar-300x47.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownEnviar-768x120.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\">\/* Prepares the payload of the frame *\/<\/span>\r\n<span style=\"color: #00979c\">static<\/span> <span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">prepareTxFrame<\/span><span style=\"color: #000000\">(<\/span> <span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">port<\/span> <span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ enciende sensor<\/span>\r\n \u00a0<span style=\"color: #d35400\">pinMode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">Vext<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">OUTPUT<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">Vext<\/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\r\n \u00a0<span style=\"color: #434f54\">\/\/Lectura de Sensor<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ apaga sensor<\/span>\r\n \u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">Vext<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ lectura de bateria \u00a0<\/span>\r\n \u00a0<span style=\"color: #00979c\">uint16_t<\/span> <span style=\"color: #000000\">batteryVoltage<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">getBatteryVoltage<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #00979c\">unsigned<\/span> <span style=\"color: #00979c\">char<\/span> <span style=\"color: #434f54\">*<\/span><span style=\"color: #000000\">puc<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ trama<\/span>\r\n \u00a0<span style=\"color: #000000\">appDataSize<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">5<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">appData<\/span><span style=\"color: #000000\">[0<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">confirmaRssi<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/Ack leido en dispositivo<\/span>\r\n \u00a0<span style=\"color: #000000\">appData<\/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\">confirmaSnr<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">appData<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">confirmaDatarate<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">appData<\/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: #000000\">(<\/span><span style=\"color: #00979c\">uint8_t<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">batteryVoltage<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">appData<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">4<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">uint8_t<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">batteryVoltage<\/span><span style=\"color: #434f54\">&gt;&gt;<\/span><span style=\"color: #000000\">8<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \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\">\"%, Bateria = \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">batteryVoltage<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h2>Instrucciones Principales<\/h2>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownPrincipal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3753 size-full\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownPrincipal.png\" alt=\"LoRaWan Enlace UpDown Principal\" width=\"809\" height=\"127\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownPrincipal.png 809w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownPrincipal-300x47.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/10\/LoRaWanEnlaceUpDownPrincipal-768x121.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<pre><span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #005c5f\">\"LoRaWan_APP.h\"<\/span>\r\n<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #005c5f\">\"Arduino.h\"<\/span>\r\n\r\n<span style=\"color: #95a5a6\">\/* set LoraWan_RGB to Active,the RGB active in loraWan<\/span>\r\n<span style=\"color: #95a5a6\"> * red \u00a0\u00a0|sending; \u00a0\u00a0purple | joined done;<\/span>\r\n<span style=\"color: #95a5a6\"> * blue \u00a0|RxWindow1; yellow | means RxWindow2;<\/span>\r\n<span style=\"color: #95a5a6\"> * green | received done;<\/span>\r\n<span style=\"color: #95a5a6\"> *\/<\/span>\r\n<span style=\"color: #95a5a6\">\/* Conexi\u00f3n LoRa: OTAA parametros*\/<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">devEui<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0xa6<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x17<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x74<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xe9<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x5c<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x1c<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x98<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xbd<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">appEui<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x00<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">appKey<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0x76<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x9d<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x1b<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xc3<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xf9<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xe6<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x7b<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xbd<\/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<span style=\"color: #000000\">0xa3<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x4d<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xe3<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xcf<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xbc<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x8e<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x35<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x8f<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #95a5a6\">\/* ABP parametros*\/<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">nwkSKey<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0x15<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xb1<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xd0<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xef<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xa4<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x63<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xdf<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xbe<\/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<span style=\"color: #000000\">0x3d<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x11<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x18<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x1e<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x1e<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xc7<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xda<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x85<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">appSKey<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">]<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0x47<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xdc<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xac<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x5f<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xc2<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x32<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x24<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x31<\/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<span style=\"color: #000000\">0xdf<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xf1<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xff<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xf9<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x46<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0xe5<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x2e<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">0x17<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint32_t<\/span> <span style=\"color: #000000\">devAddr<\/span> <span style=\"color: #434f54\">=<\/span> \u00a0<span style=\"color: #000000\">(<\/span> <span style=\"color: #00979c\">uint32_t<\/span> <span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">0x007bc4af<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #95a5a6\">\/*LoraWan channelsmask, default channels 0-7*\/<\/span> \r\n<span style=\"color: #00979c\">uint16_t<\/span> <span style=\"color: #000000\">userChannelsMask<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">6<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #434f54\">=<\/span><span style=\"color: #000000\">{<\/span> <span style=\"color: #000000\">0x00FF<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x0000<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x0000<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x0000<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x0000<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">0x0000<\/span> <span style=\"color: #000000\">}<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #95a5a6\">\/*Select in arduino IDE tools*\/<\/span>\r\n<span style=\"color: #000000\">LoRaMacRegion_t<\/span> <span style=\"color: #000000\">loraWanRegion<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">ACTIVE_REGION<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">DeviceClass_t<\/span> \u00a0<span style=\"color: #000000\">loraWanClass<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LORAWAN_CLASS<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">bool<\/span> <span style=\"color: #000000\">overTheAirActivation<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LORAWAN_NETMODE<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">bool<\/span> <span style=\"color: #000000\">loraWanAdr<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LORAWAN_ADR<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">bool<\/span> <span style=\"color: #000000\">keepNet<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LORAWAN_NET_RESERVE<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">bool<\/span> <span style=\"color: #000000\">isTxConfirmed<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">LORAWAN_UPLINKMODE<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #00979c\">uint32_t<\/span> <span style=\"color: #000000\">appTxDutyCycle<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #434f54\">*<\/span><span style=\"color: #000000\">15<\/span><span style=\"color: #434f54\">*<\/span><span style=\"color: #000000\">1000<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">appPort<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #95a5a6\">\/* Application port *\/<\/span>\r\n<span style=\"color: #95a5a6\">\/* trials to transmit frame, if didn't receive ack.<\/span>\r\n<span style=\"color: #95a5a6\"> * The MAC performs a datarate adaptation,<\/span>\r\n<span style=\"color: #95a5a6\"> * Tx nb|Data Rate<\/span>\r\n<span style=\"color: #95a5a6\"> * -----|----------<\/span>\r\n<span style=\"color: #95a5a6\"> * 1 \u00a0\u00a0\u00a0|DR \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* 5 \u00a0\u00a0\u00a0| max(DR-2,0)<\/span>\r\n<span style=\"color: #95a5a6\"> * 2 \u00a0\u00a0\u00a0|DR \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0* 6 \u00a0\u00a0\u00a0| max(DR-2,0)<\/span>\r\n<span style=\"color: #95a5a6\"> * 3 \u00a0\u00a0\u00a0|max(DR-1,0) \u00a0* 7 \u00a0\u00a0\u00a0| max(DR-3,0)<\/span>\r\n<span style=\"color: #95a5a6\"> * 4 \u00a0\u00a0\u00a0|max(DR-1,0) \u00a0* 8 \u00a0\u00a0\u00a0| max(DR-3,0)<\/span>\r\n<span style=\"color: #95a5a6\">*\/<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmedNbTrials<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">4<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Ack parametros de recepci\u00f3n<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaRssi<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaSnr<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">confirmaDatarate<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #00979c\">uint8_t<\/span> <span style=\"color: #000000\">itera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/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\t<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">115200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#if<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">AT_SUPPORT<\/span><span style=\"color: #000000\">)<\/span>\r\n\t<span style=\"color: #000000\">enableAt<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#endif<\/span>\r\n \u00a0<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">displayMcuInit<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t<span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">DEVICE_STATE_INIT<\/span><span style=\"color: #000000\">;<\/span>\r\n\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">ifskipjoin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/if joinned,skip<\/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 \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<span style=\"color: #000000\">itera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">itera<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">itera<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">6<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">itera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/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\">\" \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n\t<span style=\"color: #5e6d03\">switch<\/span><span style=\"color: #000000\">(<\/span> <span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\n\t\t<span style=\"color: #5e6d03\">case<\/span> <span style=\"color: #000000\">DEVICE_STATE_INIT<\/span><span style=\"color: #434f54\">:<\/span> <span style=\"color: #000000\">{<\/span>\r\n<span style=\"color: #5e6d03\">#if<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LORAWAN_DEVEUI_AUTO<\/span><span style=\"color: #000000\">)<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">generateDeveuiByChipID<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#endif<\/span>\r\n<span style=\"color: #5e6d03\">#if<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">AT_SUPPORT<\/span><span style=\"color: #000000\">)<\/span>\r\n\t\t\t<span style=\"color: #000000\">getDevParam<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#endif<\/span>\r\n\t\t\t<span style=\"color: #000000\">printDevParam<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">init<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">loraWanClass<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">loraWanRegion<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">DEVICE_STATE_JOIN<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t\t<span style=\"color: #5e6d03\">case<\/span> <span style=\"color: #000000\">DEVICE_STATE_JOIN<\/span><span style=\"color: #434f54\">:<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">displayJoining<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">join<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t\t<span style=\"color: #5e6d03\">case<\/span> <span style=\"color: #000000\">DEVICE_STATE_SEND<\/span><span style=\"color: #434f54\">:<\/span>\t<span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">displaySending<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">prepareTxFrame<\/span><span style=\"color: #000000\">(<\/span> <span style=\"color: #000000\">appPort<\/span> <span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">send<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">DEVICE_STATE_CYCLE<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t\t<span style=\"color: #5e6d03\">case<\/span> <span style=\"color: #000000\">DEVICE_STATE_CYCLE<\/span><span style=\"color: #434f54\">:<\/span> <span style=\"color: #000000\">{<\/span>\r\n\t\t\t<span style=\"color: #434f54\">\/\/ Schedule next packet transmission<\/span>\r\n\t\t\t<span style=\"color: #000000\">txDutyCycleTime<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">appTxDutyCycle<\/span> <span style=\"color: #434f54\">+<\/span> <span style=\"color: #000000\">randr<\/span><span style=\"color: #000000\">(<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">APP_TX_DUTYCYCLE_RND<\/span> <span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">cycle<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">txDutyCycleTime<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">DEVICE_STATE_SLEEP<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t\t<span style=\"color: #5e6d03\">case<\/span> <span style=\"color: #000000\">DEVICE_STATE_SLEEP<\/span><span style=\"color: #434f54\">:<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">displayAck<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #000000\">LoRaWAN<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">sleep<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t\t<span style=\"color: #5e6d03\">default<\/span><span style=\"color: #434f54\">:<\/span> <span style=\"color: #000000\">{<\/span>\r\n\t\t\t<span style=\"color: #000000\">deviceState<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">DEVICE_STATE_INIT<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t\t<span style=\"color: #5e6d03\">break<\/span><span style=\"color: #000000\">;<\/span>\r\n\t\t<span style=\"color: #000000\">}<\/span>\r\n\t<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<p>y en el caso de recibir instrucciones para el dispositivo, se dispone de un ejemplo:<\/p>\n<pre><span style=\"color: #434f54\">\/\/downlink data handle function example<\/span>\r\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">downLinkDataHandle<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">McpsIndication_t<\/span> <span style=\"color: #434f54\">*<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #434f54\">\/\/ revisa parametros<\/span>\r\n \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\">\"\\nLLEGo un mensaje para dispositivo...\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \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<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\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Rssi<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\r\n \u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">printf<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"+REV DATA:%s,RXSIZE %d,PORT %d\\r\\n\"<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0<span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">RxSlot<\/span><span style=\"color: #434f54\">?<\/span><span style=\"color: #005c5f\">\"RXWIN2\"<\/span><span style=\"color: #434f54\">:<\/span><span style=\"color: #005c5f\">\"RXWIN1\"<\/span><span style=\"color: #434f54\">,<\/span>\r\n \u00a0<span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">BufferSize<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Port<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \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\">\"+REV DATA:\"<\/span><span style=\"color: #000000\">)<\/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\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">BufferSize<\/span><span style=\"color: #000000\">;<\/span><span style=\"color: #000000\">i<\/span><span style=\"color: #434f54\">++<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<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\">printf<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\"%02X\"<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Buffer<\/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<span style=\"color: #000000\">}<\/span>\r\n \u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #00979c\">uint32_t<\/span> <span style=\"color: #000000\">color<\/span><span style=\"color: #434f54\">=<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Buffer<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #434f54\">&lt;&lt;<\/span><span style=\"color: #000000\">16<\/span><span style=\"color: #434f54\">|<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Buffer<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #434f54\">&lt;&lt;<\/span><span style=\"color: #000000\">8<\/span><span style=\"color: #434f54\">|<\/span><span style=\"color: #000000\">mcpsIndication<\/span><span style=\"color: #434f54\">-<\/span><span style=\"color: #434f54\">&gt;<\/span><span style=\"color: #000000\">Buffer<\/span><span style=\"color: #000000\">[<\/span><span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">]<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#if<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LoraWan_RGB<\/span><span style=\"color: #434f54\">==<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<span style=\"color: #000000\">turnOnRGB<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">color<\/span><span style=\"color: #434f54\">,<\/span><span style=\"color: #000000\">5000<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">turnOffRGB<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #5e6d03\">#endif<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Preparaci\u00f3n de trama La trama se configura usando los parametros obtenidos en el dispositivo con una trama de confirmaci\u00f3n de subida (Ack). El primer valor enviado ser\u00e1 cero, puesto que no se dispone de par\u00e1metros iniciales. Rssi Downlink (1 byte) Snr Downlink (1 byte) Datarate Downlink (1 byte) Voltaje de bateria (2 bytes) \/\/ Ack &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/lorawan-enlaces-up-down-archivo-ino\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"LoRaWan - Enlaces Up\/Down Archivo.ino\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1466680],"tags":[],"class_list":["post-3750","post","type-post","status-publish","format-standard","hentry","category-lorawan-enlaces-up-down-parametros"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3750","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=3750"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3750\/revisions"}],"predecessor-version":[{"id":4154,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3750\/revisions\/4154"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=3750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=3750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=3750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}