ESP32 LoRa for dummys - TinyGS
TinyGS es una red abierta de estaciones terrestres distribuidas por todo el mundo para recibir y operar satélites LoRa, sondas meteorológicas y otros objetos aéreos, utilizando módulos económicos y versátiles, en concreto placas de desarrollo ESP32 LoRa (por el momento con los módulos de comunicaciones LoRa SX126x y SX127x de Semetech).
Los chips de la serie SX127x tienen una sensibilidad en RX de hasta -148 dBm y una potencia en TX de 20 dBm (100 mW) en la banda de 137MHz a 1020MHz
Los imprescindibles:
- placa ESP32-Lora (consulte compatibilidad)
- cuenta en Telegram (para obtener las credenciales MQTT)
- un ordenador o dispositivo móvil para la configuración inicial.
- Disponer de un entorno de desarrollo para Arduino como Arduino IDE o PlatformIO (no es necesaria, pero se puede usar para compilar y cargar el firmware en la placa de desarrollo). TinyGS aconseja usar PlatforIO (aconsejable) pero, si su placa está soportada por el instalador WEB su uso no le aporta nada y por tanto es perder el tiempo, otra cosa es que no lo esté y haya que por ejemplo modificar la definición de los pines.
- Una antena externa , con la de la placa desde una ventana despejada se pueden recibir satélites que disten hasta 500 km con antena externa llegará hasta los 2.500 lo que supone unas 10 veces mas de tramas recibidas. Algunas antenas que pueden usarse:
- Antena vertical
- Dipolo
- Turnstile: probada para 136 MHz, solo recibe bien los satelites que pasan con una gran elevación
- Eggbeater
- Logperiodica (elevación 90º, en vertical): buenos resultados
- Discone
Sencillo dipolo de 9A4QV con el que se obtienen buenos resultados |
- Amplificador LNA (amplificador de bajo ruido). Tiene que ser un amplificador de calidad pues de lo contrario introduce ruido y empeora la relación S/N por lo que no se gana nada. Yo he probado todos los que tengo y no he obtenido resultados satisfactorios con ninguno, me falta por probar "Amplificador de señal Lora, módulo de amplificación de señal bidireccional, transmisión y recepción, 433MHz /510MHz /868MHz" del que he leido buenas referencias para la banda de 466, tiene un precio ajustado (23 €) y está disponible en Aliexpress
- Identificar la placa de desarrollo ESP32 LoRa que vamos a usar(p.e. LiLYGO 433/470 MHz Model: LORA 32 T3_V1.6.1 que monta los siguientes chips: ESP32-PICO-D4, SX1278 y CH9102) y comprobar que está soportada directamente por el proyecto. Se ha elegido la banda de 433 MHz pues es la que dispone de un mayor número de satelites con telemetría LoRa en octubre de 2024 ( 5 en 137 Mhz; 46 en 433 Mhz; 5 en 868 MHz; 0 en 2400 MHz).
- Darse de alta como usuario en la red TinyGS, para ello:
- Conéctese a Telegram
- Únase al grupo TinyGS
- Envíe el mensaje @tinygs_personal_bot para iniciar una conversación privada con el sistema.
- Ejecute el comando /mqtt y recibirá como respuesta un usuario único y su contraseña, guardelos y no los comparta
- Otros comandos del bot son:
- /stations le permiten conocer el estatus de la estación, en este momento informa que está inactiva.
- /delete da de baja una estación de la base de datos
- /weblogin genera un loginlink
- Instalar el firmware para ello:
- Entre en un navegador (p.e. Chrome) y conéctese a la URL https://installer.tinygs.com/
- Seleccione la conexión USBSerial a tavés de la cual se va flashear (Cargar) el firmware en la placa de desarrollo, recuerde que cada placa tiene un nombre y solamente aparece en el combo cuando la placa está conectada por USB al ordenador con un cable que admita datos (no todos los soportan)
- Elegir la acción a realizar: instalar borrando o conectarse a la consola (Desde consola se puede resetear la placa, descargar el log)
- Confirmar la instalación (tarda unos 2' en flashear la memoria con el firmware procedente del servidor, son unos 4 M)
- Hacer reset
- Configurar el firmware
- Lo mas sencillo es que se conécte a su teléfono móvil y vaya a la configuración del sistema (p.e. la rueda en Android) para seleccionar el AP sin cifrar "My TinyGS" y así poder acceder por primera vez a la placa de desarrollo
- Entrar en el navegador y conectarse a la IP
192.168.4.1 que es la que tiene la placa/firmware por defecto (si no puede acceder compruebe que tiene seleccionada la red y en caso necesario haga RESET a la placa, la placa indica cuando tiene su AP activo con "config AP available").
Si todo va bien le aparecerá un menú como el siguiente:
- Station dashboard: permite configurar los parametros de funcionamiento. Los comandos de consola son: !e borrar y reset; !b reboot y !p emite una trama de prueba (Hay que haber habilitado que se tiene licencia o que no se usan amplificadores en 400.45 MHz con 500 KHz de BW)
- Configure Parameters: permite la configuración de la placa (nombre de la estación, usuario (admin) y contraseña de la AP, nombre/SSID y contraseña de la WIFI, modelo de la placa, uso horario, coordenadas, usuario y contraseña MQTT que hemos obtenido por Telegram con el bot y con los que se conecta a mqtt.tinygs.com:8883, board template)
- Upload new version: permite actualizar directamente el dispositivo
- restart station: rearrancarla
- Cuando la estación esté funcionando y actualizando datos recibirá un mensaje de confirmación por Telegram y ademas la placa comenzará con la el carrusel de pantallas
Conectandose a la WiFi Pantalla inicial con la hora y el nombre de la estacion "MalvaRosa" |
Ninguna, una o más de una.
Stefan OS6ISP me puso en la pista que por firmware se puede hacer que una placa de desarrollo Lilygo ESP32 Lora para 433 con SX1278 se puede hacer trabajar en 133 MHz con filtros y LNA adecuados por ejemplo los de Nooelec.En principio del análisis de las hojas de características de la serie SX127x de SEMTECH toda ella puede trabajar en 134 y 433, pero únicamente SX1276, SX1277 y SX1279 pueden hacerlo en 868 MHz, visto de otra manera el SX1278 no puede trabajar en 868 MHz, por último el SX1280 es el unico que podría hacerlo en 2,1 GHz.Por defecto en la instalación de TinyGS está activada la opción Auto Tuning que en función de la placa selecciona y de los satélites predefinidos que pueden ser recibidos (localización y hora) se pone en recepción en la frecuencia correspondiente desde que es visible en el horizonte hasta su desaparición, esta opción es una buena idea sobre todo cuando queremos ahorrar energia (p.e. alimentado por batería).
Para quitar el "autotuner" (Para seleccionar manualmente frecuencia y modulación.) o hacer que trabaje en otra banda que la predefinida por la placa de desarrollo hay que solicitar el enlace de conexión (es temporal y caduca) al bot de Telegram con el comando /weblogin y en la variables Auto tunning seleccionar (DISABLED, Enabled 137, Enabled 433, Enabled 868-915, Enabled 2.4 G) .
De las pruebas realizadas con playas Lilygo ESP32 Lora he encontrado que seguramente por la circuiteria (filtros, etc.):
- La placa 433 (SX1278) trabaja con 137 MHz y con 433 MHz ajustando la banda de auto tunning
- La placa de 868 (SX1276)solamente trabaja con 868 MHz ajustando la banda de auto tunning
Lo que reafirma que la mejor opción para configurar una TinyGS es una placa como Lilygo ESP32 LoRa 433 con SX1278
¿Se pueden recibir todos los satélites de órbita baja?
No, solamente aquellos que envían telemetría LoRa en las bandas de 137, 446, 866 y 2100 MHz, y además han hecho pública la descripción de los campos de las tramas emitidas y estas no van cifradas.
Para leer mas sobre ESP32 LoRa for dummys - TinyGS
- LoRa
- LoRa: balizas y sensores
- LoRa: Telemetría de los satelites
- LoRa: Comunicaciones mediante satélites
- ESP32 LoRa for dummys - TinyGS: relación de satélites recibidos
- ESP32 LoRa for dummys - TinyGS ¿Qué interés tiene recibir la telemetría de los satélites ?
- ESP32 LoRa for dummys - Dashboard de control de TinyGS (NOC en Node-RED)
Referencias
- Recursos sobre comunicaciones LoRa
- Otro proyecto Open Source de estaciones terrestres es: SatNOGS de Libre Space Foundation
Comentarios
Publicar un comentario