Bresser Station Gateway Board
Una scheda multifunzione per il nostro sistema AMMS e altre applicazioni Lora
Indice
- Introduzione
- Il problema
- Ricerca di una possibile soluzione
- Hardware
- Software
- Assemblaggio e primi test
- Prossimi sviluppi
- Conclusioni
- Glossario (work in progress)
Introduzione
Per il nostro sistema AMMS utilizziamo una pletora di stazioni meteo commerciali, principalmente della Bresser, che implementiamo nella rete tramite i nostri gateway di cui vi abbiamo parlato mesi fa nel nostro articolo dedicato.
Il sistema, che è sempre in continua evoluzione, ha reso necessario uno sviluppo ulteriore, passando da un prototipo con fili volanti a una soluzione più professionale, con circuito stampato e componenti ordinati e già calibrati al fine di semplificare la costruzione del gateway e l’installazione del software.
Il problema
Era necessario trovare una soluzione alle complessità di montaggio del sistema BSG (Bresser Station Gateway), ancora un prototipo, ottenendo un prodotto finale che semplificasse l’installazione dei componenti e del software, e risolvendo i problemi di instabilità e ricezione dati dalle stazioni Bresser.
Ricerca di una possibile soluzione
Dopo mesi di lavoro e sviluppo abbiamo iniziato a pensare una soluzione definitiva a tutti i problemi del sistema Bresser-AMMS, trovando una serie di punti focali su cui concentrare gli sforzi, riassumibili in:
- Passaggio da Esp8266 a Esp32 per risolvere problemi relativi a stabilità del sistema e invio dati.
- Antenna standard prefatta su PCB per rimuovere all’utente finale le difficoltà di trovare la dimensione del filo corretta
- Creazione di un PCB compatto per semplificare il montaggio del sistema e migliorare l’estetica.
- Ottimizzare il software rendendolo a prova di neofita.
- Facilità di commercializzazione.
Hardware
L’hardware è stato il primo problema principale da risolvere, in quanto precedentemente consisteva in una devboard basata su ESP8266 con saldato tramite fili volanti un modulo RFM95W e una antenna che andava preparata a mano e correttamente dimensionata. Il sistema che ne usciva quindi era antiestetico e complesso da preparare, in quanto al netto delle capacità di saldare componenti elettronici avevamo a che fare col problema antenna, un terno al lotto continuo per trovare l’antenna ideale per i nostri utilizzi, ovvero captare la frequenza 868MHz delle stazioni meteo Bresser e decodificarli per poi inviarli nel nostro database AMMS.
Per ovviare a questi problemi abbiamo effettuato una serie di considerazioni in combinata ai nostri problemi software, optando cosi per l’utilizzo di moduli WEMos esp32 mini, dotati di un potente microcontrollore dual core Esp-Wroom-32, che ci consente di effettuare decodifica e invio senza interferire nella connettività di rete, e valutando la creazione di un PCB dedicato al progetto, integrando anche un connettore con porta I2C per espansioni future o personalizzazioni dell’utente.
Nasce cosi la BSG Board, acronimo che sta per Bresser Station Gateway, che nasce come risposta alle problematiche sopracitate e che ci consente di essere utilizzato anche come gateway Lora to Esp32, che consente quindi non solo di captare le frequenze radio 868MHz delle stazioni commerciali e inviarle tramite WiFi al server centrale di AMMS, ma anche di utilizzare la scheda come modem Lora, funzionalità in fase di sviluppo grazie a Giosuè e Leonardo, in ottica di implementarlo anche nelle nostre stazioni base e nei nodi meteo ove internet non arriva sfruttando cosi le onde radio.
La scheda ha leggere differenze in termini di pinout dell’ESP32 rispetto il progetto originale, vista l’implementazione dell’uscita I2C, resta comunque un progetto rapido e che abbiamo deciso di rendere opensource anche per supportare il lavoro di Matthias Prinke, autore della libreria BresserWeatherSensorReceiver da cui abbiamo preso spunto, e senza il quale il sistema AMMS sarebbe senza una importante fetta di stazioni meteo e siti di monitoraggio.
Il software
Attualmente il firmware si basa in gran parte su ciò che vi abbiamo mostrato nel precedente articolo dedicato a questo progetto, per quanto comunque sia in fase di test un programma del tutto differente che supporta anche aggiornamenti OTA e configurazione via comandi in seriale, a cura del nostro programmatore Giosuè, rimuovendo la configurazione tramite pagina WEB che rendeva il sistema instabile.
Non abbiamo ancora rilasciato nulla in quanto vogliamo assicurarci che sia stabile e senza bug che comprometterebbero il sistema AMMS, ma è possibile testarlo installandolo sulla BSG board sfruttando l’installer online presso la piattaforma ESP Launchpad al seguente link e contattandoci dal nostro canale telegram per la successiva configurazione. Quando il firmware sarà completo verrà rilasciato opensource nel nostro GitHub, in cui già trovate gli schematici della scheda.
Assemblaggio e primi test
Una volta arrivati i PCB (ordinati da JLCPCB) abbiamo iniziato il montaggio della scheda, che si conferma molto facile come pensato in fase di design del prodotto. La scheda inoltre misura solo 4cm per 5 di lato, quindi diventa facilmente nascondibile, per quanto esteticamente sia poco “impattante”. Volendo si possono ridurre ulteriormente gli ingombri saldando direttamente la devboard esp32 sulla scheda, senza usare gli header, ma in caso di errori diventa più facile rompere qualcosa, quindi non la consigliamo come cosa da fare. Suggeriamo un connettore JST-XH a 90° per avere tutti i connettori in un unico lato, connettore che si può usare per display o sensori ulteriori o per collegarci altre schede con microcontrollori in slave (rilasceremo il sorgente appositamente per favorire lo sviluppo di ulteriori applicazioni per questa scheda).
Caricato il software col Launchpad è bastato collegarsi con Arduino IDE al monitor seriale e inviare al terminale SSID della rete WiFi, la password della stessa, e il token per il nostro sistema AMMS per inserire i dati della vostra stazione. Da qui abbiamo iniziato un periodo di test durato circa un mese dove abbiamo verificato il funzionamento del sistema, la sua stabilità nel tempo, e anche la distanza di tiro della antenna su PCB, che si attesta sui 600m in ottica, un ottimo risultato contando che è la prima volta che progettiamo in casa l’antenna di un nostro dispositivo.
I test sono riusciti perfettamente, in quanto non solo funziona stabilmente senza i consueti riavvii che ci facevano perdere dati su dati, bensì abbiamo lavorato all’implementazione di ulteriori funzionalità alla scheda, OTA e MQTT in primis, il primo per gli aggiornamenti automatici del sistema, il secondo per avere compatibilità con Home Assistant senza perdere l’invio dei dati al sistema AMMS, funzioni attualmente in fase di prova ma che ci stanno regalando soddisfazioni in quanto il sistema regge nel tempo e non “perde la connessione” (per chi segue il progetto da più tempo la più grossa problematica che avevamo era la riconnessione automatica che non funzionava e quindi la stazione risultava offline per quanto a livello locale funzionasse tutto)
Prossimi sviluppi
Abbiamo in mente di trasformare questa scheda in un gateway polifunzionale, sfruttando le potenzialità del modulo RFM95W. Infatti la BSG Board si presta a fare da modem Lora, ovvero comunicare tramite radiofrequenza con un altra stazione di ricezione i dati pescati dalla stazione meteo o dai sensori/dispositivi collegati alla porta I2C
È prevista inoltre la modalità multistazione, ovvero avere più stazioni Bresser interfacciate a una singola scheda, questo permetterebbe al nostro sistema di espandersi in maniera molto più estesa anche in piccole cittadine o piazze dove sono presenti più dispositivi Bresser da interfacciare a un unico sistema (magari con l’avvento della versione 2.0 valuteremo se utilizzare una antenna esterna tramite connettore per alzare il range di ricezione)
Conclusioni
Questa scheda rappresenta il punto di svolta del nostro progetto, in quanto da adesso possiamo iniziare a lavorare su una singola scheda unica per più dispositivi (trovate un elenco dei dispositivi compatibili nel GitHub della libreria di Matthias Prinke) e che soprattutto ci consenta di adempiere a diverse necessità che da tempo bloccavano l’avanzamento del progetto, in primis un’interfacciamento stabile e duraturo tra stazione e database, e in secondo luogo un template utile per sfruttare le potenzialità LoRa del modulo RFM95W, che ci consente di pensare in futuro a più applicazioni della scheda (pensiamo ai luoghi ove internet non arriva e ci sono postazioni da interfacciare alla rete), oltre che già permettere una pletora di funzioni che semplificano tantissimo l’usabilità del sistema, quali gli aggiornamenti automatici e l’interfacciamento a Home Assistant (rendendo non indispensabile così il dispositivo radiosveglia incorporato alla stazione meteo).
One Response
bravi, bravi, bravi