Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 20
  1. #1
    Bava di vento
    Data Registrazione
    06/06/20
    Località
    Premariacco (UD)
    Età
    30
    Messaggi
    120
    Menzionato
    1 Post(s)

    Predefinito Davis VP2 LoRaWAN con Arduino

    Buongiorno a tutti,
    in questo topic voglio descrivervi il progetto a cui sto pensando da qualche mese, ma che da qualche giorno è diventato operativo.
    Grazie a questo forum e grazie a bufera87 ho conosciuto la tecnologia LoRaWAN e ne sono rimasto totalmente affascinato. Basso bitrate, bassi consumi, lunghe distanze.
    L'idea che si potesse collegare sensori in rete lontano da WiFi e senza connessione 2G/3G/4G mi sembrava rivoluzionaria. Poi scopro che per certe applicazioni le batterie durano anni: sempre più sorprendente. Poi, una volta capito il funzionamento di questa tecnologia, scopro The Things Network: una rete globale, open e decentralizzata che conta migliaia di gateway in tutto il mondo. Fantastico! Se possedessi un dispositivo LoRaWAN (che si appoggiasse a TTN) e se fossi sotto copertura di un gateway TTN pubblico/privato, il dispositivo sarebbe automaticamente connesso alla rete. E la forza di questa rete è data dalla community che la sostiene. Un po' come MeteoNetwork vero?
    Bene, mi sono promesso di provare almeno una volta questa tecnologia ed eccomi qua a raccontarvi la prima fase del mio nuovo progetto.

    Sono in possesso di una Davis VP2 cablata che recentemente ho pensionato a favore di sensoristica Ecowitt. Pensavo di tenerla come stazione di raffronto ma il suo essere cablata mi impediva di posizionarla in un luogo idoneo. Perché non renderla wireless, magari con tecnologia LoRaWAN?

    Mi sono informato sulla fattibilità del progetto e dopo un sacco di ricerche in rete ho capito cosa mi sarebbe servito.

    Mi sono munito di:
    • Seeeduino LoRaWAN: una board di sviluppo simile ad Arduino, con tecnologia LoRaWAN incorporata. Il fatto di basarsi su Arduino mi permette di attingere a tonnellate di documentazione in rete. La scheda oltretutto ha 4 porte Grove che mi permettono di collegarci il...…
    • Sensore di pressione atmosferica BMP280. Cosa mi serve? In questo progetto viene esclusa del tutto la console Davis. Senza console Davis non ho informazioni sulla pressione atmosferica. Come mai escludo la console? Perché mi collego direttamente alla ISS cablata con una...…
    • Arduino shield RS485. Questa shield mi permette di alimentare la ISS Davis e di ricevere i dati raccolti dai sensori. Si tratta di dati grezzi, non c'è alcuna aggregazione e spesso questi valori vanno interpretati. Prendo ad esempio i dati del pluviometro: come faccio a definire la pioggia giornaliera se l'Arduino non sa nemmeno cos'è un giorno? Queste elaborazioni tradizionalmente vengono fatte dalla console Davis, nel mio caso verranno fatte a valle di questo sistema hardware.
    • Un gateway LoRaWAN. Anche se la mia zona fosse coperta da un altro gateway, per questo progetto volevo usare un gateway sotto mio controllo. Faccio tutto questo a fini didattici, per conoscere LoRaWAN e The Things Network.
      Ho scelto un Dragino LPS8, open source anch'esso, personalizzabile e configurabile a piacimento.


    Per programmare l'Arduino mi sono ispirato a:
    Message Protocol . dekay/DavisRFM69 Wiki . GitHub
    Direct connection to wired Davis ISS
    Seeeduino LoRaWAN with GPS — TUM-GIS Sensor Nodes v0.0.1 documentation

    Per quanto riguarda la parte applicativa, sia il gateway sia lapplicazione si appoggiano a The Things Stack v3, la versione di TTN che sta pian piano sostituendo TTN v2.

    La parte software è quella più acerba. Vi scrivo nel momento in cui sono riuscito per la prima volta a trasmettere, ricevere e decodificare i dati della sensoristica. Ma niente di più.

    I prossimi obiettivi, in ordine di priorità, sono:
    • Esportare i dati da The Things Stack mediante le apposite Integrations, per renderli fruibili sul web.
    • Ottimizzare il codice Arduino e permettere l'aggregazione di dati. Esempio: se trasmetto i dati ogni 5 minuti mi piacerebbe trasmettere massime/minime/medie di quei 5 minuti.
    • Uscire dal laboratorio! Ora è tutto sulla mia scrivania. Chissà come si comporta il sistema sul campo? Come lo alimenterò?


    Proprio a proposito di alimentazione c'è una considerazione da fare. Con questo progetto non riuscirò a sfruttare uno dei due vantaggi di LoRaWAN: il basso consumo energetico.
    Nei progetti LoRaWAN tradizionali c'è molta attenzione al consumo energetico: le schede giacciono "ibernate" in sleep mode per gran parte del tempo, si risvegliano solo per raccogliere i dati dai sensori ed in seguito trasmetterli via radio. Si fa attenzione al consumo del singolo led e del singolo pin. Nel mio caso invece la ISS Davis viene costantemente alimentata altrimenti non riuscirei a raccogliere informazioni riguardo a raffiche, precipitazioni e rain rate.

    Al momento non c'è altro da dire se non che vi terrò aggiornati in caso di evoluzioni (positive e negative) del progetto.


    Chiudo il post con alcune immagini

    La ISS VP2 collegata al Seeeduino
    Davis VP2 LoRaWAN con Arduino-mtoso-vp2-lorawan-iss.jpg

    Il Seeeduino in dettaglio
    Davis VP2 LoRaWAN con Arduino-mtoso-vp2-lorawan-seeeduino.jpg

    Il gateway LoRaWAN Dragino LPS8
    Davis VP2 LoRaWAN con Arduino-mtoso-vp2-lorawan-draginolps8.jpg

    I dati raccolti dal seeeduino visualizzati mediante interfaccia seriale USB
    Davis VP2 LoRaWAN con Arduino-mtoso-vp2-lorawan-serialoutput.jpg

    I dati raccolti dal Seeeduino trasmessi via radio al gateway e decodificati in The Things Stack v3
    Davis VP2 LoRaWAN con Arduino-mtoso-vp2-lorawan-ttndata.jpg
    Ultima modifica di m.toso; 11/05/2021 alle 07:35

  2. #2
    Vento forte
    Data Registrazione
    18/09/19
    Località
    Catania
    Messaggi
    3,702
    Menzionato
    115 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Bello!
    Si nota la mancanza di un RTC, cioè di un orologio. Puoi aggiungere un modulo DS3231, il più stabile fra quelli economici. La scheda più comune va leggermente modificata, è prevista per essere usata con una batteria ricaricabile (ma con un circuito di dubbia funzionalità) ma te lo vendono con una non ricaricabile. I rete trovi parecchie informazioni sulla modifica. I pratica vanno tolti alcuni componenti anche per consumare meno.
    L'altra soluzione è l'uso di un modulo GPS che ormai costa sui 2 euro. E prendi il tempo da li.
    Il BMP280 è un buon sensore, avrebbe anche la temperatura ma non mi ricordo se sovrastima come fa con il BME280. Alcuni mi hanno detto che se usato in Forced mode mandandolo poi in sleep la misura diventa accurata. Curiosamente il BMP180 non ha questo problema.
    La ISS cablata non dovrebbe consumare tanto, la versione wireless non consuma tanto.
    EdiT: vedo che la Seeduino ha già il GPS!

    Edit2: aggiungi i costi, se puoi, e dove acquistare.

  3. #3
    Bava di vento
    Data Registrazione
    06/06/20
    Località
    Premariacco (UD)
    Età
    30
    Messaggi
    120
    Menzionato
    1 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Citazione Originariamente Scritto da zoomx Visualizza Messaggio
    Si nota la mancanza di un RTC, cioè di un orologio. Puoi aggiungere un modulo DS3231, il più stabile fra quelli economici. La scheda più comune va leggermente modificata, è prevista per essere usata con una batteria ricaricabile (ma con un circuito di dubbia funzionalità) ma te lo vendono con una non ricaricabile. I rete trovi parecchie informazioni sulla modifica. I pratica vanno tolti alcuni componenti anche per consumare meno.
    L'altra soluzione è l'uso di un modulo GPS che ormai costa sui 2 euro. E prendi il tempo da li.

    EdiT: vedo che la Seeduino ha già il GPS!
    Sì, ti confermo la presenza del GPS che al momento però non sto utilizzando.
    Nella mia idea iniziale non pensavo di inserire il concetto di tempo nell'Arduino. Pensavo di fargli solamente inviare i dati grezzi ogni tot trasmissioni della ISS.
    Il concetto di tempo lo avrei inserito a valle, nell'applicativo che raccoglierà i dati grezzi. Ma è solo un'ipotesi, non sono ancora entrato mentalmente nella questione.
    In ogni caso grazie, non avevo proprio pensato all'utilizzo del GPS in questa maniera.


    Citazione Originariamente Scritto da zoomx Visualizza Messaggio
    Il BMP280 è un buon sensore, avrebbe anche la temperatura ma non mi ricordo se sovrastima come fa con il BME280. Alcuni mi hanno detto che se usato in Forced mode mandandolo poi in sleep la misura diventa accurata. Curiosamente il BMP180 non ha questo problema.
    Ti confermo la presenza della temperatura e ti confermo la sovrastima. Se guardi l'ultima immagine, mentre la outtemp (sensore Davis) è 20.71°C, l'inttemp del BMP280 segna 23,78°C e sono entrambi sullo stesso tavolo.
    Pensavo di utilizzare questo sensore di temperatura per il monitoraggio della temperatura all'interno del "box" che ospiterà l'Arduino. Anche se non fosse preciso non sarebbe un problema.


    Citazione Originariamente Scritto da zoomx Visualizza Messaggio
    Edit2: aggiungi i costi, se puoi, e dove acquistare.
    Seeeduino LoRaWAN GPS
    Seeeduino LoRaWAN W/GPS €69
    oppure
    102010129 | Kit di sviluppo RF Seeed Studio Development Board, 915MHz | RS Components €55

    BMP280
    Grove - Barometer Sensor (BMP280) €11

    Dragino LPS8
    LPS8 Indoor LoRaWAN Gateway €120
    Non è per forza necessario. Ho appena scoperto che la mia zona era coperta da un altro gateway connesso a TTN.

    Arduino RS485 Shield
    https://www.amazon.it/Shield-Arduino...0557919&sr=8-5 €33
    Io possedevo già questa, ma se avessi saputo che acquistavo il seeeduino probabilmente avrei valutato un'alternativa Grove
    https://it.rs-online.com/web/p/strum...xoC0IkQAvD_BwE
    Ultima modifica di m.toso; 09/05/2021 alle 12:19

  4. #4
    Bava di vento
    Data Registrazione
    06/06/20
    Località
    Premariacco (UD)
    Età
    30
    Messaggi
    120
    Menzionato
    1 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Alcuni aggiornamenti.
    Dal punto di vista hardware sembra funzionare tutto correttamente a parte considerazioni precedenti sul bmp280.
    Sto valutando come gestire l'alimentazione sul campo. La soluzione che mi piacerebbe percorrere è batteria LiPo 3,7 volt (per cui il Seeeduino è già predisposto) + un piccolo pannello solare.

    La questione software invece è quella più delicata.
    Sono di fondamentale importanza le seguenti domande:
    1) come voglio usare i dati?
    2) come voglio visualizzarli?
    3) quanti ne posso trasmettere?
    A seconda delle risposte che darò a queste tre domande potrò decidere che cosa far calcolare e trasmettere all'Arduino.

    Ho sin da subito pensato ad un intervallo di trasmissione di 10 minuti. Inizialmente pensavo di calcolare e trasmettere quanti più dati possibili: per ciascun misurando (esclusa pioggia e raffiche) media/minima/massima/ultima puntuale. Poi mi sono dovuto scontrare con le tre domande precedenti.

    1) Come voglio usare i dati?
    Il fine del progetto è didattico-ludico. Non devo caricare i dati in nessun network autorevole e non devo fare confronti fra schermature solari, devo solamente descrivere quanto più fedelmente le condizioni che si sono verificate nell'intervallo di trasmissione. Sono un po' le stesse considerazioni di bufera87 per il suo progetto IoT LoRaWAN.

    2) Come voglio visualizzare i dati?
    Per il momento non ho in programma di sviluppare software ad hoc per la memorizzazione e la visualizzazione di dati. Voglio affidarmi a soluzioni già pronte, gratuite e in cloud. E qui entrano in gioco Weather Underground o Weathercloud.
    Upload ogni 10 minuti dei dati aggregati degli ultimi 10 minuti. Unico problema? La quasi totale assenza di documentazione ufficiale sulle loro API per upload dei dati. Sono riuscito a trovare qualcosa solo su Weather Underground.

    3) Quanti dati posso trasmettere?
    Il payload di dati da trasmettere tramite LoRaWAN è limitato e le regole di The Things Network restringono ulteriormente il campo d'azione. La "Fair access policy" di TTN impone massimo 30 secondi al giorno di trasmissione dati. Per capire se si rientra o meno tocca fare un calcolo con l'airtime calculator. Per trasmettere tutta l'ampia gamma di dati menzionati in precedenza, rispettando le regole di TTN, dovrei rinunciare alla capacità di trasmettere efficacemente a lunga distanza.

    L'idea è quindi di raccogliere, trasmettere e pubblicare:
    - Temperatura media
    - Umidità media
    - Pioggia (ultimo valore puntuale raccolto)
    - Rain rate medio ( Pioggia misurata negli ultimi 10 minuti / 10 minuti )
    - Vento medio
    - Direzione vento media (come faccio la media? La media aritmetica non mi sembra il massimo, qui si parla di una media vettoriale su cui devo informarmi)
    - Raffica (ultimo valore puntuale raccolto, la ISS propone già la raffica degli ultimi 10 minuti)
    - Pressione media

    accettando che vengano perse informazioni sui massimi e minimi.
    Ultima modifica di m.toso; 12/05/2021 alle 15:16

  5. #5
    Tempesta violenta L'avatar di bufera87
    Data Registrazione
    19/09/05
    Località
    Vittorio V.(TV) 110m
    Età
    33
    Messaggi
    12,528
    Menzionato
    8 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Auzz ho visto solo ora questa interessantissima discussione, la seguirò volentieri e mi fa piacere che... da cosa nasca cosa
    Tecnico Meteorologo certificato (WMO 1083 – registro DEKRA DTC-TMT-001-17 secondo UNI CEI EN ISO/IEC 17024:2012). www.meteoravanel.it (webcam realtime e dati meteo da oltre 15 punti di osservazione e monitoraggio a Vittorio Veneto e dintorni).

  6. #6
    Tempesta violenta L'avatar di bufera87
    Data Registrazione
    19/09/05
    Località
    Vittorio V.(TV) 110m
    Età
    33
    Messaggi
    12,528
    Menzionato
    8 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Posso dire, visto che anche io sono ancora in fase di sviluppo, che conviene trasmettere meno dati possibili: lascia che sia il codice/il software a creare massime/minime, sommatorie (pluviometriche ad esempio) e così eviti di dover trasmettere gli estremi.
    Tecnico Meteorologo certificato (WMO 1083 – registro DEKRA DTC-TMT-001-17 secondo UNI CEI EN ISO/IEC 17024:2012). www.meteoravanel.it (webcam realtime e dati meteo da oltre 15 punti di osservazione e monitoraggio a Vittorio Veneto e dintorni).

  7. #7
    Tempesta violenta L'avatar di bufera87
    Data Registrazione
    19/09/05
    Località
    Vittorio V.(TV) 110m
    Età
    33
    Messaggi
    12,528
    Menzionato
    8 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    PS: qualche tempo fa ho preso contatto anche con questa azienda che ha sviluppato una soluzione specifica per le Davis cablate. Si tratta ovviamente di un sistema proprietario e "ready-to-use" . Se può servire come riferimento... MCF-LW06DAVK - MCF88
    Tecnico Meteorologo certificato (WMO 1083 – registro DEKRA DTC-TMT-001-17 secondo UNI CEI EN ISO/IEC 17024:2012). www.meteoravanel.it (webcam realtime e dati meteo da oltre 15 punti di osservazione e monitoraggio a Vittorio Veneto e dintorni).

  8. #8
    Vento forte
    Data Registrazione
    18/09/19
    Località
    Catania
    Messaggi
    3,702
    Menzionato
    115 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Problema BMP280.
    Ne ho parlato con questo tizio qua
    Cold frame monitoring with an ESP8266 WebServer – Arduino, ESP8266, ESP32 & Raspberry Pi stuff
    il quale sostiene che usando la forced mode (vedi nella libreria se c'è un esempio) si possa evitare la sovrastima della temperatura. Io credo di averla usata e di aver ottenuto lo stesso la sovrastima. Se ho tempo sperimenterò daccapo.

    Wunderground e Weathercloud
    Per il primo ci dovrebbero essere parecchi esempi per Arduino e per ESP8266. Seccatura, devi convertire nel sistema imperiale.
    Weathercloud in effetti non è così diffuso ma un esempio l'avevo trovato tempo fa
    ESP32 Weathercloud Weather Station : 16 Steps (with Pictures) - Instructables
    Io però i son fatto una soluzione casalinga. Butto i dati di tutti i sensori in un database InfluxDb e quindi li visualizzo con Grafana o Chronograph. E' un altro mondo. Puoi avere roba come questa
    Davis VP2 LoRaWAN con Arduino-screenshot_2021-05-12-temperatures-grafana.jpg
    senza doverti arrabattare con Excel o altri fogli di calcolo, sempre in aggiornamento.
    Oppure una Dashboard classica
    Davis VP2 LoRaWAN con Arduino-screenshot_2021-05-12-local-weather-grafana.jpg
    O questo per l'umidità del suolo
    Davis VP2 LoRaWAN con Arduino-screenshot_2021-05-12-watering-grafana.jpg
    Puoi risparmiarti un po' di lavoro usando il FOSHKplugin nato come plugin per Loxberry in realtà va anche da solo
    Tu mandi i dati a lui, io uso il formato Ecowitt (ahimé anche questo usa il sistema imperiale!), e poi lui me li manda in InfluxDb, Weathercloud, Wunderground e altri servizi.

    Sui quantità di dati da trasmettere mi hai messo una pulce all'orecchio.
    30 secondi al giorno, se trasmetto ogni 5 minuti vengono 100ms alla volta.
    Mi son fatto un conto, con 100byte e larghezza di banda di 250KHz la trasmissione è di 95ms. In 100 byte ci faccio entrare un po' di dati se trasmetto in puro binario. Stavo anche pensando ad una forma di compressione.

  9. #9
    Bava di vento
    Data Registrazione
    06/06/20
    Località
    Premariacco (UD)
    Età
    30
    Messaggi
    120
    Menzionato
    1 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Citazione Originariamente Scritto da bufera87 Visualizza Messaggio
    Posso dire, visto che anche io sono ancora in fase di sviluppo, che conviene trasmettere meno dati possibili: lascia che sia il codice/il software a creare massime/minime, sommatorie (pluviometriche ad esempio) e così eviti di dover trasmettere gli estremi.
    Ti do pienamente ragione. Massime/minime giornaliere/mensili/annuali devono essere fatte a valle della trasmissione.
    Il mio ragionamento si concentrava sui dati che raccolgo in quei 10 minuti (intervallo di trasmissione). In 10 minuti raccolgo n1 misurazioni del vento, n2 misurazioni della temperatura, n3 misurazioni dell'umidità, etc. Quali trasmetto alla fine? La conclusione alla quale sono giunto è questa...

    Citazione Originariamente Scritto da m.toso Visualizza Messaggio
    L'idea è quindi di raccogliere, trasmettere e pubblicare:
    - Temperatura media
    - Umidità media
    - Pioggia (ultimo valore puntuale raccolto)
    - Rain rate medio ( Pioggia misurata negli ultimi 10 minuti / 10 minuti )
    - Vento medio
    - Direzione vento media (come faccio la media? La media aritmetica non mi sembra il massimo, qui si parla di una media vettoriale su cui devo informarmi)
    - Raffica (ultimo valore puntuale raccolto, la ISS propone già la raffica degli ultimi 10 minuti)
    - Pressione media
    che non è niente di particolarmente originale. E' quello che fa WeeWX quando memorizza i dati storici nel suo database (prendo ad esempio WeeWX perché ci ho dimestichezza).


    Citazione Originariamente Scritto da bufera87 Visualizza Messaggio
    PS: qualche tempo fa ho preso contatto anche con questa azienda che ha sviluppato una soluzione specifica per le Davis cablate. Si tratta ovviamente di un sistema proprietario e "ready-to-use" . Se può servire come riferimento... MCF-LW06DAVK - MCF88
    Buono a sapersi! Ho così un nuovo spunto per pannello solare e batteria
    Ultima modifica di m.toso; 12/05/2021 alle 21:12

  10. #10
    Bava di vento
    Data Registrazione
    06/06/20
    Località
    Premariacco (UD)
    Età
    30
    Messaggi
    120
    Menzionato
    1 Post(s)

    Predefinito Re: Davis VP2 LoRaWAN con Arduino

    Citazione Originariamente Scritto da zoomx Visualizza Messaggio
    Io però i son fatto una soluzione casalinga. Butto i dati di tutti i sensori in un database InfluxDb e quindi li visualizzo con Grafana o Chronograph. E' un altro mondo.
    Veramente lodevole la parte del grafico. Ho paura però di buttare troppa carne sul fuoco! Questo è un vero e proprio nuovo progetto a sé stante!


    Citazione Originariamente Scritto da zoomx Visualizza Messaggio
    Problema BMP280.
    Ne ho parlato con questo tizio qua
    Cold frame monitoring with an ESP8266 WebServer – Arduino, ESP8266, ESP32 & Raspberry Pi stuff
    il quale sostiene che usando la forced mode (vedi nella libreria se c'è un esempio) si possa evitare la sovrastima della temperatura. Io credo di averla usata e di aver ottenuto lo stesso la sovrastima. Se ho tempo sperimenterò daccapo.
    Non sono un elettronico ma cerco di arrangiarmi con le conoscenze raccolte qua e là. Mi informerò su questa forced mode, mi pare di aver letto qualcosa a riguardo mentre mi informavo su cosa acquistare.
    In ogni caso ha un comportamento stranissimo: per alimentare le porte Grove devo passare un "digitalWrite(38, HIGH)" nello sketch di Arduino. Se non lo faccio, il sensore di temperatura viene comunque alimentato (stranissimo) ed ho temperature attendibili e pressione molto sottostimata. Se lo faccio invece ho pressione attendibile e temperatura sovrastimata. Come mai funziona anche se non alimento le porte Grove?! Mah.

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •