ESP32 LoRa for dummys - TinyGS: Application Programming Interface (API)

Para probar las API de TinyGs puede usar su navegador, pero encontrará que es mas práctico usar cURL un navegador orientado a linea de comandos  (terminal), versiones compiladas apra la mayoria de sistemas operativos las encontrará en static-curl

Para probar la instalación de cURL puede ejecutar curl --help' o 'curl --manual'


Vamos a ver unos cuantos comandos del API de TinyGS

https://api.tinygs.com/v1/stations?

Lista todas las estaciones TinyGS  con e siguiente formato (observe que el userID no tiene nada que ver con su usuariod e acceso a TinyGS

{
    "name": "MalvaRosa",
    "userId": 5343680049,
    "autoTune": 433,
    "confirmedPackets": 953,
    "lastSeen": 1730394223267,
    "location": [39.48, -0.33],
    "satellite": "Tianqi",
    "status": 1,
    "telemetryPackets": 808,
    "test": false,
    "version": 2403242,
    "lastPacketTime": 1730387686501
  }, 

https://api.tinygs.com/v1/stations?userId=5343680049

Devuelve todas las estaciones de un usuario

[
  {
    "name": "MalvaRosa",
    "userId": 5343680049,
    "autoTune": 433,
    "confirmedPackets": 953,
    "lastSeen": 1730395183291,
    "location": [39.48, -0.33],
    "satellite": "Tianqi",
    "status": 1,
    "telemetryPackets": 808,
    "test": false,
    "version": 2403242,
    "cnt_pckt_conf_433_LoRa": 718,
    "cnt_pckt_tele_433_LoRa": 691,
    "lastPacketTime": 1730387686501,
    "cnt_pckt_conf_137_LoRa": 235,
    "cnt_pckt_tele_137_LoRa": 117
  },
  {
    "name": "MalvaRosa_Test",
    "userId": 5343680049,
    "autoTune": 900,
    "confirmedPackets": 0,
    "lastSeen": 1730395141293,
    "location": [39.48, -0.33],
    "satellite": "PY4-Unknown",
    "status": 1,
    "telemetryPackets": 0,
    "test": false,
    "version": 2403242
  }

https://api.tinygs.com/v1/station/Malvarosa@5343680049/statistics

Devuelve las estadísticas de un estación concreta TinyGS, en este caso Malvarosa@5343680049(da error)


Vamos a ver ahora algunos programas 

Crear un archivo de log o registro

El programa, escrito en Python (Necesitará tener instalado Python y un usar su IDE o un editor de progrmas para ponerlo a punto),  crea un archivo de registro para registrar los datos a intervalos regulares (Estoy probandolo)

#!/usr/bin/env python3
import requests 
import os
import time
__author__ = "Diarmuid O'Briain"
__copyright__ = "Copyright 2023, Limerick Clare Amateur Radio Club"
__licence__ = "European Union Public Licence v1.2"
__version__ = "1.0"
telegram_id = "<Telegram-ID>"
API = f"https://api.tinygs.com/v1/stations?userId={telegram_id}"
LOG = "/path/to/lora_station.log"
TIME=5 # espera 5 minutos
def access_api():
    """Acceso a la API de TinyGS"""
    # Descargando los datos de la URL
    response = requests.get(API)
    # Comprobando que la descarga ha ido bien
    if response.status_code == 200:
        # Append the data to the file
        with open(LOG, mode="a") as fh:
            fh.write(response.text)
            fh.write("\n\n")
    else:
        print(f"Error en la descarga de datos: {response.status_code}")

if __name__ == "__main__":
    while True:
        access_api()
        time.sleep(TIME*60)  # Time in seconds

 

Hay que reemplazar

    • /path/to/lora_station.log  por el directorio correcto
    •  <Telegram-ID> por el usuario correcto


Referencia:

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)

Amplificadores LNA compactos

ESP32 LoRa for dummys - Inicio