ESP32 LoRa for dummys - Meshtastic : nociones básicas

Los objetivos del proyecto Meshtastic® son muy similares a los vistos en el proyecto disaster.radio y que no son otros que crear una red alternativa de comunicaciones basada en dispositivos de bajo coste que trabajen con el protocolo LoRa y que sea capaz de funcionar en áreas sin infraestructura de comunicaciones, o con infraestructuras poco  fiables, o  que estas hayan quedado fuera de servicio por algún desastre (Telefonia  y datos por cable o radio).  

Se trata de un proyecto está impulsado completamente por la comunidad y es de código abierto.

Esquema de funcionamiento de una red Meshtastic

Algunas de sus características de Mashtastic son:
  • Al usar LoRa no requiere ni permisos, ni autorizaciones por parte de la Administración. 
  • Meshtastic no es ni LoRaWAN (que es un protocolo de comunicaciones de alto nivel que usa LoRa) , ni Helium ( que es una red propietaria basada en LoRaWAN), ni TTN (TheThingsNetwork que es una red propietaria basada en LoraWan) es un red , es otra cosa
  • Largo alcance (récord de 331 km por MartinR7 y alleg)
  • No se requiere teléfono para la comunicación en red
  • Comunicación descentralizada: no se requiere enrutador dedicado
  • Comunicación cifrada. Si se trabaja con licencia de radioaficionado puede desactivarse esta característica.
  • Bajo consumo
  • Permite enviar y recibir mensajes de texto entre miembros de la red.
  • Funciones opcionales de ubicación basadas en GPS


HARDWARE SOPORTADO

ESP32
El chip ESP32 es más antiguo y consume más energía que el chip nRF52, pero está equipado con WiFi y Bluetooth. Los dispositivos ESP32 compatibles son:
  • LILYGO® TTGO T-Beam (>V1.1 recommended)
  • LILYGO® TTGO LoRa (>V2.1 recommended)
  • Nano G1
  • Station G1
  • Heltec V3 and Wireless Stick Lite V3
  • RAK11200 Core module for RAK WisBlock modular boards
nRF52 
El chip nRF52 es mucho más eficiente energéticamente que el chip ESP32 y más fácil de actualizar, pero sólo está equipado con Bluetooth. Los dispositivos nRF52 compatibles son:
  • RAK4631 Core module for RAK WisBlock modular boards
  • LILYGO® TTGO T-Echo
RP2040
El RP2040 es un chip ARM de doble núcleo desarrollado por Raspberry Pi. Los dispositivos  RP2040 compatibles son:

  • Raspberry Pi Pico + Waveshare LoRa Module (Note: Bluetooth on the Pico W is not yet supported by Meshtastic)
  • RAK11310 Core module for RAK WisBlock modular boards

 

INSTALAR EL SOFWARE (FLASHING)  EN ESP32

Para generar el firmware se puede hacer de dos formas:

  • Usar PlatformIO (En este momento paso de montarme otro entorno IDE además de Arduino IDE)
  • Usar GitPod (Requiere conectarse con usuario a GitHub) + webflashing (ESP32) 

Se ha optado por flashear una placa LILYGO T-LoRa V2.1-1.6 mediante Gitpod  


Seleccione la placa (LiLygo T-Lora 2.1-1.6), la versión y despues flashee


Su funcionamiento es muy sencillo y sin problemas


Posibles errores
Si la carga se queda en Conecting ... pruebe a borrar previamente la memoria con ESPTOOL


CONSOLA DEL NODO MASHTASTIC

DESDE UN BROWSER

A través de la URL  https://client.meshtastic.org/ a la que hay que indicar la forma de conexión (Se elige serie)

Pantalla principal del cliente browser


 

DESDE UN PROGRAMA PYTHON

Desde la consola o terminal de su sistema operativo ejecute la instalación del programa de gestion de meshtastic mediante comandos

python3 -m pip install meshtastic

 

DESDE UNA APP DE ANDROID

A través de una app de ANDROID, para ello hay que  descargar e instalar la app Meshtastic desde Google Play (Ver mas detalles), mas detalles sobre su uso (aqui). 

Si ya tiene el ESP32 con Meshtastic cargado, abra la configuración del  Androide y enpareje la conexión bluetooth incluyendo en Android el código facilitado por ESP32 

 

Desde cualquiera de estas formas podrá configurara el nodo Meshtastic creado en la ESP32-LoRa  (LAapp parece el mas sencillo y práctico)

La red una vez formada y si lo autorizan los participantes muestra la localización y distancia del resto de miembros del grupo.

 

Configuraciones mediante la app

RADIO 

  • User Config: indica el identificador del nodo, su nombre largo y corto el hardware (TLORA_V2_1_aP6) y permite indicar si se tiene o no licencia de radioaficionado (importante por el cifrado)
  • Channels: nombre, PSK, uplink enabled, downlink enabled, position enabled, preceise enabled 

  • Device config: role (client, client_mute, router, router_client, repeater, tracker, sensor, tak, client_hidden, lost_and_found, tak_tracker) serial output (enabled / disabled) , debug log (enabled/disabled), rebroadcasr mode (ALL, all_skip_decoding, local_only, know_only)), nodeinfo broadcastinterval (10800s) ... disabled LED heartbeat (Probado, OK)
  • Position Config: position boadcast interval(900s), smart position (enabled/disabled), use fixed position, GPSmode (NOT_PRESENT), ... 
  • Power config: ahorro
  • Network config: wifi , ethernet 
  • Display config: configura la pantalla de la placa 
  • LoRa: Region (EU_868)
  • Bluetooth Config: enable/disable, modo de pareado (aleatorio/fijo)

MODULO

  • MQTT: este protocolo se puede usar para comnicarse a través Internet al que se puede acceder mediante WiFi o ethernet, para ello hay que emplear un router MQTT 
  • Serial: los parametros posibles son Enabled, Echo, Mode, Receive GPIO, Transmit GPIO, Baud Rate, Timeout, and Override Console Serial Port
  • External Notification
  • Store & Forware
  • Range Test
  • Telemetry
  • Canned Message
  • Audio
  • Remote Hardware
  • Neighbor info
  • Ambient Lighting
  • Detection Sensor
  • Paxcounter

    IMPORT/EXPORT

  • Import configuration: (Abre una pantalla para seleccionar archivo del Android)
  • Export configuration: (Abre combo para seleccionar que variables guardar, confirma nombre del archivo)

REINICIAR (Porbado, OK)

APAGAR

RESTABLECER LOS VALORES DE FABRICA

REINICIO NodeDB

 

No modifique ningun parametro por defecto si no sabe exactamente las implicaciones, tras la modificación deb "ENVIAR" para confirmar el cambio en la placa ESP32 


PRIMERAS PRUEBAS 

Para probar el funcionamiento de una red Meshtastic debe disponer de al menos dos placas ESP32 LoRa con el firmware  de Meshtastic cargado, es decir dos nodos y estos deben ser configurados mediante la app. 

Cada app/android se empareja con un nodo, por lo que necesitará de dos Android

Si todo va bien cuando escriba en una app el mensaje se enviará a través del nodo Meshtastic vía LoRa y cifrado al otro nodo de la red y se mostrará en la app/Android de dicho nodo

 

Pantalla de mensajería de la app Meshtastic en la que se muestran los mensajes enviados (en ingles) y los recibidos por el otro nodo "Mc" (en español).

Pantalla de inicio del ESP32 en la que aparece labanda utilizada (EU_868), la versión del firmware (2.4.2), el nombre corto (Prin) y el logo

Segunda pantalla en la que se identifica  el nodo adyacente: nombre (cb8c), tiempo en el que fue detectado (85 seconds ago), nivel de señal (100%), distancia (1m) y posición (Brújula). con la distancia


Pantalla del nodo cb8c cuando recibe un mensaje de Prin


Ya tiene en funcionamiento una red Meshtastic, en la siguiente entrada vamos a ver como la securizamos


Placa todo en uno

Se puede adquirir una placa de desarrollo ESP32 que incorpora el chip LoRa (SX1262), el chip GNSS (no es imprescindible disponer de GNSS para el funcionamiento de una red Meshtastic, aunque es una de sus caracteristicas) y el firmware de Meshtastic precargado como por ejemplo:

 

Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

 

Comentarios

Entradas populares de este blog

SDR - Software Defined Radio - IIIb: Receptores RSP o MSI (MSI3001: MSI2500 + MSI001)

Antena exterior logarítmica UHF/VHF : Metronic 425010 - Ia Características

ESP32 LoRa for dummys - Inicio