Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
guias:lora_ttn [2018/04/21 10:49] – Alejandro Taracido | guias:lora_ttn [2021/05/07 19:14] (actual) – [Montaje gateway de un canal] Fix image link Alejandro Taracido | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== LoRa + TTN: comunicando cosas con internet | + | ====== LoRa + TTN: comunicando cosas con Internet |
- | WORK IN PROGRESS | + | //by [[: |
===== ¿Qué vas a aprender aquí? ===== | ===== ¿Qué vas a aprender aquí? ===== | ||
Línea 15: | Línea 15: | ||
LoRa es una tecnología de transmisión inalámbrica, | LoRa es una tecnología de transmisión inalámbrica, | ||
- | Se alcanzan fácilmente 2km en área urbana y más de 10 km en área rural. ¡Actualmente el récord tierra-tierra es de 210 km con una shield de arduino | + | Se alcanzan fácilmente 2km en área urbana y más de 10 km en área rural. ¡Actualmente el récord tierra-tierra es de 210 km con una shield de Arduino |
==== Las frecuencias de LoRa ==== | ==== Las frecuencias de LoRa ==== | ||
- | Esta tecnología de radio utiliza bandas ISM, Industrial Scientific & Medical. Estas bandas son de uso libre sin licencia pero limitadas en potencia. | + | Esta tecnología de radio utiliza bandas ISM, Industrial Scientific & Medical. Estas bandas son de uso libre sin licencia pero limitadas en potencia |
LoRa utiliza tres frecuencias principalmente: | LoRa utiliza tres frecuencias principalmente: | ||
Línea 25: | Línea 25: | ||
* 433 MHz en Asia | * 433 MHz en Asia | ||
* 915 MHz en América | * 915 MHz en América | ||
- | * __**868 MHz en Europa**__ | + | * **868 MHz en Europa** |
Esto es muy importante! Si vas a comprar un dispositivo con LoRa, fíjate muy bien que tenga la frecuencia adecuada. Si no lo haces puedes acabar con un módulo que no pueda hablar con otros dispositivos LoRa y que incluso puede estar infringiendo las regulaciones de radio. En las webs chinas encontrarás que los módulos con banda 433 MHz son los más baratos :-( | Esto es muy importante! Si vas a comprar un dispositivo con LoRa, fíjate muy bien que tenga la frecuencia adecuada. Si no lo haces puedes acabar con un módulo que no pueda hablar con otros dispositivos LoRa y que incluso puede estar infringiendo las regulaciones de radio. En las webs chinas encontrarás que los módulos con banda 433 MHz son los más baratos :-( | ||
+ | |||
+ | ==== Los canales de LoRa ==== | ||
+ | |||
+ | Dentro de las bandas del anterior apartado, se definen canales de frecuencias concretas. Es complicado recordar las frecuencias de todos los canales, pero normalmente las librerías que utilizaremos ya se encargan de facilitarnos esta tarea. Quédate con que **para la banda de 868 MHz hay 10 canales** | ||
+ | |||
+ | ==== El spreading factor (SF) de LoRa ==== | ||
+ | |||
+ | Esto seguro que es nuevo para ti. El spreading factor, se podría traducir como factor de esparcimiento. Para entenderlo imagina que estás en un concierto y quieres hablar con un acompañante pero no te oye por el ruido aunque grites todo lo que puedas (potencia de transmisión). Una opción para que te escuche es hablar mucho mas despacio. Pues es lo que define este factor, cuanto te " | ||
+ | |||
+ | Lo genial de esto es que puedes llegar mucho más lejos con tu transmisor LoRa, pero tardarás mucho más en transmitir tus envíos y podrás enviar menos mensajes por la regla del 1%. | ||
+ | |||
+ | ==== La regla del 1% ==== | ||
+ | |||
+ | Otra característica nueva. En europa la banda 868 MHz tiene un par de limitaciones. La primera es la potencia de emisión: 25 mW, que no nos preocupa mucho ya que los módulos que utilizaremos no llegan a tanta. Pero la segunda si que es importante y debemos estar al loro para no violar la regulación. | ||
+ | |||
+ | Esta regla simplificadamente lo que dice es que no podemos transmitir más que el 1% del tiempo. Es decir si por ejemplo enviar un paquete nos lleva 100 ms, tendremos que mantenernos calladitos por 900 ms. | ||
+ | |||
+ | Como norma general, no envíes más de una vez cada 3 minutos y cumplirás la reglamentación. Si quieres enviar más a menudo, existen [[https:// | ||
---- | ---- | ||
Línea 52: | Línea 70: | ||
* Shields Arduino Uno: La más fácil de utilizar, pero al necesitar un Arduino Uno, consume demasiado para proyectos IOT. | * Shields Arduino Uno: La más fácil de utilizar, pero al necesitar un Arduino Uno, consume demasiado para proyectos IOT. | ||
* Shields para Wemos ESP8266: Muy pocas y difíciles de conseguir, pinchables en ESP8266 que tiene WiFi, busca " | * Shields para Wemos ESP8266: Muy pocas y difíciles de conseguir, pinchables en ESP8266 que tiene WiFi, busca " | ||
- | * [[https:// | + | * [[https:// |
Ten en cuenta que si quieres hacerte un mini gateway para hacer pruebas, necesitas una tarjeta con LoRa que pueda conectarse a Internet ;-) | Ten en cuenta que si quieres hacerte un mini gateway para hacer pruebas, necesitas una tarjeta con LoRa que pueda conectarse a Internet ;-) | ||
Línea 58: | Línea 76: | ||
Esta guía está centrada en la tarjeta **TTGO LoRa32 V2.0 868 MHz. **Ya que es la que me he comprado para hacer pruebas :-P Puede servir con pequeñas modificaciones si utilizas otra placa basada en ESP32 o como orientación si utilizas otra cualquiera. | Esta guía está centrada en la tarjeta **TTGO LoRa32 V2.0 868 MHz. **Ya que es la que me he comprado para hacer pruebas :-P Puede servir con pequeñas modificaciones si utilizas otra placa basada en ESP32 o como orientación si utilizas otra cualquiera. | ||
- | <font 18px/ | + | AVISO IMPORTANTÍSIMO: |
- | <font 18px/ | + | AL NO TENER POR DONDE EVACUAR LA ENERGÍA, SE DAÑARÁ O DEJARÁ DE FUNCIONAR! |
---- | ---- | ||
Línea 66: | Línea 84: | ||
===== ¡Agarra tu LoRa que empezamos! Comunicación LoRa punto a punto ===== | ===== ¡Agarra tu LoRa que empezamos! Comunicación LoRa punto a punto ===== | ||
- | Si ya tienes tu tarjeta **TTGO LoRa32 V2.0 868 MHz** … ahora te diré que necesitas otra más m( Como primera prueba vamos a utilizar LoRa (SÓLO LoRa!) para comunicar dos dispositivos entre sí. | + | Si ya tienes tu tarjeta **TTGO LoRa32 V2.0 868 MHz** … ahora te diré que necesitas otra más m( Como primera prueba vamos a utilizar LoRa (SÓLO LoRa!) para comunicar dos dispositivos entre sí. |
Primero debemos configurar el entorno de desarrollo. Utilizaré como ejemplo Arduino, pero te recomiendo que pruebes Platformio. | Primero debemos configurar el entorno de desarrollo. Utilizaré como ejemplo Arduino, pero te recomiendo que pruebes Platformio. | ||
Línea 87: | Línea 105: | ||
</ | </ | ||
- | * Vete al gestor de librerías de arduino, busca " | + | * Vete al gestor de librerías de Arduino, busca " |
- | * Vete al gestor de librerías de arduino, busca "ESP32 SSD1306" | + | * Vete al gestor de librerías de Arduino, busca "ESP32 SSD1306" |
Bien, si has llegado aquí y no has muerto en el proceso, ¡enhorabuena, | Bien, si has llegado aquí y no has muerto en el proceso, ¡enhorabuena, | ||
Línea 163: | Línea 181: | ||
Aquí hay que agarrarse que vienen curvas, ya que como todo el sistema es muy seguro y tenemos que interconectar muchos sistemas tenemos muchos sitios donde meter la pata. Y si algo lo hacemos mal, no va a funcionar :-( | Aquí hay que agarrarse que vienen curvas, ya que como todo el sistema es muy seguro y tenemos que interconectar muchos sistemas tenemos muchos sitios donde meter la pata. Y si algo lo hacemos mal, no va a funcionar :-( | ||
- | Cuando empecé con LoRa, un par de semanas antes de escribir esta guia, me costó mucho hacer funcionar todo. Principalmente porque no tenía nada funcionando y probado, no había ningún gateway en Coruña (ni en Galicia! 8-o ), la tarjeta TTGO era relativamente nueva y no había ninguna guía que recogiera todo el proceso. Leyendo mucho, haciendo muchas pruebas y gracias a un par de pistas que encontré en unas diapositivas [[https:// | + | Cuando empecé con LoRa, un par de semanas antes de escribir esta guia, me costó mucho hacer funcionar todo. Principalmente porque no tenía nada funcionando y probado, no había ningún gateway en Coruña (ni en Galicia! 8-o ), la tarjeta TTGO era relativamente nueva y no había ninguna guía que recogiera todo el proceso. Leyendo mucho, haciendo muchas pruebas y gracias a un par de pistas que encontré en unas diapositivas [[https:// |
Por lo que después de asustarte te voy a tranquilizar, | Por lo que después de asustarte te voy a tranquilizar, | ||
Línea 196: | Línea 214: | ||
Empezaremos con una modificación hardware. Pon a calentar el soldador. | Empezaremos con una modificación hardware. Pon a calentar el soldador. | ||
- | En el pinado que te mostraba anteriormente ya encontrábamos un misterioso pin DI0 o DIO0 del transceiver LoRa. Pues resulta que hay dos más, el DIO1 y el DIO2. Estos pines se utilizan como pines de interrupción y son necesarios para la librería LMIC, desarrollada por IBM que vamos a utilizar. La mala noticia es que los amigos de TTGO, aunque conectaron el DIO0, se han olvidado de conectar estos pines a los del ESP32 de nuestra tarjeta. m( Nada que un par de cables y un soldador no puedan arreglar. <font inherit/ | + | En el pinado que te mostraba anteriormente ya encontrábamos un misterioso pin DI0 o DIO0 del transceiver LoRa. Pues resulta que hay dos más, el DIO1 y el DIO2. Estos pines se utilizan como pines de interrupción y son necesarios para la librería LMIC, desarrollada por IBM que vamos a utilizar. La mala noticia es que los amigos de TTGO, aunque conectaron el DIO0, se han olvidado de conectar estos pines a los del ESP32 de nuestra tarjeta. m( Nada que un par de cables y un soldador no puedan arreglar. <font inherit/ |
+ | |||
+ | Si vas a conectar como nodo otra tarjeta **TTGO LoRa32 V2.0 868 MHz **puedes aprovechar que tienes el soldador caliente para repetir la operación, ya que para el nodo también lo necesitamos. | ||
{{: | {{: | ||
Línea 202: | Línea 222: | ||
Hardware listo, vamos con el software. Vamos a utilizar el proyecto Open Source: [[https:// | Hardware listo, vamos con el software. Vamos a utilizar el proyecto Open Source: [[https:// | ||
- | Después de un rato instalando librerías (¡que divertido!), | + | Después de un rato instalando librerías (¡que divertido!), |
< | < | ||
+ | |||
#if 1 | #if 1 | ||
wpas wpa[] = { | wpas wpa[] = { | ||
Línea 211: | Línea 231: | ||
{ " | { " | ||
}; | }; | ||
+ | |||
</ | </ | ||
Es importante no modificar el primer par de llaves, ya que debe quedar vacío, y como verás puedes meter dos o más wifis, si no quieres poner dos, deja el tercer par de llaves como estaba. | Es importante no modificar el primer par de llaves, ya que debe quedar vacío, y como verás puedes meter dos o más wifis, si no quieres poner dos, deja el tercer par de llaves como estaba. | ||
- | Selecciona como placa "ESP32 Dev Module" | + | Selecciona como placa "ESP32 Dev Module" |
Una vez hemos comprobado que todo compila, **<font inherit/ | Una vez hemos comprobado que todo compila, **<font inherit/ | ||
Línea 223: | Línea 244: | ||
< | < | ||
#define _CAD 0 | #define _CAD 0 | ||
+ | |||
</ | </ | ||
Línea 229: | Línea 251: | ||
< | < | ||
#define _STRICT_1CH | #define _STRICT_1CH | ||
+ | |||
</ | </ | ||
Línea 235: | Línea 258: | ||
< | < | ||
#define AP_PASSWD " | #define AP_PASSWD " | ||
+ | |||
</ | </ | ||
Línea 246: | Línea 270: | ||
#define _LON 6.557 | #define _LON 6.557 | ||
#define _ALT 8 | #define _ALT 8 | ||
+ | |||
</ | </ | ||
* Línea 201: cambia al servidor de hora de tu [[http:// | * Línea 201: cambia al servidor de hora de tu [[http:// | ||
- | |||
< | < | ||
+ | |||
#define NTP_TIMESERVER " | #define NTP_TIMESERVER " | ||
#define NTP_TIMEZONES | #define NTP_TIMEZONES | ||
+ | |||
</ | </ | ||
Línea 259: | Línea 285: | ||
< | < | ||
# | # | ||
+ | |||
</ | </ | ||
- | Ahora compila de nuevo, y si no hay ningún error, sube el programa. Una vez subido, abre el monitor serie de arduino a 115200, deberías ver algo similar a: | + | Por el pineado |
- | {{https:// | + | Ahora compila de nuevo, y si no hay ningún error, sube el programa. Una vez subido, abre el monitor serie de Arduino a 115200, deberías ver algo similar a: |
+ | |||
+ | {{: | ||
Si no lo ves, es que te entretuviste viendo como en la pantallita ponia STARTING y te quedaste embobado como yo.^_^ | Si no lo ves, es que te entretuviste viendo como en la pantallita ponia STARTING y te quedaste embobado como yo.^_^ | ||
Línea 271: | Línea 300: | ||
Copia el **Gateway ID **que te salió por el puerto serie. Este es tu identificador y lo necesitarás para los siguientes pasos. | Copia el **Gateway ID **que te salió por el puerto serie. Este es tu identificador y lo necesitarás para los siguientes pasos. | ||
- | Ahora puedes buscar en tu red la IP de tu nuevo gateway, y si pones en un navegador su dirección... Voilá! | + | Ahora puedes buscar en tu red la IP de tu nuevo gateway, y si pones en un navegador su dirección… Voilá! |
- | {{https:// | + | {{:guias;wifimonitorloragateway.jpg}} |
¡La leche! Una pedazo de web que está generando nuestro ESP32 que nos vendrá genial para monitorizar nuestro gateway y su estado durante pruebas y funcionamiento. No te preocupes si la hora está atrasada o adelantada, no tiene en cuenta los horarios de verano e invierno;-) | ¡La leche! Una pedazo de web que está generando nuestro ESP32 que nos vendrá genial para monitorizar nuestro gateway y su estado durante pruebas y funcionamiento. No te preocupes si la hora está atrasada o adelantada, no tiene en cuenta los horarios de verano e invierno;-) | ||
Línea 283: | Línea 312: | ||
Entra en TTN y loguéate con tu usuario. En el menú de tu usuario tienes un enlace a la [[https:// | Entra en TTN y loguéate con tu usuario. En el menú de tu usuario tienes un enlace a la [[https:// | ||
- | {{https:// | + | {{:guias:configgateway.jpg}} |
- | Dale a register y si has hecho todo bien... | + | Dale a register y si has hecho todo bien… |
- | {{https:// | + | {{:guias:gateway_overview.jpg|}} |
YEEEEEY!!! ¡Ya tienes tu gateway correctamente configurado y conectado! ¡Corre a mirar el mapa de gateways de la [[https:// | YEEEEEY!!! ¡Ya tienes tu gateway correctamente configurado y conectado! ¡Corre a mirar el mapa de gateways de la [[https:// | ||
- | … | + | |
+ | ==== Montaje nodo ==== | ||
+ | |||
+ | Ahora vamos a preparar nuestro primer nodo (espero que el primero de muchos:-P ), empezando por el hardware. | ||
+ | |||
+ | ¿Le has hecho los puentes de DIO1 y DIO2 a tu **TTGO Lora32 V2.0** | ||
+ | |||
+ | Continuará… | ||