Gestione I/O

Configurazione di periferiche GPIO

GPIO, o General Purpose Input/Output, si riferisce a un set di pin su un microcontrollore o computer a scheda singola che possono essere programmati come pin di input o output. LoRa, o Long Range, è una tecnologia di comunicazione wireless che consente la trasmissione di dati a lungo raggio con un basso consumo energetico.

Se utilizzati insieme, GPIO e LoRa possono essere utilizzati per creare un sistema di comunicazione wireless in cui i pin GPIO possono essere utilizzati per controllare la comunicazione e il trasferimento dei dati utilizzando la tecnologia LoRa. Ad esempio, è possibile utilizzare un microcontrollore con pin GPIO e un modulo LoRa per creare una rete di sensori wireless, in cui il microcontrollore legge i dati del sensore e li invia a un dispositivo centrale utilizzando il modulo LoRa.

Tieni presente che avrai bisogno di un modulo LoRa compatibile con i pin GPIO del microcontrollore e potresti anche dover scrivere codice per controllare la comunicazione e il trasferimento dei dati tra il microcontrollore e il modulo LoRa.

Attivazione GPIO su T-Beam e T-Lora con firmware Meshtastic

Per impedire l’accesso da parte di utenti non attendibili, occorre attivare un canale gpio che verrà utilizzato per l’accesso autenticato a questa funzione. Occorrerà installare questo canale sia sul nodo LOCALE che su quello REMOTO.

Collegare il dispositivo LOCALE tramite USB

Creare un canale GPIO:

meshtastic --port comXX --ch-add gpio

(per cancellare un canale già precedentemente creato)

meshtastic --port comXX --ch-index 1 --ch-del

ATTENZIONE: In caso di collegamento ad un server MQTT, verificare che i seguenti settaggi siano ancora attivi:

meshtastic --port comXX --ch-index 0 --ch-set uplink_enabled true --ch-index 0 --ch-set downlink_enabled true

Se esegui test locali, potresti anche voler modificare la velocità del canale:

meshtastic --port comXX --ch-medfast

Verificare che il canale sia stato creato e copiare il lungo “URL completo” che contiene tutti i canali su quel dispositivo:

meshtastic --port comXX --info

example: Complete URL (includes all channels): https://meshtastic.org/e/#CgMSAf1u4nP9oZfsC9-aAnDwt3xHSAk1Hls2mYeaNB4gu0aBGdwaW8SCggBOANAA0gBUBs

Connettere il dispositivo REMOTO tramite USB (o usare la funzione di amministrazione remota per raggiungerlo attraverso la rete)

Abilitare la gestione hardware remota

meshtastic --port comXX  --set remote_hardware.enabled true

(con canale gpio aggiungere –dest !xxxxxxxxx per comando remoto)

meshtastic –ch-index 0 –ch-set downlink_enabled true
meshtastic –ch-index 0 –ch-set uplink_enabled true
meshtastic –ch-index 0 –ch-set psk none

meshtastic –ch-index 1 –ch-set downlink_enabled true
meshtastic –ch-index 1 –ch-set uplink_enabled true
meshtastic –ch-index 1 –ch-set psk none


meshtastic –port com54 –set remote_hardware.enabled true

Utilizzare firmware dalla versione 2.0.21 quelle precedenti hanno qualche problema

Attenzione : Con la versione firmware 2.0.3 non occorre attivare questa funzione, con quelle successive non funziona da console, ma occorre collegarsi con l’APP al dispositivo remoto e nella sezione: “Module Setting” > Remote Hardware Config > Remote Hardware enabled >Abilitare il Servizio (ON).

Successivamente occorre configurare il dispositivo REMOTO per unire il canale gpio che creato sul dispositivo LOCALE:

meshtastic --port comXX --seturl "URL completo copiato dal quello LOCALE"

Dal dispositivo LOCALE ora si possono inviare i comandi di scrittura sui GPIO, vedere tabellina di quelli disponibili su TBEAM e TLORA

dispositivo LOCALE:

meshtastic --port comXX --gpio-wrb 2 0 --dest !25a34fb0

(id del dispositivo remoto) , setta a valore 0 il gpio 2

meshtastic --port comXX --gpio-wrb 2 1 --dest !25a34fb0

(id del dispositivo remoto) , porta a valore 1 il gpio 2

meshtastic --port comxx --gpio-rd 0x10 --dest !25a34fb0

legge il valore del gpio 4.

GPIO disponibili sui seguenti dispositivi:

TBEAM v2.0 perfettamente funzionanti: 2, 13, 14, 15, 25

TLORA V.1.1.6 perfettamente funzionanti: 2, 12, 13, 15, 19

Applicazione pratica dei GPIO da remoto

Problema: da remoto vogliamo sapere se in casa la rete a 220V è caduta o se è un problema del router internet che è andato down e non è più raggiungibile

Soluzione: con T-lora, verificare che sia effettivamente giù la 220V o sia andato giù il link internet e di conseguenza occorre un reboot del router per riattivazione la linea internet.

Dopo aver configurato correttamente la tlora con i sensori INA219 e Relè su GPIO, in caso non si riesca a contattare il router occorre verificare se la tensione e corrente sono nella norma , tramite APP controllare i valori di tensione corrente rilevati sull’alimentazione del router dal Tlora remoto collegato al router:

Corrente è su ! I valori Tensione e corrente sono a circa 12 Volt e corrente intorno a 60 mA.

Attivazione da remoto tramite di uno script su un Raspberry che è su un nodo a circa 30 km di distanza :

meshtastic --gpio-wrb 2 1 --dest \”tuo ID remoto con relè” (spegne il router)

Dopo qualche minuto si invia lo spegnimento del router:

La corrente è giù abbiamo spento il router !
Il valore di tensione è a circa 7 Volt e la corrente intorno a 0,3 mA

Andiamo ad accendere il router:

Meshtastic --gpio-wrb 2 0 --dest \”tuo ID remoto con relè” (accende router)

La corrente è su ! I valori tensione e corrente sono a circa 12 Volt e corrente intorno a 60 mA

Dopo qualche minuto , il collegamento da remoto alla linea internet è operativo !