Polveri sottili e PM10 con il Novafitness sds018 – parte 2

di Marco Lombardi

sono appena state pubblicate dall’ARPA Lazio le medie giornaliere riferite al 28 gennaio 2018. Il valore rilevato presso la centralina Guido è pari a 33 ug/m3. Il nostro prototipo basato sul sensore Novafitness sds018 si è dimostrato all’altezza della sfida e infatti la nostra media rilevata nell’arco di circa sette ore è la stessa: 33 ug/m3. Il file CSV contenente le nostre rilevazioni è liberamente scaricabile e consultabile A seguire troviamo la schermata del sito ufficiale ARPALAZIO.

Polveri sottili e PM10 con il Novafitness sds018 – parte 1

di Marco Lombardi

Giovedì 25 gennaio ci è stato consegnato il sensore di polveri sottili Novafitness sds018, questo è in grado di rilevare mediante raggio laser il numero di particelle di polveri sottili presenti nell’aria, restituendo il valore pm2.5 e pm10. Quest’ultimo è quello che ci interessa rilevare per il progetto A.S.Co. – Air Self Control.

Il codice utilizzato per le prime prove ci è stato indicato dal venditore stesso ed è scaricabile da GitHub. Il codice è stato poi adattato e integrato nel core di AULAPULITA v0.2a dando così vita al firmware A.S.Co. pm10 v0.3, eseguito su board Wemos D1 ESP8266.

A Roma, città in cui vivo, le centraline dell’ARPA sono 25 e per confrontare i risultati ottenuti dal sensore sds018 ho deciso di affiancare il nostro prototipo ad una delle centralina della Regione così da verificare l’attendibilità della media dei risultati acquisiti da noi con quelli ufficiali pubblicati giornalmente.

Domani nei commenti pubblicheró i dati ufficiali e i dati da noi acquisiti ad un centinaio di metri da una delle centraline ufficiale ARPA (centralina Guido). Le prospettive di un buon risultato ci sono, poiché già a qualche chilometro di distanza da due centraline (centralina Malagrotta e centralina Guido) i risultati ottenuti sono simili.

Il riferimento temporale nei progetti di acquisizione dati

di Marco Lombardi

Abbiamo visto, sin dal primo articolo dedicato ad AULAPULITA, l’utilizzo di un orologio hardware fornito di batteria tampone da 3v. Molti di voi, durante questi mesi, mi hanno chiesto qual’è il modo più corretto per gestire in modo automatico il cambio di orario con il passaggio dall’ora legale a quella solare e viceversa senza dover riprogrammare l’orologio hardware collegandolo ad un PC attraverso Arduino.

Occorre fare una premessa: qualsiasi orologio hardware che acquistiamo da utilizzare con Arduino e simili è sprovvisto di orario, questo infatti va impostato e salvato come quando acquistiamo un orologio nuovo. Nei miei progetti ho sempre utilizzato il DS1307 della Maxim, ad oggi il più economico e facilmente reperibile sul mercato.

A questo punto è importante sapere quale orario va salvato alla prima accensione sulla memoria interna dell’orologio hardware. L’orario che va salvato è quello relativo al fuso orario di riferimento (UTC),  l’unico che può essere elaborato in maniera automatica dagli elaboratori elettronici per il passaggio dall’ora legale (DST, in inglese: daylight saving time)  a quella solare o standard che coincide con il fuso orario del meridiano riferimento (in Italia UTC+1) e viceversa.

In tre passaggi le accortezze da seguire prima di caricare lo sketch che memorizza l’orario sulla memoria dell’orologio hardware:

  1. Verifichiamo su Google l’orario corrente nel sistema di riferimento universale UTC. Basterà digitare sulla barra di ricerca le parole “utc time” e ci verrà restituito l’orario al netto del fuso orario e dell’ora legale o solare in vigore.
  2. A questo punto conosciamo l’orario di riferimento (UTC) che utilizza tutto il globo per elaborare il fuso orario e l’orario legale se questo è in vigore. Verifichiamo l’ora sul nostro PC e modifichiamola con quella restituita dalla rete. I minuti e i secondi vanno invece lasciati inalterati. A questo punto anche il nostro PC ha come orario quello di riferimento (UTC).
  3. Scegliamo lo sketch che più ci piace per caricare l’orario sull’orologio hardware, personalmente utilizzo lo sketch SetTime presente nella libreria DS1307RTC (per orologi basati su integrato della Maxim o suoi cloni), questa è disponibile per il download su GitHub ed è installabile anche direttamente dall’IDE di Arduino. Possiamo verificare l’orario salvato con lo sketch ReadTest che è parte della stessa libreria.

Una volta caricato lo sketch SetTime sull’Arduino ricordiamoci di rimettere l’ora corretta sul PC altrimenti continueremo a lavorare con l’orario UTC.

A questo punto nei nostri progetti possiamo prevedere l’uso di una libreria che automaticamente sposterà le lancette (virtuali) dell’orologio di un’ora quando entrerà in vigore l’ora legale o solare.

Da qualche tempo a questo scopo utilizzo la libreria Timezone. Questa è disponibile per il download su GitHub ed è installabile anche direttamente dall’IDE di Arduino. Tra gli esempi troveremo lo sketch HardwareRTC che possiamo usare come base per i nostri progetti.

Le variabili da impostare per comunicare alla libreria quando intervenire sull’orario sono due, nella prima indicheremo quando entrerà in vigore l’ora legale (DST) e nella seconda indicheremo invece quando tornerà in vigore l’ora solare o standard (ricordiamo che l’ora standard in Italia coincide con il riferimento UTC aumentato di una ora, così come definito dalle norme internazionali in materia di orari e fusi).

TimeChangeRule myDST = {“DST”, Last, Sun, Mar, 3, 120};    //Daylight time = UTC +2 hours

TimeChangeRule mySTD = {“STD”, Last, Sun, Oct, 2, 60};     //Standard time = UTC +1 hours

Se volete approfondire gli aspetti tecnici e legali legati agli orari nel mondo vi invito a consultare su Wikipedia le voci Tempo coordinato universaleOra legale, queste due voci mi sono state molto utili per comprendere lo stato dell’arte sui riferimenti temporali nelle acquisizioni di dati.

In conclusione un ulteriore appunto per gli smanettoni. La libreria Timezone può essere utilizzata su qualsiasi board che supporti l’uso del protocollo I2C e anche su Wemos o board basate su ESP8266. Su quest’ultime, dotate di connessione ad internet è possibile utilizzare in alternativa l’orologio software basato sul protocollo NTP e anche questo per definizione lavora solamente con l’orario di riferimento UTC ma è allo stesso modo manipolabile in automatico attraverso la libreria sopra citata.