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
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 python3import requestsimport osimport 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 minutosdef access_api():"""Acceso a la API de TinyGS"""# Descargando los datos de la URLresponse = requests.get(API)# Comprobando que la descarga ha ido bienif response.status_code == 200:# Append the data to the filewith 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:
Comentarios
Publicar un comentario