Home › Forum › Le librerie ospitate nel sito › EBYTE E32 dispositivi LoRa UART sx1278/sx1276. › LoRa: Gestione Conflitti dei dati trasmessi
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 2 mesi fa da
Renzo Mischianti.
-
AutorePost
-
-
14 Marzo 2024 alle 13:41 #30039
Salve a tutti,
sono nuovo di questo forum e quindi mi presento: mi chiamo Claudio e sono un appassionato di elettronica. Mi occupo di progettare dispositivi di vario genere per me, amici e conoscenti e senza scopo di lucro … in sostanza perchè mi diverto!Sono incappato per caso nel sito di Renzo Mischianti e me ne sono innamorato.
Ho letto parecchi degli argomenti trattati che mi hanno aiutato a far crescere le mie competenze e ad aumentare la curiosità e la voglia di sperimentare.Ora vengo al mio problema:
Vorrei misurare alcuni parametri ambientali (Umidità, Temperatura e forse altro) in 4 punti diversi e distanti fra loro di alcune centinaia di metri.
Pensavo di realizzare una rete LoRa con un dispositivo “Master” posto a casa mia e connesso alla rete WiFi e distribuire altri dispositivi nei vari punti di misura.
Per ogni punto di misura vorrei usare un ESP32 connesso ad un modulo LoRa E32-868T20D (che ho già acquistato) alimentato con batteria ed un pannellino fotovoltaico.Ed ora veniamo al problema:
pensavo di lasciare ogni postazione in modalità “Sleep” ed impostare un wake up ogni ogni “tot” minuti, effettuare le misure, inviare i dati al “master” e ritornare in sleep.
Potrebbe però succedere che, lavorando in modalità asincrona, più periferiche trasmettano contemporaneamente…..che succede? Come posso gestire gli eventuali conflitti?
Esistono già delle librerie che lo fanno?
Ringrazio in anticipo chi mi potrà aiutare.GRAZIE
Claudio -
15 Marzo 2024 alle 08:21 #30078
Ciao Claudio,
benvenuto e grazie per le belle parole.Per quanto riguarda la tua soluzione non ci sono particolari problemi di gestione, gli E32 hanno un buffer che si svuota alla lettura, nel dettaglio ecco i parametri qui sotto
E32 E22 E220 Chip sx1276-sx1278 sx1262-sx1268 LLCC68 Range 3Km - 8Km 5km - 11km 5Km - 10Km Repeater No repeater Repeater No repeater Remote conf No Yes No Power consumption Best Good Very Good Sleep 4μA Sleep 496μA Sleep 6μA Transmission and receiving have similar power consumption. Message size bytes 58 240 200 Buffer size bytes 512 (ok) 1000 (good) 400 (why?????) Max air data rate (bps) 19.2k 62.5k 62.5k Encryption One standard Configurable Configurable crypt Price Less expensive More expensive Less expensive
Gli E32 con 512bytes di buffer e 58 bytes di pacchetto possono ospitare 512/58=8,8pacchetti prima della lettura che poi svuoterà il buffer.
Ma ricorda se hai due pacchetti in buffer e fai una lettura “classica” ti arriva tutto il buffer (nel caso 2 messaggi in fila), ti consiglio di usare una struttura a dimensione fissa o stringhe con delimitatori.
Ciao Renzo
Visto che sembri molto appassionato, se ti va di condividere con degli articoli su questo sito i tuoi lavori scrivimi.
-
25 Marzo 2024 alle 14:16 #30139
Ciao Renzo,
grazie per la risposta. Quanto prima spero di trovare il tempo per fare delle prove e ti aggiornerò.Cosa intendi per “lettura classica” ?
Quale esempio mi consigli di provare fra quelli presenti nella tua libreria di Arduino IDE?Grazie
claudiop.s.: per quanto riguarda la condivisione di progetti, molto volentieri.
-
25 Marzo 2024 alle 15:11 #30140
Ciao,
lettura per capircireceiveMessage
quella con delimitatorireceiveMessageUntil
, o meglio usare delle strutture.
Per gli esempi di consiglio di dare un occhio e poi scegliere quello che si adatta meglio alle tue esigenze.
Ciao RM
-
-
AutorePost
- Devi essere connesso per rispondere a questo topic.