Full text
Diseño e implemen ación de ac ualizaciones O e The Ai
(OTA) pa a edes de senso es inalámb icas
Da id Ga cía Fe nández
GRADO EN INGENIERÍA INFORMÁTICA
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
T abajo Fin de G ado en Ingenie ía In o má ica
Cu so 2018-2019
Di ec o :
Joaquín Recas
Resumen en cas ellano
El obje o de es e abajo es el es udio de la iabilidad de las ac ualizaciones de i mwa e
O e The Ai (OTA) u ilizando una ed LPWAN, en conc e o LoRaWAN. Da sopo e pa a
ac ualizaciones de i mwa e OTA a día de hoy esul a undamen al y más oda ía cuando
es os nodos se encuen an en luga es emo os o si ios donde el acceso es muy limi ado
o pelig oso. Tene implemen ada la uncionalidad pa a ac ualizaciones ía OTA pe mi e
co egi e o es o añadi nue as uncionalidades a dis ancia. Uno de los obje i os p io i a ios
consis e en que la misma ac ualización pueda llega a un conjun o de nodos a la ez e i ando
ene que ac ualiza los nodos uno po uno, ya que es o supond ía el en ío de g an can idad
de in o mación duplicada. Pa a lle a a cabo es a a ea, se ha ealizado un es udio en
p o undidad sob e las ca ac e ís icas y el uncionamien o de la ed LoRaWAN eniendo en
cuen a que las edes LPWAN en gene al di icul an lle a a cabo es e ipo de ac ualizaciones
debido a sus conocidas limi aciones en cuan o a amaño de payload y ele ada la encia.
Finalmen e, es e abajo demues a la iabilidad de las OTA median e la aplicación de
pa ches de ac ualización de i mwa e a conjun os de nodos.
Palab as cla e
OTA
O e The Ai
Pycom Lopy
STM32L475
LoRa
LoRaWAN
Bajo consumo
Fi mwa e OTA
LoRa Se e
Red de senso es
Abs ac
The aim o his wo k is he s udy o he easibili y o i mwa e upda es O e The Ai
(OTA) using an LPWAN ne wo k, speci ically LoRaWAN. Suppo ing OTA i mwa e upda-
es oday is essen ial and especially when hese nodes a e loca ed in emo e places o places
whe e access is e y limi ed o dange ous. Ha ing he unc ionali y implemen ed o upda es
ia OTA allows co ec ing e o s o adding new unc ionali ies emo ely. One o he p io i y
objec i es is ha he same upda e can each a se o nodes a he same ime, a oiding
ha ing o upda e he nodes one by one, since his would mean sending a la ge amoun o
duplica e in o ma ion. To ca y ou his ask, an in-dep h s udy has been ca ied ou on he
cha ac e is ics and ope a ion o he LoRaWAN ne wo k, conside ing ha LPWAN ne wo ks
in gene al a e no he mos sui able ne wo ks o ca y ou his kind o upda es due o hei
known limi a ions in e ms o payload size and high la ency. Finally, his wo k demons a es
he iabili y o he OTA by applying i mwa e upda e pa ches o node se s.
Keywo ds
OTA
O e The Ai
Pycom Lopy
STM32L475
LoRa
LoRaWAN
Low Powe
Fi mwa e OTA
LoRa Se e
Senso Ne wo k
Índice gene al
Índice i
Ag adecimien os iii
1. In oducción 1
2. In oduc ion 3
3. Es ado del a e 5
4. LoRa y LoRaWAN 10
4.1. LoRa........................................ 10
4.2. LoRaWAN..................................... 11
4.2.1. Au en icación con LoRaWAN . . . . . . . . . . . . . . . . . . . . . . 12
4.2.2. Clases y en anas de ecepción . . . . . . . . . . . . . . . . . . . . . . 16
4.2.3. Fo ma o amas de da os LoRaWAN . . . . . . . . . . . . . . . . . . 18
4.2.4. Limi aciones Du y-cycle LoRaWAN . . . . . . . . . . . . . . . . . . . 20
4.3. Recapi ulación .................................. 22
5. Ga eway 23
5.1. Modosde uncionamien o ............................ 23
5.2. P uebas ealizadas ................................ 24
6. LoRa Se e 33
6.1. Dependencias ................................... 35
7. Ac ualización de nodos ía OTA con LoRaWAN 37
7.1. Mul icas conLoRaWAN............................. 38
7.2. Ac ualizando un nodo ía OTA . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.2.1. Sinc onización del eloj . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.2.2. Con igu ación del g upo mul icas . . . . . . . . . . . . . . . . . . . . 45
7.2.3. F agmen ación de paque es . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2.4. Ven anade ecepción........................... 46
7.2.5. Recepción del nue o i mwa e . . . . . . . . . . . . . . . . . . . . . . 47
7.3. Redundancia ................................... 51
7.4. Segu idad en las ac ualizaciones . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.5. Consumo...................................... 54
7.6. Ac ualizando múl iples nodos . . . . . . . . . . . . . . . . . . . . . . . . . . 55
i
7.7. Ac ualizacionesdel a............................... 56
7.8. Almacenamien o ................................. 61
7.9. P uebas ue a del labo a o io . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8. Conclusiones 65
9. Conclusions 67
Bibliog a ía 70
A. Mensajes pa a la c eación de un g upo Mul icas 71
A.1. Sinc onización del eloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.2. Con igu ación del g upo mul icas . . . . . . . . . . . . . . . . . . . . . . . . 72
A.3. F agmen ación de paque es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.4.Ven anade ecepción............................... 75
ii
Ag adecimien os
Al Depa amen o de A qui ec u a de Compu ado es y Au omá ica y en especial a mi
u o , Joaquín Recas, po o ece me la posibilidad de in es iga en un campo an in e esan e
como son las edes LPWAN.
iii
Capí ulo 1
In oducción
En los úl imos años hemos is o un c ecimien o muy impo an e en cuan o al núme o de
disposi i os IOT, la g an mayo ía de las es adís icas1coinciden en que en un u u o no muy
lejano llega emos has a los 75 mil millones de disposi i os conec ados. Con es e i mo de
c ecimien o las edes adicionales se han quedado obsole as, po lo que es os disposi i os
es án demandando edes de bajo consumo y la go alcance. Es e ipo de ecnologías se deno-
minan LPWAN o Low Powe Wide A ea Ne wo k. Las edes LPWAN son edes u ilizadas
pa a cub i un á ea muy ex ensa con un bajo consumo de ene gía; es o pe mi e que los no-
dos puedan es a si uados en luga es emo os alimen ándose con una ba e ía du an e la gos
pe iodos de iempo. A di e encia de las edes adicionales que cuen an con un g an ancho
de banda y bajas la encias, las edes LPWAN ienen un ancho de banda muy limi ado y
una al a la encia, es po es o que es as ecnologías no es án o ien adas a la ansmisión de
da os en iempo eal.
Las ecnologías LPWAN u ilizan una banda denominada ISM (Indus ial, Scien i ic and
Medical); es a banda puede u iliza se de o ma lib e siemp e y cuando se cumplan unos
equisi os mínimos, es os equisi os consis en en espe a la po encia máxima de ansmisión
y el iempo máximo que se puede ocupa el medio. En Eu opa es a banda co esponde con los
angos de ecuencia 861-870 MHz y los iempos máximos que se puede ocupa el medio que
an desde el 0,1 %, 1 % y el 10% en unción de la ecuencia conc e a que se es é u ilizando.
1h ps://www.s a is a.com/s a is ics/471264/io -numbe -o -connec ed-de ices-wo ldwide/
1
Con es e p oyec o se p e ende es udia las dis in as opciones y su iabilidad pa a que una
ed de senso es inalámb icos pueda ecibi ac ualizaciones de i mwa e u ilizando una ed
LoRaWAN. Una ed de senso es inalámb icos es un conjun o de nodos que ienen ins alados
una se ie de senso es pa a medi di e en es a iables. También cuen an con al menos un
módulo de adio que puede encon a se ya ins alado en la placa o acopla se ex e namen e;
es e módulo es el esponsable de la comunicación po adio con un se ido de aplicación.
Habi ualmen e en los nodos IOT se pueden con igu a pa áme os que a ec an al uncio-
namien o (pe iodos de mues eo, ipo de il ado, e c.). Es e ipo de nodos IOT además de
sopo a odo lo an e io pueden u iliza la adio pa a ecibi ac ualizaciones de so wa e.
Es o nos o ece la posibilidad de ac ualiza el i mwa e de uno o más nodos que pod ían
es a ácilmen e a más de 20 kilóme os de dis ancia de la an ena ecep o a más ce cana.
Es os disposi i os IOT lle an den o de su mic ocon olado un p og ama in o má ico
llamado i mwa e, es e p og ama, que es el enca gado de la ges ión comple a del nodo, es
el que p e endemos ac ualiza ; habi ualmen e es os p og amas no ienen un g an amaño y
se p og aman en lenguajes como C y C++. El i mwa e habi ualmen e se encuen a en la
memo ia lash del p opio mic ocon olado y pe manece en ejecución mien as el nodo se
encuen a alimen ado lo que di icul a eno memen e su ac ualización.
2
Capí ulo 2
In oduc ion
In ecen yea s we ha e seen a e y impo an g ow h in he numbe o IOT de ices,
he as majo i y o s a is ics ag ee ha in he no oo dis an u u e we will each up
o 75 billion connec ed de ices. Wi h his g ow h a e, adi ional ne wo ks ha e become
obsole e, so hese de ices a e demanding ne wo ks wi h low powe consump ion and long
ange. These ypes o echnologies a e called LPWAN o Low Powe Wide A ea Ne wo k.
LPWAN ne wo ks a e used o co e a e y la ge a ea wi h low ene gy consump ion, allowing
he nodes o be loca ed in emo e places eeding on a ba e y o long pe iods o ime. Unlike
adi ional ne wo ks, ha ha e high bandwid h and low la encies, LPWAN ne wo ks ha e
a e y limi ed bandwid h and high la ency, which is why hese echnologies a e no ideal
o eal- ime da a ansmission.
LPWAN echnologies use a band called ISM (Indus ial, Scien i ic and Medical).This
band can be used eely as long as minimum equi emen s a e me . These equi emen s
consis o espec ing he maximum ansmission powe and he maximum ime ha he
medium can be occupied. In Eu ope, his band co esponds o he equency anges 861-870
MHz and he maximum imes ha can be occupied by he medium, ange om 0.1 %, 1%
and 10 % depending on he speci ic equency ha is being used.
This p ojec aims o s udy he di e en op ions and hei easibili y so ha a wi eless
senso ne wo k can ecei e i mwa e upda es using a LoRaWAN ne wo k. A ne wo k o
wi eless senso s is a se o nodes ha ha e ins alled a se ies o senso s o measu e di e en
3
Capí ulo 4
LoRa y LoRaWAN
Es impo an e ene cla as las di e encias exis en es en e LoRa y LoRaWAN, a con i-
nuación se explica de o ma de allada que es cada una.
4.1. LoRa
LoRa es el nomb e de la modulación u ilizada pa a ansmi i da os a bajo ni el y que
pe mi e alcanza g andes dis ancias con un bajo consumo de ene gía, su equi alen e en el
modelo OSI se ía el modelo ísico, o dicho de o a o ma, es la o ma en la que se codi ica
la in o mación que se ansmi e de o ma inalámb ica. Algunas de las ca ac e ís icas más
impo an es que nos o ece LoRa son las siguien es:
Muy bajo consumo, ideal pa a disposi i os con ba e ías.
La go alcance.
Tamaño de payload limi ado (has a 255 By es).
No se equie e licencia pa a u iliza lo en las bandas asignadas.
Sopo e pa a comunicación bidi eccional.
Las ecuencias sob e las que abaja LoRa a ían en unción de la zona del mundo en la
que nos encon emos, a con inuación una b e e abla que mues a las p incipales ecuencias
LoRa1y la zona en la que se u ilizan:
10
Zona F ecuencia
Eu opa 863-870 MHz
Es ados Unidos 902-928 MHz
Aus alia 915-928 MHz
China 470-510 & 779-787 MHZ
Cuad o 4.1:Tabla de ecuencias LoRa1
4.2. LoRaWAN
LoRaWAN5es una capa que abaja sob e LoRa y que añade nue as uncionalidades
muy in e esan es, algunas ca ac e ís icas son:
Comunicaciones ci adas con AES-128.
Di e en es clases pa a los nodos.
El amaño del payload se educe debido a la in o mación ex a que añade LoRaWAN
a la ama como po cen aje de ba e ía, MIC (Message In eg i y Code), e c...
Posibilidad de ene edes públicas y p i adas.
Topología en es ella.
11
Figu a 4.1:Esquema LoRaWAN
Fuen e: h ps://lo a-alliance.o g
En la igu a [4.1] podemos e la es uc u a que sigue LoRaWAN, en la pa e izquie -
da se encuen an los nodos o disposi i os inales, a con inuación los ga eways que son los
esponsables de ecibi y ansmi i mensajes desde/hacia los nodos, a su ez los ga eways
se comunican con el se ido esponsable de la aplicación median e un p o ocolo conocido
po ambos, habi ualmen e MQTT [6.1] o UDP en ambos casos usando JSON pe o con una
es uc u a de mensaje di e en e.
UDP es un p o ocolo de la capa de anspo e muy ápido, no o ien ado a conexión y
u ilizado en aplicaciones donde la la encia es muy impo an e. En UDP no hay e ansmisión
de amas pe didas.
JSON o Ja aSc ip Objec No a ion, es un o ma o de ex o u ilizado pa a el in e cambio
de in o mación en e p ocesos. JSON es ampliamen e u ilizado po lo que encon amos
lib e ías pa a ex ae la in o mación en la mayo ía de lenguajes de p og amación.
4.2.1. Au en icación con LoRaWAN
Con LoRaWAN es imp escindible que cada disposi i o es é dado de al a en una base de
da os an es de comenza a ansmi i , si el disposi i o ansmi ie a an es de se dado de al a
12
la aplicación au omá icamen e desca a ía es os paque es. Exis en dos o mas de ealiza
es e p oceso, a con inuación se de allan las en ajas e incon enien es de cada una de ellas.
Ac i a ion by Pe sonaliza ion (ABP)
La pod íamos de ini como una ac i ación es á ica, cada nodo ya lle a con igu adas las
cla es ’Ne wo k session key’ y ’Applica ion session key’ de o ma es á ica, po ejemplo,
como cons an es en el código uen e. Es as cla es an a se siemp e las mismas y en caso de
que o a pe sona se hicie a con ellas pod ía accede a oda la in o mación ansmi ida con
des ino/o igen el nodo a ec ado.
Algunas de sus ca ac e ís icas son:
Meno uso de la ed, no se ansmi e el paque e JOIN REQUEST hacia el ga eway ni
la posible espues a desde el ga eway JOIN ACCEPT.
Meno segu idad po usa cla es es á icas.
Pa áme os de ed que se pueden es ablece de o ma dinámica median e el paque e
de espues a a un JOIN REQUEST quedan es ablecidos de o ma es á ica.
Pa a que el nodo pueda unciona en modo ABP debe dispone de al menos las cla es
’Ne wo k session key’, ’Applica ion session key’ y un ’De EUI’[4.2.1]. Además es necesa io
que el nodo es é dado de al a en la aplicación con las mismas cla es.
13
Figu a 4.2:Con igu ación de las cla es de sesión de o ma manual pa a el mé odo de
au en icación ABP.
La igu a [4.2] es una cap u a de pan alla de la aplicación Lo a-App-Se e ins alada en
nues o se ido donde podemos e los da os necesa ios pa a da de al a un nue o nodo
con au en icación ABP.
O e - he-Ai Ac i a ion (OTAA)
Con es e mé odo de ac i ación los nodos gene an las cla es de sesión ’Ne wo k session key’
y ’Applica ion session key’ en el momen o en el que quie en uni se a la ed, en p ime luga
en ían un paque e JOIN_REQUEST el cual es e i icado po la aplicación donde dichos
nodos es án egis ados, si odos los da os son co ec os la aplicación au o iza el acceso
median e el en ío de un paque e JOIN_ACCEPT; el nodo u iliza á los da os con enidos en
es e paque e pa a gene a las cla es de sesión. Algunas de sus ca ac e ís icas son:
Con igu ación de pa áme os de ed como ’RxDelay’ de o ma dinámica median e la
espues a JOIN_ ACCEPT.
Mayo segu idad po usa cla es dinámicas, las cla es se gene an de o ma dinámica
median e los da os con enidos en el paque e JOIN_ACCEPT.
14
Hay que ene en cuen a que no odos los disposi i os sopo an la ac i ación OTAA.
Pa a u iliza es e mé odo de au en icación es necesa io con igu a ’App EUI’, ’App Key’,
’De EUI’:
App EUI: Iden i ica la aplicación a la que an di igidos los da os, es deci , que aplica-
ción debe a a los mensajes de los nodos.
App Key: Es una cla e ’maes a’, se u iliza pa a es ablece la conexión con la aplicación
y gene a las cla es de sesión (NwkSKey y AppSKey).
De EUI: Es un iden i icado único habi ualmen e es ablecido po el ab ican e, es
equi alen e a po ejemplo una di ección MAC y si e pa a iden i ica a un disposi i o
de o ma única.
Figu a 4.3:Paque es ’JOIN REQUEST’ Y ’JOIN ACCEPT’ en LoRa App Se e (au en-
icación OTAA).
En la siguien e igu a [4.4] podemos obse a como las cla es han sido gene adas de o ma
dinámica y po an o no se nos pe mi e modi ica las.
15
Figu a 4.4:Cla es gene adas de o ma dinámica al uni se el nodo a la ed u ilizando OTAA
como mé odo pa a la au en icación.
Es impo an e añadi que no debemos en ia el mensaje JOIN REQUEST po cualquie
ecuencia, la documen ación de LoRaWAN nos indica que es canales podemos u iliza
pa a en ia nues o mensaje JOIN REQUEST. Ve igu a [4.5]. Es obliga o io que es os es
canales es én sopo ados po odos los nodos, el es o de canales son de lib e elección den o
de la banda asignada.
Figu a 4.5:F ecuencias en las que podemos en ia un mensaje JOIN REQUEST.
Fuen e: h ps://lo a-alliance.o g LoRaWAN Regional Pa ame e s
4.2.2. Clases y en anas de ecepción
En LoRaWAN exis en es modos de uncionamien o di e en es denominados clases, en
unción de cuál de ellas es emos u ilizando pod emos ecibi da os desde un ga eway en cual-
quie momen o, en momen os p og amados o únicamen e después de que el nodo ansmi a.
Clase A: po lo gene al la más u ilizada debido a su bajo consumo, el nodo únicamen e
16
puede ecibi da os du an e un b e e pe iodo de iempo después de una ansmisión.
Después de ealiza una ansmisión el nodo ab e la en ana de ecepción RX1 en la
misma ecuencia sob e la que ha ealizado la ansmisión. La en ana de ecepción
RX2 se ab e en unción de la con igu ación p e ia es ablecida median e el comando
RXPa amSe upReq.
Figu a 4.6:Ven anas de ecepción LoRaWAN pa a disposi i os de la clase A.
Fuen e: h ps://lo a-alliance.o g
Clase B: el nodo puede ecibi da os sin necesidad de ene que ansmi i an es, el
ga eway es á p og amado pa a emi i balizas de sinc onización de o ma pe iódica1
y los nodos eciben es as balizas. G acias a es o el ga eway puede calcula en que
momen o el nodo es a á a la escucha y ealiza la ansmisión en dicho momen o.
Clase C: el nodo es á siemp e a la escucha, mayo consumo y no ecomendable pa a dis-
posi i os que uncionen con ba e ías, puede ecibi da os ansmi idos po el ga eway
en cualquie momen o excep o si en dicho momen o el nodo es u ie a ansmi iendo.
1Habi ualmen e 128 segundos.
17
Figu a 4.7:Ven anas de ecepción LoRaWAN pa a disposi i os de la clase C.
Fuen e: h ps://lo a-alliance.o g
4.2.3. Fo ma o amas de da os LoRaWAN
En la igu a [4.8] podemos obse a el o ma o que iene una ama downlink, es deci ,
da os en iados po el se ido hacia los nodos, los campos PHDR y PHDR_CRC son campos
que se ellenan po el ansmiso , PHYPayload co esponde con los da os que añade nues a
aplicación y P eamble que se u iliza pa a sinc oniza el ecep o .
Figu a 4.8:Fo ma o mensaje LoRaWAN en iado desde el se ido hacia los nodos.
Fuen e: h ps://lo a-alliance.o g
Po el con a io, la igu a [4.9] mues a el o ma o que iene una ama uplink, es deci ,
da os en iados po los nodos hacia el se ido , los campos PHDR, PHDR_CRC y CRC son
campos que se ellenan po el ansmiso , PHYPayload co esponde con los da os que añade
nues o nodo y P eamble al igual que en el caso an e io que se u iliza pa a sinc oniza el
ecep o .
Figu a 4.9:Fo ma o mensaje LoRaWAN en iado po los nodos hacia el se ido .
Fuen e: h ps://lo a-alliance.o g
18
Los ipos de mensajes que nos podemos encon a en LoRaWAN son los siguien es [4.10]
Figu a 4.10:Tipos de mensajes sopo ados po LoRaWAN.
Fuen e: h ps://lo a-alliance.o g
Los mensajes Join- eques y Join-accep co esponden a los mensajes in e cambiados
en e el nodo y la aplicación cuando un nodo solici a uni se median e OTAA. Ve más
en el apa ado [4.2.1].
Mensajes Uncon i med Da a Up y Uncon i med Da a Down co esponden a mensajes
de da os en iados po los nodos y la aplicación espec i amen e y que no ienen que
se con i mados, es deci , no hay que en ia un ACK como acuse de ecibo.
Mensajes Con i med Da a Up y Con i med Da a Down igual que los an e io es, co es-
ponden a mensajes de da os en iados po los nodos y la aplicación espec i amen e y
que ienen que se con i mados median e el en ío de un ACK. El mensaje de con i -
mación ACK se puede combina con o os da os en el mismo mensaje.
Rejoin- eques es e mensaje solo puede se en iado po los nodos que se han unido
u ilizando como mé odo de au en icación OTAA, si e pa a e-inicializa una sesión,
es o es ú il si que emos cambia algún pa áme o que ue es ablecido en la an igua
sesión o si po algún mo i o pe demos el con ex o de la sesión.
El mensaje P op ie a y nos pe mi e de ini den o del p o ocolo nues o p opio o ma o
de mensaje. Dado que es e o ma o lo desa olla íamos noso os, se ía esponsabilidad
19
po que es e so wa e ambién unciona sob e o as placas.
La p ueba ealizada ha consis ido en el en ío de paque es de 1 by e desde una placa
PyCom con au en icación ABP, ac o de p opagación 7 y un ancho de banda 125
KHz. Du an e la p ueba se ha podido comp oba que pese a las limi aciones que iene
la asa de paque es pe didos ha sido ealmen e baja. Es e ga eway se pod ía conside a
una buena al e na i a pa a los casos en los que no es necesa ia la comunicación con
los nodos. Pa a nues o p oyec o no es una opción a conside a po que la ac ualización
de nodos equie e del en ío de da os hacia los nodos. O o incon enien e que su ge es
que al no con a con ansmisión de paque es no se puede u iliza el mecanismo de
au en icación OTAA, es ando limi ado únicamen e a ABP. Es e ga eway no sopo a
el p o ocolo MQTT po lo an o pa a u iliza lo con LoRa Se e debemos hace uso
de la he amien a LoRa Ga eway B idge.
Figu a 5.3:A anque del p og ama single_chan_pk _ wd
Módulo P ecio
Raspbe y PI 3 B+ 40 e
RFM95W 7 e
Cables pa a conexión 2 e
To al: 49 e
Cuad o 5.2:Cos e de los componen es pa a mon a es e p oyec o.
26
Pa a es e ga eway no se han medido los consumos po que al no pe mi i la ansmisión
de paque es no esul a ele an e.
2. En segundo luga se pone a p ueba el p oyec o h ps://gi hub.com/JaapB aam/
LoRaWanGa eway, es e p oyec o a di e encia del an e io si cuen a con la uncionalidad
pa a ansmi i da os hacia los nodos. Pa a pone en ma cha es e p oyec o es necesa io
dispone de un módulo ESP826611 y un módulo RFM95W [3.3].
ESP PIN RFM95W PIN
D1 (GPIO5) DIO0
D2 (GPIO4) DIO1
D5 (GPIO14) SCK
D6 (GPIO12) MISO
D7 (GPIO13) MOSI
D0 (GPIO16) NSS
GND GND
3.3V VCC
Cuad o 5.3:Tabla de conexiones del módulo RFM95W con ESP8266.
Figu a 5.4:Mon aje de un ga eway con un módulo ESP8266 y RFM95W
Las p uebas ealizadas consis ie on en el en ío de un de e minado núme o de paque es
desde una placa STM32L4 [3.2]. Se en ia on un o al de 50 paque es con un payload
de un by e, au en icación OTAA, un ac o de p opagación de 7 y un ancho de banda
27
de 125 KHz, el iempo en e los en íos ue de 3 segundos. Como el ga eway solo puede
es a a la escucha en un único canal se op ó po con igu a en ambos disposi i os la
ecuencia 868.100 MHz; es impo an e eco da que es e ga eway no sopo a MQTT
y en el caso u iliza LoRa Se e debemos usa LoRa Ga eway B idge pa a ealiza la
con e sión de UDP a MQTT.
Figu a 5.5:Consola del ga eway ESP8266
La siguien e igu a [5.6] es un eco e de la aplicación LoRa App Se e donde podemos
obse a pa e de los paque es ecibidos du an e la p ueba.
Figu a 5.6:Ex ac o donde podemos obse a pa e de los paque es ecibidos du an e la
p ueba.
28
Desplegando cualquie a de los paque es de la igu a an e io podemos obse a la
con igu ación de la modulación LoRa:
Figu a 5.7:Ex ac o de uno de los paque es ecibidos donde se e la con igu ación u ilizada
pa a la ansmisión.
Después de ealiza las p uebas an e io es jun o con las p uebas de OTA se de e mina
que es e ga eway no es álido pa a es e p oyec o po los siguien es mo i os:
Solo puede ecibi da os de un único canal.
El ga eway se einicia con e o es PANIC alea o ios.
El ga eway no puede en ia da os en la ecuencia asignada al downlink del i m-
wa e.
A pesa de que con paque es de amaño 1 by e el esul ado ha sido muy bueno,
du an e las p uebas de OTA se obse a que con paque es de un amaño más
g ande la sinc onización no es buena y se pie den muchos paque es.
Consumos ESP8266 + RFM95W
A anque Máximo as a ios encendidos: 94 mA
Escuchando En e 40-50 mA
T ansmi iendo En e 90-100 mA
Cuad o 5.4:Tabla de consumo ga eway módulo ESP8266
29
Figu a 5.8:G á ico de consumo ga eway módulo ESP8266
Los consumos se han medido con un mul íme o conec ado en se ie. En la siguien e
abla [5.5] se encuen a de allado el cos e pa a mon a es e ga eway.
Módulo P ecio
ESP8266 3 e
RFM95W 7 e
Cables pa a conexión 2 e
To al: 12 e
Cuad o 5.5:Cos e de los componen es pa a mon a es e p oyec o.
3. Finalmen e se op ó po p oba un ga eway come cial, modelo ’Sen ius RG1xx’2. Es e
ga eway come cial sopo a an o LoRa como LoRaWAN, dispone de conexión E he -
ne , Wi i y Blue oo h, sopo a y de ec a odos los ac o es de p opagación y puede
an o ecibi como ansmi i po cualquie a de los canales que componen la banda
LoRa 868 MHz en Eu opa. A di e encia del ab icado po Mul i ech que iene con una
2h ps://www.lai dconnec .com/wi eless-modules/lo awan-solu ions/sen ius- g1xx-lo a-enabled-
ga eway-wi- i-blue oo h-e he ne
30
e sión de Node-Red ins alada, es e no pe mi e la ins alación de ningún paque e.
Figu a 5.9:Ga eway Sen ius RG1xx
Figu a 5.10:Pan alla inicial del ga eway Sen ius RG1xx
31
Se ealiza on las mismas p uebas que las ealizadas a los ga eways an e io es, se u ilizó
la placa STM32L4 con un ac o de p opagación de 7, un ancho de banda de 125 KHz,
au en icación OTAA y sin ninguna es icción en cuan o al canal a u iliza . El po cen aje de
paque es ecibidos ue del 100 %. Como la ac ualización de i mwa e es un p oceso delicado y
p e endemos ene la mayo e iciencia posible, u iliza emos es e ga eway pa a ealiza odas
las p uebas de OTA. Es e ga eway sopo a el p o ocolo MQTT po lo que no necesi a emos
ningún so wa e adicional pa a que uncione con LoRa Se e . El p ecio de es e ga eway es
de 219,00e3
3h ps://es. a nell.com/lai d- echnologies/ g186/ga eway-868mhz-wi i-blu-e h/dp/2802548
32
Capí ulo 6
LoRa Se e
LoRa Se e 1es un p oyec o lib e compues o po múl iples aplicaciones pa a ges iona
de o ma sencilla la comunicación en e una aplicación en un se ido y los nodos. LoRa
Se e sopo a la comunicación bidi eccional, es deci , podemos an o en ia mensajes hacia
los nodos como ecibi los. A con inuación se de allan las es aplicaciones del p oyec o que
amos a u iliza en es e abajo:
LoRa Se e es el co azón del p oyec o, es el enca gado de ges iona odas las amas
ecibidas/en iadas desde/hacia los nodos, comp ueba la in eg idad de los mensajes,
ges iona las conexiones OTAA [4.2.1], en ía las balizas en caso de que es emos aba-
jando con la clase B, en gene al ges iona oda la conexión inalámb ica. LoRa Se e
no iene ningún ipo de in e az g á ica, la única o ma de comunica se con el se ido
es median e los comandos gRPC.
gRPC, Remo e P ocedu e Call, es un amewo k desa ollado po la emp esa Google
que unciona sob e el nue o p o ocolo HTTP/2.0; gRPC se u iliza pa a la conexión
en e se icios. La en aja que o ece es que es os se icios pueden es a desa olla-
dos en di e en es lenguajes de p og amación e incluso ejecu ándose sob e pla a o mas
di e en es.
LoRa App Se e es una in e az g á ica pa a LoRa Se e , se comunica con es e
1h ps://www.lo ase e .io
33
median e el p o ocolo gRPC. LoRa App Se e o ece una API muy comple a pa a
comunica nos con LoRa Se e y pode a a los da os que ecibimos de nues os
nodos di ec amen e con una aplicación c eada po noso os pa a su ges ión. La API
de LoRa App Se e sopo a los p o ocolos gRPC y REST.
LoRa Ga eway B idge es un so wa e que con ie e los da os de los paque es del
p o ocolo UDP en paque es del p o ocolo MQTT y ice e sa, es o es necesa io con
algunos ga eways que no sopo an el p o ocolo MQTT y se uel e necesa io ealiza
la con e sión pa a que sea compa ible con LoRa Se e .
Figu a 6.1:A qui ec u a del p oyec o LoRa Se e con sus múl iples aplicaciones.
Fuen e: h ps://www.lo ase e .io/o e iew/a chi ec u e/
34
En la igu a [6.1] podemos obse a cómo se comunican las di e en es aplicaciones que
componen LoRa Se e , en el cen o nos encon amos con el b oke MQTT, an o los ga-
eway como LoRa Se e es án subsc i os a una se ie de canales pa a ecibi los mensa-
jes, po ejemplo, pa a los ga eway es os canales ienen el o ma o ga eway/IDENTIFICA-
DOR_GATEWAY/. Con inuando po la pa e supe io emos que el siguien e sal o se ía
o bien el p opio ga eway en el caso de sopo a el p o ocolo MQTT o bien el so wa e en-
ca gado de ealiza la con e sión de MQTT a UDP. De la mi ad de la igu a hacia abajo se
encuen an odos los se icios que uncionan con LoRa Se e y nues a aplicación.
6.1. Dependencias
Pa a que LoRa Se e uncione co ec amen e debemos ins ala an es las siguien es de-
pendencias:
Se ido con sopo e MQTT 3.1.1 o supe io , po ejemplo, el se ido Mosqui o.2
MQTT3es un p o ocolo de comunicación máquina a máquina muy lige o y ú il en en-
o nos donde con amos con ancho de banda muy limi ado. Su uncionamien o se basa
en una je a quía de ’ opics’ a los que nos podemos subsc ibi pa a ecibi mensajes. Po
ejemplo, amos a supone que enemos colocados nodos a ambos lados de una calle,
los nodos del lado izquie do en ia án sus mensajes al opic /nodos/calle/izquie da,
mien as que los del lado de echo lo ha ían a /nodos/calle/de echa, po o o lado,
una aplicación que u ie a que ecibi los mensajes de odos los nodos, independien e-
men e del lado de la calle en el que se encuen en es a ía subsc i a a /nodos/calle/#.
El comodín #sus i uye odos los ni eles que que amos hacia abajo.
El comodín +únicamen e lo u ilizamos pa a un único ni el, po ejemplo, /nodos/+/ empe a u a,
que nos da ía la empe a u a de /nodos/1/ empe a u a,/nodos/2/ empe a u a,
e c...
2Mosqui o es un se ido de código lib e que implemen a los p o ocolos MQTT 3.1, 3.1.1 y 5.0, es un
se ido muy lige o y de código lib e que se encuen a disponible pa a la mayo ía de las pla a o mas ac uales.
3Message Queue Teleme y T anspo
35
Figu a 7.4:Al a de un nue o disposi i o ABP.
Una ez hemos con igu ado nues a aplicación en LoRa-App-Se e es momen o de
abaja con el nodo. En es e ejemplo se p e ende ac ualiza el i mwa e median e una
ac ualización de ipo del a ( e apa ado [7.7]). Es e ipo de ac ualización se limi a a en ia
los cambios en e el i mwa e gua dado en los nodos y el nue o i mwa e. En la siguien e
igu a se puede obse a el agmen o de código que ha sido inse ado.
Figu a 7.5:Nue o código inse ado en el i mwa e.
42
An es de compila el nue o i mwa e debemos hace una copia del i mwa e ac ual, es o
nos a a pe mi i c ea la ac ualización del a compa ando ambos i mwa e. Una ez enemos
una copia del i mwa e podemos compila el nue o código:
$ mbed compile -m DISCO_L475VG_IOT01A - GCC_ARM --p o ile=./p o iles/ iny.json
El siguien e paso es gene a y i ma el pa che, pa a es o se u iliza el siguien e comando:
$ lo awan- o a-signing- ool sign-del a --old old.bin --new new.bin
--ou pu - o ma bin -o signed-di .bin
Po úl imo di idimos el pa che en agmen os de has a 204 by es, en es e pun o debemos
decidi cuan os paque es de edundancia que emos añadi . Pa a la placa que es amos u ili-
zando y debido a las limi aciones de memo ia, el máximo es de 39 paque es de edundancia.
$ lo awan- o a-signing- ool c ea e- ag-packe s -i signed-di .bin
--ou pu - o ma plain -- ag-size 204 -- edundancy-packe s 32 -o agmen os
Con es o da íamos po concluida la pa e de p epa ación de la ac ualización. Es momen o
de, sabiendo que nodos son los que amos a ac ualiza , da los de al a en el sc ip enca gado
de al ges ión. Pa a ello modi icamos el iche o lo ase e .js den o de la ca pe a uo a-
se e . En la siguien e igu a podemos obse a algunos nodos de p uebas comen ados y
un único nodo pa a ac ualiza (el que no es á comen ado). En la pa e in e io apa ece el
iden i icado del disposi i o enca gado del b oadcas , es e id co esponde con el gene ado al
da de al a el disposi i o ABP [7.2].
43
Figu a 7.6:Iden i icado es de los nodos que se an a ac ualiza .
Llegados a es e pun o no queda más que lanza el so wa e enca gado de las ac uali-
zaciones en el se ido e i iendo como es es e p oceso. Pa a ello ejecu amos el siguien e
comando:
$ node lo ase e .js agmen os
Subsc ibed o all applica ion e en s
A pa i de es e momen o comienzan a in e cambia se en e el se ido y los nodos
una se ie de mensajes pa a p epa a la desca ga mul icas , a con inuación se mues a po
di e en es secciones cada uno de los pasos. Reco da ambién que en el Apéndice [A] se
encuen a un lis ado con odo de alle de cada uno de los mensajes in e cambiados y sus
campos.
7.2.1. Sinc onización del eloj
El p ime paso pa a c ea un g upo mul icas es sinc oniza el eloj de odos los nodos, es
muy impo an e ene la ho a co ec amen e sinc onizada en los nodos pa a que es os puedan
ab i la en ana de ecepción en el momen o jus o y no pie dan ningún paque e, es o se puede
ealiza de dos mane as, el nodo puede en ia un mensaje AppTimeReq como en es e caso o
el se ido puede o za la ac ualización median e un mensaje Fo ceDe iceResyncReq. Lo
44
no mal es que sea el nodo, que al en a en la u ina de ac ualización sinc onice la ho a de
o ma au omá ica. En la siguien e igu a podemos obse a la espues a del se ido en el
nodo.
Figu a 7.7:Sinc onización de ho a en un nodo.
7.2.2. Con igu ación del g upo mul icas
Una ez que odos los nodos han sinc onizado su eloj se p ocede a en ia un mensaje
McG oupS a usReq pa a c ea un g upo mul icas . En es e momen o los nodos u ilizando
la cla e APP_KEY más una cla e en iada desde el se ido pueden calcula las cla es de la
sesión. En la siguien e igu a puede obse a se la consola del nodo y las cla es de la sesión
mul icas .
Figu a 7.8:Con igu ación del g upo mul icas en un nodo.
7.2.3. F agmen ación de paque es
Dadas las limi aciones en el amaño del payload que enemos, debemos di idi el i mwa e
en pequeños agmen os de has a 204 by es po paque e. Es o lo hacemos en iando desde
el se ido el mensaje F agSessionSe upReq. En la igu a se obse a en e o as cosas
el amaño de la ac ualización (32 agmen os), el amaño de cada agmen o (204 by es)
y el padding (cuando el úl imo agmen o no es á comple o, cuan a in o mación hay que
45
desca a con ando po la de echa).
Figu a 7.9:Con igu ación de la sesión de agmen ación.
7.2.4. Ven ana de ecepción
Po úl imo, nos queda indica al nodo si que emos que el nodo ab a una en ana de
ecepción de la clase B (sinc onización de en anas de ecepción median e balizas) o de la
clase C ( en ana de ecepción siemp e abie a). En nues o caso nos in e esa que el i mwa e
se desca gue en los nodos lo an es posible pa a que es os puedan segui uncionando con
no malidad. Pa a ab i una en ana de ecepción de la clase C el se ido en ía el mensaje
McClassCSessionReq.
Figu a 7.10:Con igu ación de la en ana de ecepción.
En la igu a podemos e el iempo es an e pa a que el nodo ab a la en ana de ecep-
ción (10 segundos), el imeou (128 segundos), la ecuencia de desca ga del i mwa e, que
46
pe enece al ango de ecuencias con un du y cycle del 10 % y el da a a e [4.12].
7.2.5. Recepción del nue o i mwa e
Pasados los 10 segundos indicados en el campo imeToS a [7.10], el se ido comienza
a en ia los agmen os del i mwa e. En la siguien e igu a se e como el nodo cambia a la
clase C y comienza a ecibi los agmen os:
Figu a 7.11:Recepción de los paque es agmen ados.
En es e caso conc e o la ac ualización es á agmen ada en 32 paque es. Cuando el nodo
eciba odos los paque es comenza á a pa chea el i mwa e. Es o puede e se en la siguien e
igu a:
47
Figu a 7.12:Pa cheo del i mwa e.
Una ez el nodo e mina de pa chea el i mwa e, iene que e i ica u ilizando la cla e
pública que iene gua dada si la i ma es co ec a, en caso de que la i ma sea co ec a se
esc ibe en la cabece a del slo 1 ( e apa ado [7.8]) la in o mación de e sión y la i ma.
Todo es o puede e se en la siguien e igu a:
Figu a 7.13:Ve i icación de la i ma.
Po úl imo, esc i a la in o mación de la cabece a del nue o i mwa e se da po concluida
la sesión de agmen ación. Aho a el nodo iene que einicia se, es o ue za la ejecución del
48
boo loade que se enca ga á de i comp obando si hay alguna e sión más ecien e en alguno
de los slo , en caso de encon a la la copia á donde co esponda.
En la siguien e igu a emos p ecisamen e como ocu e es o, la placa se einicia au o-
má icamen e y el boo loade de ec a una e sión más ecien e en el slo 1[7.8] (el i mwa e
ac ualizado median e una ac ualización del a), en onces el boo loade copia es a e sión a
la lash del mic ocon olado , a con inuación de ec a que el backup (slo 2) no coincide con
el i mwa e más ecien e po lo que copia a la memo ia ex e na, en conc e o al slo 2 que
si e como backup del i mwa e más ecien e, el i mwa e que se encuen a en la memo ia
lash del mic ocon olado . Finalmen e se ejecu a el nue o i mwa e, podemos e al inal de
la igu a el ex o ’AGREGAMOS TEXTO PARA ...’ que ue la modi icación ealizada en el
código uen e.
49
Figu a 7.14:Fin la sesión de agmen ación y einicio del nodo.
Con el obje i o de mos a oda la in o mación disponible, a con inuación se mues a el
p oceso an e io is o desde la aplicación de consola que se ejecu a en el lado del se ido .
En la igu a pueden e se cada una de las e apas desc i as an e io men e.
50
Figu a 7.15:P oceso de ac ualización is o desde el se ido .
7.3. Redundancia
La pé dida de agmen os po pa e de los nodos es algo eal, una b e e in e e encia ex-
e na en la ecuencia de desca ga de da os puede ácilmen e p o oca la pé dida de algunos
agmen os. No puede se acep able que un nodo que ha pe dido un pequeño po cen aje de
paque es no pueda ac ualiza se co ec amen e y enga que espe a a que se en íe la ac uali-
zación comple a de nue o. Du an e la sesión de b oadcas (en la ac ualización) los nodos no
en ían ACK, es o quie e deci que el se ido desconoce que paque es no han ecibido pa a
pode een ia los. La edundancia se consigue con la aplicación de los algo i mos denomina-
dos LDPC o Low Densi y Pa i y Check, es os algo i mos ue on p opues os en el año 1960
po Robe G. Gallage 8aunque no se empeza on a u iliza has a los años 90.
Pa a es e p oceso se c ea una ma iz de NxM, donde N co esponde al pa áme o de
51
Figu a 7.17:Dos nue os iche os bina ios en el edi o HxD.
$ node jdi -js - ile1 ile2 pa che
...
P escanning:
.
Equal by es = 6
Da a by es w i en = 18
O e head by es w i en = 7
$ xxd pa che
00000000: a7a3 05a7 a653 2032 2044 4946 4552 454e .....S 2 DIFEREN
00000010: 4349 4153 20a7 a532 0a CIAS ..2.
a7a3 ->05 si ua se en la posición 05 (pa a esc ibi en la siguien e posición).
a7a6 ->esc ibi en el iche o 53 2032 2044 4952 454e 4349 4153 20 que co esponde con
’S 2 DIFERENCIAS ’
a7a5 ->si ua se al inal del iche o y esc ibi 32 0a que co esponde con ’2.’
Tamaño del nue o posible i mwa e:
$ s a ile2
58
File: ile2
Size: 24 Blocks: 8 IO Block: 4096 egula ile
Tamaño del pa che:
$ s a pa che
File: pa che
Size: 25 Blocks: 8 IO Block: 4096 egula ile
Tal y como podemos e en el úl imo ejemplo, no siemp e es mejo opción una ac uali-
zación del a en e a una ac ualización comple a. Habi ualmen e sí lo se á debido a que el
i mwa e no se gene a de o ma alea o ia, si no que se compone de di e en es secciones que se
ubican en las mismas zonas del bina io. En cualquie caso se debe alo a cada ac ualización
de o ma indi idual.
Veamos aho a que ocu e con un ejemplo eal, el amaño del i mwa e ca gado en el nodo
es de 160 KiB, dado que el boo loade ya se encuen a ca gado en el nodo no es necesa io
adjun a lo en la ac ualización, es o quie e deci que el iche o de ac ualización iene 32KiB
menos. La ac ualización a a consis i en añadi un o con un p in , es e p in a a con ene
un s ing de 33 by es.
Tamaño i mwa e ca gado en el nodo (sin boo loade ):
$ s a old.bin
File: old.bin
Size: 138120 Blocks: 272 IO Block: 4096 egula ile
Nue o código:
o (in i=0;i<20;i++)
59
{
p in ("AGREGAR NUEVOS BYTES AL CODIGO");
}
Tamaño nue o i mwa e (sin boo loade ):
$ s a new.bin
File: new.bin
Size: 138168 Blocks: 272 IO Block: 4096 egula ile
Gene a la ac ualización del a y i ma la:
$ lo awan - o a -signing - ool sign - del a --old old. bin --new new.bin
--ou pu - o ma bin -o signed - di . bin
$ s a signed - di .bin
File: signed - di .bin
Size: 6493 Blocks : 16 IO Block : 4096 egula ile
Figu a 7.18:Compa a i a en e el amaño de los dos ipos de ac ualización.
60
En la igu a [7.18] podemos obse a una di e encia de amaños muy impo an e, una
educción en el amaño de la ac ualización de un 95,3% u ilizando una ac ualización del a
en e a una comple a. Al educi el amaño de la ac ualización se consigue un mejo esul-
ado. Los nodos necesi an menos espacio pa a almacena la in o mación, el po cen aje de
paque es pe didos se educe y el iempo necesa io pa a la desca ga es muy in e io .
7.8. Almacenamien o
En es a implemen ación de OTA se u ilizan las dos memo ias disponibles en la placa, la
p ime a es una memo ia SPI de 8MB y la segunda es la memo ia lash del mic ocon olado
de 1 MB. El mapa de la memo ia lash del mic ocon olado es el siguien e:
Figu a 7.19:O ganización de la memo ia lash.
En la di ección de memo ia 0x08000000 se encuen a el boo loade , con iene eco da que
el boo loade se a a ejecu a en p ime luga y en e o as cosas ges iona las ac ualizaciones
de i mwa e del chip. En la di ección 0x08008800 se encuen a la cabece a del i mwa e, es a
cabece a con iene la e sión del i mwa e y la i ma del mismo, es a in o mación se á de
u ilidad más adelan e. Po úl imo, en la di ección 0x08009000 se encuen a el i mwa e, la
di ección inal depende á del amaño del mismo.
Po o o lado enemos la memo ia SPI, es a memo ia se es uc u a de la siguien e o ma:
61
Figu a 7.20:O ganización de la memo ia SPI.
Slo 0: el slo 0 se u iliza pa a almacena el i mwa e en el caso de es a ecibiendo
una ac ualización de ipo comple a.
Slo 2: en es e slo hay un backup del i mwa e más ecien e ca gado en el mic ocon-
olado . U ilizando es a copia podemos ecupe a el chip en caso de co upción en el
i mwa e.
Slo 1: en el caso de las ac ualizaciones de ipo del a es e slo se u iliza pa a combina
el i mwa e ac ual gua dado en el slo 2 con el pa che ecibido.
Du an e el encendido de la placa el boo loade comp ueba u ilizando la e sión alma-
cenada en la cabece a de los slo s cuál de los i mwa es es el más ecien e, en base a es o
decide cual debe es a ca gado en el mic ocon olado y copiado en el slo 2 como espaldo.
Pa a ejecu a el boo loade , nada más e mina una ac ualización del ipo que sea la placa
se einicia de o ma au omá ica, de es a o ma se ejecu a el boo loade y ealiza odas las
ac ualizaciones en las memo ias que co espondan.
7.9. P uebas ue a del labo a o io
Todas las p uebas an e io es se han hecho en un en o no con olado, el labo a o io, las
p uebas que se mues an a con inuación han sido ealizadas ue a de es e, en conc e o, en
62
el campus de Ciudad Uni e si a ia.
En la p ime a p ueba se ha que ido comp oba la ac ualización OTA de dos nodos de
o ma simul ánea, pa a ello se ha colocado un ga eway en el labo a o io y dos nodos en
di e en es ubicaciones den o del campus, la si uación de los nodos y el ga eway se mues a
en la siguien e igu a:
Figu a 7.21:Si uación de los nodos y ga eway du an e la p ueba ue a del labo a o io.
La dis ancia en e el ga eway y el nodo más alejado ha sido de 215 me os, la conexión
en e el ga eway y ambos nodos se ha ealizado con un da e a e de 5, ecibiendo ambos
nodos el nue o i mwa e de o ma co ec a. De los 32 paque es que o maban la ac ualización
del a, ambos nodos ecibie on el 100 % de los mismos, no haciendo necesa io ecu i a los
63
paque es de edundancia.
En la segunda p ueba se quie e pone a p ueba la ecnología LoRa en un en o no de
in e e encias debido a los múl iples equipos in o má icos y de adio u ilizados en las dis in as
acul ades. Pa a es a p ueba se coloca el ga eway en la Facul ad de In o má ica y uno de los
nodos en la azo ea de la Facul ad de Ciencias Físicas, a con inuación se mues a una igu a
con la si uación exac a:
Figu a 7.22:Si uación del ga eway y nodo du an e la segunda p ueba ue a del labo a o io.
En es a ocasión la dis ancia en e el nodo y el ga eway es de 542 me os, la conexión al
igual que en la an e io p ueba se ha ealizado de o ma co ec a con un da a a e de 5. Pa a
ac ualiza es e nodo se ha u ilizado de nue o la ac ualización del a en e a la comple a;
dicha ac ualización es aba compues a po 30 agmen os. El nodo ha sido capaz de ecibi
odos los agmen os de o ma co ec a. No han sido necesa ios los paque es de edundancia.
Como conclusión de las p uebas, la alo ación gene al es muy posi i a, odas las ac ua-
lizaciones ue a del labo a o io, en un en o no que podemos conside a que se asemeja más
al de la u u a ubicación de los nodos han sido un éxi o.
64
Capí ulo 8
Conclusiones
El obje i o ma cado pa a es e p oyec o de in de g ado había sido consegui ac ualiza el
i mwa e de los nodos de una ed de senso es median e una ecnología LPWAN denominada
LoRaWAN. Es e obje i o no solo se ha log ado sino que además oda la in o mación ecopi-
lada y odas las p uebas ealizadas an o en el labo a o io como en un en o no eal an a se
de especial in e és pa a el p oyec o Sola Node, en el cual además de ecopila in o mación
ace ca de la adiación sola an a pode ene sopo e pa a ac ualizaciones OTA.
Se ha podido conclui que en la mayo ía de los casos es mucho más con enien e ealiza
ac ualizaciones OTA pa ciales en e a ac ualizaciones comple as. Sin emba go en algunas
ocasiones nos pod ía ocu i que el amaño de la ac ualización pa cial sea supe io a la
ac ualización comple a, en es e caso es mejo idea di idi una ac ualización g ande en ac-
ualizaciones más pequeñas pa a e i a allos de comunicación.
La placa B-L475E-IOT01A[3.2] con p ocesado STM32L475VGT6, elegida inalmen e
como placa de p uebas pa a las ac ualizaciones OTA, ha sido odo un acie o; la memo ia
SPI que lle a in eg ada en placa se ha uel o indispensable pa a pode ene siemp e una
copia de espaldo del i mwa e, en caso de que se co ompie a alguna pa e del i mwa e, el
boo loade pod ía ácilmen e eemplaza el i mwa e co up o. También dicha memo ia es
u ilizada pa a gene a el nue o i mwa e cuando se ejecu a una ac ualización del a. G acias
a la memo ia in eg ada e i amos ene que añadi algún ipo de sopo e adicional donde
gua da es a in o mación, es e sopo e pod ía se un lec o de a je as SD, un pen-d i e
65
conec ado a un pue o OTG median e un adap ado , e c...
El conjun o de aplicaciones que o man LoRa Se e han demos ado du an e el desa-
ollo de es e p oyec o se muy obus as y iables, además son aplicaciones de código lib e y
con una g an comunidad y documen ación de ás.
Como conclusión inal de es e p oyec o, a pesa de que el p o ocolo elabo ado po la
asociación LoRa-Alliance pa a el en ío de da os mul icas es ela i amen e nue o, se ha
podido comp oba en mul i ud de ocasiones du an e las p uebas ealizadas que es e p o ocolo
es muy es able y iable.
66
Capí ulo 9
Conclusions
The objec i e se o his end-o -deg ee p ojec was o upda e he i mwa e o he nodes
o a senso ne wo k using an LPWAN echnology called LoRaWAN. This objec i e has no
only been achie ed bu also all he in o ma ion collec ed and all he es s ca ied ou , bo h
in he labo a o y and in a eal en i onmen , a e going o be o special in e es o he Sola
Node p ojec , which in addi ion o ga he ing in o ma ion abou sola adia ion, will be able
o ha e suppo o OTA upda es.
I has been concluded ha i is much mo e con enien o pe o m pa ial OTA upda es
agains comple e upda es. Howe e , in some cases i could happen ha he size o he pa ial
upda e is la ge han he comple e upda e, in his case i is be e o di ide a la ge upda e
in o smalle upda es o a oid communica ion p oblems.
The boa d B-L475E- IOT01A [3.2] wi h p ocesso STM32L475VGT6, was inally chosen
as a es boa d o OTA upda es, has been a success. The SPI memo y ha is in eg a ed
in he boa d has become indispensable o always ha e a backup copy o he i mwa e, in
case any pa o he i mwa e is co up ed, he boo loade could easily eplace he co up ed
i mwa e. This memo y is also used o gene a e he new i mwa e when a del a upda e
is pe o med. Thanks o he in eg a ed memo y we a oid ha ing o add some addi ional
suppo o s o e his in o ma ion, his suppo could be an SD ca d eade , a pen-d i e
connec ed o an OTG po h ough an adap e , e c ...
The se o applica ions ha o m LoRa Se e ha e shown du ing he de elopmen o
67
Figu a A.7:Fo ma o mensaje F agSessionSe upReq.
F agSession, que se descompone en:
•F agIndex iden i icado de la sesión, has a 4 sesiones.
•McG oupBi Mask u ilizado pa a asocia sesiones de agmen ación a g upos mul-
icas , indica que g upos de mul icas pueden ecibi da os de es a sesión de ag-
men ación, un alo 0000 indica solo da os unicas , un alo 0001 indica sesión
de mul icas 0 y un alo 1111 indica que pueden ecibi da os de es a sesión en
los 4 g upos mul icas más unicas .
Figu a A.8:Fo ma o pa áme o F agSession.
NbF ag, núme o de agmen os que amos a en ia .
F agSize, amaño de los agmen os.
Con ol es una es uc u a de con ol que iene los siguien es campos:
•F agAlgo, indica el algo i mo u ilizado pa a la agmen ación de los paque es.
•BlockAckDelay, máximo de iempo pa a que los nodos con i men un mensaje
que equie a con i mación ecibido po un g upo mul icas . El nodo gene a á un
alo alea o io u ilizando nues o máximo iempo pa a e i a las colisiones que
end íamos si odos los nodos con i ma an el mensaje al mismo iempo.
74
Figu a A.9:Fo ma o pa áme o Con ol.
Padding, núme o de by es que se desca an del úl imo agmen o ecibido. Po ejemplo,
pa a un amaño de payload de 204 by es, si una ac ualización solo equie e de 128 by es
end íamos un padding de 76, 204 - 76 = 128 by es de da os.
Desc ip o indica el ipo de da os que es á ecibiendo el nodo, po ejemplo, una ac-
ualización OTA.
Es e mensaje equie e una con i mación po pa e de los nodos, el mensaje de con i ma-
ción con iene los siguien es campos:
Figu a A.10:Fo ma o mensaje F agSessionSe upAns.
Si alguno de los bi s [0:3] es á a uno en onces el nodo ha echazado la sesión de agmen-
ación.
A.4. Ven ana de ecepción
Mensaje McClassCSessionReq pa a ab i una en ana de ecepción de la clase C. Con-
iene los siguien es campos:
Figu a A.11:Fo ma o mensaje McClassCSessionReq.
75
McG oupIDHeade que con iene una es uc u a con los siguien es pa áme os:
Figu a A.12:Fo ma o pa áme o McG oupIDHeade .
McG oupID que co esponde con el iden i icado del g upo mul icas .
SessionTime es el iempo en segundos pa a ab i la en ana de ecepción.
SessionTimeOu que con iene una es uc u a con los siguien es pa áme os:
Figu a A.13:Fo ma o pa áme o SessionTimeOu .
Donde TimeOu es el máximo iempo que a a es a la en ana de ecepción abie a
an es de ol e a la clase A pa a aho a ba e ía.
DLF equ F ecuencia en la que an a es a escuchando los nodos, se u iliza 869.525
MHz po ene un du y cycle del 10 %.
DR indica el ac o de p opagación y el ancho de banda.
Es e mensaje ambién equie e que los nodos con i men su co ec a ecepción median e el
en ío de un mensaje McClassCSessionAns que con iene los siguien es campos:
Figu a A.14:Fo ma o mensaje McClassCSessionAns.
La es uc u a S a us&McG oupID con iene los siguien es pa ame os:
76
McG oupUnde ined, a uno si el g upo mul icas del campo McG oupID no exis e.
F eqEe o , a uno si el nodo no sopo a la ecuencia.
DRE o , a uno si el nodo no sopo a dicho da a a e.
McG oupID Iden i icado del g upo mul icas .
Figu a A.15:Fo ma o pa áme o S a us&McG oupID.
El campo (cond)TimeToS a se u iliza pa a comp oba que el eloj del nodo sigue co ec-
amen e sinc onizado. El nodo indica en es e campo los segundos es an es pa a ab i la
en ana de ecepción y de es a o ma el se ido puede comp oba que es á co ec amen e
sinc onizado.
77