Molto tempo fa avevo pubblicato la mia stazione completa WiFi ad energia solare e batteria qui sul forum, ma volevo condividere anche con voi la mia nuova versione della stazione meteo! In realtà avevo pubblicato già QUI la nuova stazione meteo qualche mese fa, ma ho deciso pure di condividerla qui con voi la nuova versione di cui ho già un utente che è nella rete meteo che la sta usando. QUI potete trovare la sua pagina su Linea Meteo.
Pagina Weather Cloud
Pagina Wunderground
Le novità principali sono diverse: Per prima cosa adesso può essere interfacciata anche con l'anemometro Misol più economico, quindi si può scegliere tra il Davis e questo tipo di anemometro. È adesso anche interfacciabile un sensore che misura un alto spettro di luminosità in modo tale da calcolare la radiazione solare, in più adesso usa un reale sensore UV, il che significa che l'UV non è semplicemente calcolato come succede con molte stazioni economiche ma è misurato con un sensore che misura la quantità di radiazione ultraviolette. La stazione adesso usa una batteria 18650 che è molto più facilmente reperibile. I consumi sono migliorati, usando due microcontrollori diversi, così da permettere a una scheda di riposare, mentre l'altra monitora la pioggia e il vento in tempo reale. La scheda usata adesso per il dispositivo esterno ha un accurato SOC dei livelli della batteria, molto importante per capire lo stato in sé della batteria. La batteria viene ricaricata con un pannello solare esterno a scelta. (Nel manuale si possono trovare più informazioni a riguardo)
Parlando della stazione in sé, si tratta come prima di 3 dispositivi che possono funzionare anche su reti diversi finché ci sia connessione ad Internet nella rete WiFi a cui sono connessi. Per esempio si può anche utilizzare un hotspot per connettere i dispositivi.
Queste sono in generale tutte le funzioni e novità della stazione meteo:
• Interfacciabile con Sensirion SHT30 / 31/35 come sonda o come breakout board con adattatore per cavo RJ12 incluso nel kit.
• Può essere interfacciata con un sensore aggiuntivo Sensirion SHT20 / 21/25 come sonda o come scheda breakout con scheda cavo RJ12.
• Interfacciabile con ogni pluviometro a bascula ed è possibile calibrare e impostare la risoluzione del pluviometro nelle impostazioni del database.
• Può essere interfacciata con 2 diversi tipi di anemometri, uno è un entry level del marchio Misol e l'altro è un anemometro Davis. L'anemometro può essere calibrato per una precisa direzione del vento con l'impostazione Offset nel database.
• Ha una misurazione dell'indice UV REALE e anche una misurazione della radiazione solare calcolata con un sensore Lux con range molto ampio.
• La scheda ha un accurato Stato di Carica della batteria fornito dalla scheda prototipo EZSBC ESP32, per tracciare in modo accurato se la batteria necessita di sostituzione o se è il voltaggio sia troppo basso.
• Funzionalità di ALLERTE EMAIL (italiano o inglese) come avvisi sulla batteria e resoconti orari o giornalieri delle condizioni meteorologiche.
• Dispone di allerte di temperatura e umidità massima e minima del sensore principale di temperatura e umidità e allerte dell'indice UV, nonché allerte del secondo sensore di temperatura e umidità massima e minima e allerte di intensità di pioggia e pioggia e raffica massima.
• Tempo di campionamento velocità del vento di 3 secondi, mentre l’intensità della pioggia e campionamento della pioggia è in tempo reale.
• È possibile modificare il tempo di campionamento per gli altri sensori, nonché il tempo di caricamento sul database dei dati! Scegli tra 45 secondi fino ad ore. E’ consigliabile un tempo di campionamento massimo di 1 minuto per migliorare la durata della batteria ed evitare errori di campionamento del sensore di temperatura causati dalla regolazione del sensore alla nuova temperatura dell'aria.
• I dati possono essere inviati a vari servizi meteo online tra cui: Wunderground, Weathercloud, Blynk, ThingSpeak e LineaMeteo! La frequenza di invio dei dati è inoltre selezionabile nel menu configurazione per tutti i servizi.
• Il linguaggio del Display è modificabile tra italiano o inglese e tra unità di misura di certi dati in metriche o imperiali.
Questa è la scheda del dispositivo esterno (DISPOSITIVO 1)
Ho inserito il logo di linea meteo sulla scheda
Si possono usare sonde come queste:
Oppure nel kit della stazione meteo ci sono pure delle piccole schede che permettono di usare molti altri tipi di sensori che possono essere connessi con un semplice cavo RJ12 poi.
Questa invece è la scatola, con cavo RJ12 in uscita, contenente il sensore di radiazione solare e UV che ovviamente viene connesso alla scheda sul connettore RJ12:
Per quanto riguarda il dispositivo della parte network è rimasto invariato come sulla versione precedente:
Questo andrà connesso in casa e preferibilmente vicino al router.
In più ovviamente si dispone anche di un display che adesso segnerà anche la copertura nuvolosa, visibilità e orari di alba e tramonto, radiazione solare e UV e voltaggio della batteria esterna. Ovviamente la lingua è modificabile da inglese a italiano e viceversa.
Se a qualcuno sembra che quel design sia molto da ragazze è perché la mia ragazza si è divertita a modificarlo
La batteria del display potrà essere caricata con cavo USB usando l'apposito connettore USB. Ovviamente si dispone anche di un tasto per aggiornare il display manualmente, visto che nella modalità lenta di aggiornamento si aggiorna ogni 10 minuti. Dispone anche di una modalità veloce, ma in quel caso il display potrà stare senza essere ricaricato soltanto per un giorno, quindi dovrà essere sempre connesso con il cavo se si vuole usare la modalità veloce. Nella modalità lenta invece minimo 1 mese.
Questo insomma è il kit di base di tutti i componenti della stazione meteo:
Per spiegazioni più dettagliate di come la stazione funziona e come si interfaccia lascio scaricabile il manuale della stazione meteo in allegato e QUI su GitHub potete trovare diversi files, come design delle schede e tutto il materiale riguardo la stazione meteo.
Per prezzi e info varie non esitate a contattarmi su
Grandissimo Eugenio, durante le ferie mi sa che mi ci metterò sotto per vedere che riesco a combinare.
Complimenti ancora
____________ Cricca Inox La meteorologia è una scienza inesatta, che elabora dati incompleti, con metodi discutibili per fornire previsioni inaffidabili. Andrea Baroni
Grazie mille ! Per me pure è un piacere mettere il logo di linea meteo, visto che rappresenta molto per me, la passione per la meteorologia qui si è sempre rafforzata e ho trovato sempre cose interessanti
P.S. Se qualcuno avesse qualche suggerimento da darmi, ben venga
Mi sono iscritto apposta per farti anche io i complimenti, visto che sul forum di Arduino non ne hai mai parlato o mi è sfuggito.
Se non ho capito male la parte remota comunica con la base via WiFi.
La console sembra usare un pannello e-ink.
C'è un motivo per cui usi la libreria NTP e non le funzioni incluse nel core?
Io, avendo diversi sensori e stazioni, attualmente uso InfluxDb per raccogliere i dati e Grafana oppure Chronograph per visualizzarli che girano su un RaspberryPi.
In questo modo posso avere sia la classica visualizzazione stile console ma con dati provenienti da diverse fonti, sia la visualizzazione di grafici ( e mescolare le due cose) con la possibilità di navigare fra i dati.
Sul forum di Arduino non ne avevo parlato perché a quanto so deve utilizzare principalmente Arduino come componente per stare sul forum, o sbaglio? Lo posterei pure sul forum se e' possibile
Si comunica si con il WiFi, ma direttamente con il proprio router o altre reti WiFi. Per la recezione mi sono trovato bene con l'antenna esterna sull ESP32. La console vera e propria e' il dispositivo 2 utilizzato per tutta la parte di network non il display. Il display e' solo come visualizzazione dei dati e come monitoramento della qualità dell aria e temperatura interna. Una volta che i dispositivi sono trasferiti al database dall esterno, gli altri dispositivi si possono trovare su qualsiasi altra rete WiFi con accesso a internet per riceverli.
Uso una libreria specifica NTP per un fatto semplicemente pratico di visualizzazione dell orario, per avere diversi tipi di formato di orario, niente di particolare in realtà. Mi serve questo per inviare l'ora o il timestamp in maniere differenti, per esempio qui su LineaMeteo.
Non male la tua configurazione, usando Firebase di Google posso fare una cosa simile comunque, comunicare con diverse stazioni e gestire dati e configurazioni, non a caso sto lavorando pure ad altri progetti che possono lavorare insieme volendo.
In Piu la stazione comunicando con Blynk and Thingspeak facilita la lettura dei dati, senza contare anche Wunderground, WeatherCloud e LineaMeteo
Il mio database e' strutturato cosi :
Ovviamente aprendo i dati si vedono tutte le sottocategorie, l'unica cosa e' che non vengono memorizzati li tutti i dati, usando altri sistemi per farlo, e' piu un database usato come comunicazioni e impostazioni della stazione meteo
InfluxDB funziona in modo diverso, crei il database e basta, non ci sono tabelle e non ci sono campi.
E' come se venissero creati dal database al volo in base ai dati che fornisci. PEr cui devi stare attento a come li fornisci altrimenti si confondono con gli altri.
Ti faccio un esempio.
Questo è una delle possibili dashboard, raccoglie le temperature di un WH32 Ecowitt, 6 WH31, La WMR200 e un sensore Digoo di cui non ho la console ma intercetto i dati.
Queste sono le query per prelevare i dati per alcuni dei sensori, le altre sono molto simili.
SELECT (mean("tempf")-32)*5/9 FROM "http_listener_v2" WHERE ("PASSKEY" = 'E90CD8D6B604C0567BD8C39A0FAC9987') AND $timeFilter GROUP BY time($__interval) fill(null)
SELECT mean("outTemp_C") AS "mean_outTemp_C" FROM "Weewx".."record" WHERE $timeFilter GROUP BY time($__interval) fill(null)
SELECT mean("temperature") AS "mean_temperature" FROM "meteodata"."autogen"."Digoo_DGR8H" WHERE $timeFilter GROUP BY time($__interval) fill(null)
La prima è la query per prendere i dati del WH32 di uno dei GW1000, quello che ha la PASSKEY" = 'E90CD8D6B604C0567BD8C39A0FAC9987' (che non è una password!). I dati vengono catturati da uno script trovato in rete.
La seconda quella della Oregon WMR200, dove è WeeWx a pensare di mettere i dati in InfluxDB
Le terza è un sensore che io intercetto via radio con un ESP8266 (e un modulo radio) che poi inserisce lui i dati in InfluxDB. Ogni tanto prende temperature basse fantasma, il picco visibile nel grafico.
tempf, outTemp_C, temperature sono i "campi" che contengono la temperatura che vengono comunicati al database, il primo ha anche la formula di conversione in Celsius perché il protocollo Ecowitt comunica i dati in Fahreneit
Dopo il FROM c'è il nome del database, quindi il filtraggio per data. Ognuna di queste viene tradotta in una curva del grafico. Posso manovrare sul campo di data e ora per avere il grafico quando serve a me ma quando accedi di solito mostra le ultime 12 ore a seconda di cosa scrivi nell'apposito campo in fase di design.
Il vantaggio è che se c'è un sensore in più non devo fare nulla se non stare attento alla stringa di inserimento. Ma se aggiungo semplicemente un sensore ad una stazione esistente basta che modifico la stringa di inserimento dati ed ho finito.
Un po' come su Thingspeak che se vuoi aggiungere un ulteriore dato crei il field e lo metti in coda alla stringa di inserimento.
Beh molto interessante! Funziona un po' simile a un Thingspeak database
Mi voglio informare di più a riguardo perché credo sia utile in un progetto che sto facendo di un comparatore di sensori, mi piace pure il fatto che i dati siano messi già a confronto uno sopra l altro. Quindi poi puoi pure creare diversi oggetti, per esempio per l'umidità o altri valori?
Ho trovato questa libreria ufficiale https://github.com/tobiasschuerg/InfluxDB-Client-for-Arduino
Su firebase pure il database viene creato in automatico con l'uso di diverse stringhe per creare i dati o prendere i dati, però non c'è questa visualizzazione e funziona in modo diverso il meccanismo. Lo uso piu che altro specialmente per impostare delle configurazioni da remoto per la stazione meteo senza dover riprogrammare il codice. Per esempio delle API o diversi threshold o configurazioni in base agli strumenti usati
Uso questa libreria qui https://github.com/mobizt/Firebase-ESP32
Grafana invece tu hai come visualizzazione con Raspberry no?
Oggi ho ricercato qualcosa a riguardo e ho trovato diverse informazioni, l ho pure testato con l esp per vedere come andava, non male. Mi sono gia' risposto a diverse domande da solo
Pero' sinceramente sono interessato piu sull applicazione serverless con il cloud, che su quella locale (Ho provato anche quella), cosi da non dover avere un mio server personale con raspberry, l'unico problema che i dati in quel modo vengono tenuti solo per un mese, poi si deve pagare per estenderli
Mentre Chronograph funziona solo con InfluxDb, Grafana funziona anche con Firebase, sebbene non l'abbia mai fatto.
Per cui se ti interessa il cloud puoi sperimentare da subito con il solo Grafana.
Diavolo, me l'ero dimenticata questa cosa.
Più o meno c'è prima la configurazione della sorgente di dati (configuration, data sources), dove metti il tipo di server, dov'è (locale o remoto), le eventuali password.
Poi passi a Explorer e li puoi creare la quesry in modo interattivo, ti compaiono le possibili scelte per cui non devi stare li a ricordarti qual'è il nome del "campo". Quindi la query permette la visualizzazione immediata dei dati che ottieni in grafico e, se va bene, o la copi oppure c'è il pulsante per madarla ad una dashboard.
Non lo sapevo che grafana può comunicare con firebase, hai qualche documento a riguardo?
Buono a sapersi allora ieri quando sperimentavo ho trovato pure io delle dashboard già pronte su influx, ci ho mandato giusto qualche dato per vedere come si vedeva, è interessante che si possono pure inserire scritte sui grafici. Comunque se c'è la possibilità di comunicare direttamente con grafana con firebase sarebbe interessante per me
Qui non ti so aiutare ma in rete ci dovrebbero essere parecchi esempi e magari anche sul sito di Grafana.
Devo ancora capire come funziona la dashboard per l'irrigazione e come fa a capire quando innaffio. Vedo che quando innaffio c'è un picco per cui immagino che operi sui dati alla ricerca dell'ultimo picco ma non so esattamente come fa.
Qui non ti so aiutare ma in rete ci dovrebbero essere parecchi esempi e magari anche sul sito di Grafana.
Devo ancora capire come funziona la dashboard per l'irrigazione e come fa a capire quando innaffio. Vedo che quando innaffio c'è un picco per cui immagino che operi sui dati alla ricerca dell'ultimo picco ma non so esattamente come fa.
Ho provato a cercare ma non ho trovato moltissimo, devo controllare magari sul sito.
Comunque riguardo a influx e le sue query, mi sembra di capire che analizzi si tutti i dati per capire, magari funziona nello stesso modo in cui l'ESP prende i dati da influx, non sono sicuro perché ovviamente sono nuovo a riguardo, ci sarà qualche documentazione
Non puoi inserire nuovi Argomenti Non puoi rispondere ai Messaggi Non puoi modificare i tuoi Messaggi Non puoi cancellare i tuoi Messaggi Non puoi votare nei Sondaggi Non puoi allegare files Puoi scaricare gli allegati Non puoi inserire eventi calendario