ESP32 LoRa for dummys - Lilygo ESP 32 Lora GPS (Neo 6M /GNSS Neo M8M)

Lilygo ESp 32 Lora GPS (NEO 6M) /GNSS (Neo M8M) es una placa que dipone de:


Hay dos versiones de Power Management Unit (PMU) que gestionan la batería de Li-ion (Ver la placa para conocer la versión):

Observe que tiene 3 botones: Power, GPIO38 y RST


Pruebas de la placa

Con una placa T-BEAM (ESP32+LoRa+GPS) en principio podemos hacer todo lo que hasta ahora hemos hecho con una ESP32+Lora mas funciones con GPS como el posionamiento y el seguimiento

  • Beacon: no es necesario el GPS para esta función
  • TinyGS: No es necesaria la función GPS para esta función. Se ha probado con la instalación automática que a veces da el siguienrte error"Warning this board is supposed to work with this configuration but it will not be automatically detected and it's not properly tested yet. If you have this board we would like to hear your experience." Por lo que:
    • Podría ser necesario compilar y cargar desde PlatformIO IDE (T-BEAM V1.2 tal vez como TTGO V2) 
    • Podría ser necesario incluir en el Dashboard un template (Ver aquí

{"name": "T-beam v1.1 + oled", "aADDR": 60, "oSDA": 21, "oSCL": 22, "oRST": 0, "pBut": 38, "led": 14, "radio": 1, "lNSS": 18, "lDIO0": 26, "lDIO1": 0, "lBUSSY": 0, "lRST": 23, "lMISO": 19, "lMOSI": 27, "lSCK": 5, "lTCXOV": 0.0}

name: "T-beam v1.1 + oled" - The name of the board.

aADDR: 60 (0x3C in decimal) - The I2C address of the OLED display.

oSDA: 21 - The SDA pin of the OLED display.

oSCL: 22 - The SCL pin of the OLED display.

oRST: 0 - The reset pin of the OLED display.

pBut: 38 - The GPIO pin used for the user button.

led: 14 - The GPIO pin used for the main board indicator LED.

radio: 1 - The type of radio module used by the board (1 for sx127x).

lNSS: 18 - The NSS pin of the LoRa module.

lDIO0: 26 - The DIO0 pin of the LoRa module.

lDIO1: 0 - The DIO1 pin of the LoRa module.

lBUSSY: 0 - The BUSY pin of the LoRa module.

lRST: 23 - The reset pin of the LoRa module.

lMISO: 19 - The MISO pin of the SPI bus.

lMOSI: 27 - The MOSI pin of the SPI bus.

lSCK: 5 - The SCK pin of the SPI bus.

lTCXOV: 0.0f - The TCXO voltage (only used for SX126X modules).

    • Finalmente tras varios intentos se consigue cargar el firmware desde la web y se añade el template y funciona sin problemas pero parece que la figura de ruido es superior a las placas LiLygo sin GPS/ GNSS y por tanto se reciben menos paquetes
  • Posicionamiento (Posición, fecha y hora)
    • Cuando el chip GPS recibe datos y trabaja se enciende y parpadea un LED que está junto a él (el chip con la marca ubox en rojo).
      • Si no parpadea es que no se reciben datos de ningun satélite GPS, pruebe a estar un rato junto a una ventana 
      • Si parpadea y el programa no da datos es que seguramente tiene mal asignado los pines
      • Si escribe en el monitor serie (el del arduino IDE) información del tipo @@@@@@@@ compruebe que la velocidad establecida en el programa es la misma que la seleccionada
      • Hay muchos programas que dan en uno u otro formato los mismos datos básicos: tiempo (fdecha y hora) y posición, y a partir de estos también la distancia entre dos pntos y la velocidad de desplazamiento
    • Programas
      • ESP-GPS : es un pequeño tutorial que usa el porcesador ESP32-WROOM 32 (El usado en el ESP32 Basic starter kit y el modulo NEO 6M GPS así es que podemos convertirlo en un proyecto mas por menos de 5€ en aliexpress) tiene dos programas
        • ESP32-DIS Calcula la distancia entre unas coordenadas dadas en el programa y las obtendidas por el GPS.
La salida de datos es la siguiente:
17:23:06.944 -> - latitude: xx.xx
17:23:06.944 -> - longitude: xx.xx
17:23:06.944 -> - distance to London: xxxx
        • ESP32-GPS_CS que da las coordenadas, la velocidad y el tiempo (fecha y hora). Hace uso de TinyGPS++.h. Hay que sustituir los pines usados en el ejemplo

    Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 16, 17);

 por los de la placa lilygo T-beam

Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 34, 12); 

donde SERIAL_8N1 es el valor por defecto que indica 8 bits por dato, sin paridad y con un bit de parada

La salida de datos es la siguiente:

17:12:51.927 -> - latitude: xx.xx
17:12:51.927 -> - longitude: xx.xx
17:12:51.927 -> - altitude: xx.xx
17:12:51.927 -> - speed: INVALID
17:12:51.961 -> - GPS date&time: INVALID 

17:25:31.388 -> -------------------------------
17:25:31.388 -> $GPGGA,.....
17:12:40.017 -> 
17:12:41.017 -> LAT: xx.xxxxx
17:12:41.017 -> LONG: xx.xxxxxxx
17:12:41.017 -> SPEED (km/h) = 0.00
17:12:41.017 -> ALT (min)= 9.00
17:12:41.017 -> HDOP = 1.35
17:12:41.017 -> Satellites = 6
17:12:41.017 -> Time in UTC: 2000/0/0,16:12:44

 

  • Seguimiento o tracker
    • Tracker sin Wifi, ni datos
    • APRS (es una red de trackers de radioaficionados) se necesitan dos placas ESP32 Lora 433 MHz una de ellas con GPS que es la que genera el tracker que envía a la que hace de iGate que es la que lo retransmite a 
    • APRS Tracker
    • APRS iGate
    • ESP32APRS LoRa Simple Project is a Internet Gateway(IGate)/Dital Repeater(DiGi)/Tracker/Weather(WX)/Telemetry(TLM) with LoRa RF network in that is implemented for Espressif ESP32,ESP32-S3,ESP32C3 processor support.

Problemas encontrados
  • Por un tema de diseño en general o de esta placa en particular necesita estar al aire libre bastante tiempo para comenzar a recibir satélites GPS ("FIX sat") una posible solución es resetear el firmware (cosa que yo no he hecho por el momento)
  • Finalmente se decide devolver la placa pues resulta poco práctico para hacer pruebas en laboratorio y es insegura  para su despliegue, por esta aleatoriedad en la recepción de señales de GPS y se opta por seguir con una Wireless Tracker Heltec que es más económica y tiene mejores prestaciones

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