Istruzioni: AIR LAMPONE Pi
PROGETTATO PER RASPBERRY PI 400. COMPATIBILE CON RASPBERRY PI 2, 3 E 4.
V1d
INTRODUZIONE
Il MonkMakes Air Quality Kit per Raspberry Pi si basa sulla scheda del sensore di qualità dell'aria MonkMakes. Questo componente aggiuntivo per Raspberry Pi misura la qualità dell'aria in una stanza (quanto è viziata l'aria) e la temperatura. La scheda ha un display di sei LED (verde, arancione e rosso) che visualizzano la qualità dell'aria e un cicalino. Le letture della temperatura e della qualità dell'aria possono essere lette dal tuo Raspberry Pi e il cicalino e il display a LED possono anche essere controllati dal tuo Raspberry Pi.
La scheda del sensore di qualità dell'aria si collega direttamente al retro di un Raspberry Pi 400, ma può essere utilizzata anche con altri modelli di Raspberry Pi, utilizzando i cavi jumper e il modello GPIO inclusi nel kit.
PARTI
Si prega di notare che un Raspberry Pi NON è incluso in questo kit.
Prima di fare qualsiasi altra cosa, controlla che il tuo kit includa gli elementi seguenti.
QUALITÀ DELL'ARIA ED ECO2
La scheda del sensore di qualità dell'aria utilizza un sensore con un numero di parte di CCS811. Questo piccolo chip in realtà non misura il livello di CO2 (anidride carbonica) ma invece il livello di un gruppo di gas chiamati composti organici volatili (VOC). All'interno, il livello di questi gas aumenta a una velocità abbastanza simile a quella della CO2 e può quindi essere utilizzato per stimare il livello di CO2 (chiamato CO2 equivalente o eCO2).
Il livello di CO2 nell'aria che respiriamo ha un'influenza diretta sul nostro benessere. I livelli di CO2 sono di particolare interesse dal punto di vista della salute pubblica view in quanto, per dirla semplicemente, sono una misura di quanto stiamo respirando l'aria di altre persone. Noi esseri umani espiriamo CO2 e quindi, se più persone si trovano in una stanza poco ventilata, il livello di CO2 aumenterà gradualmente. Questo è più o meno lo stesso degli aerosol virali che diffondono raffreddori, influenze e Coronavirus mentre le persone espirano entrambi insieme.
Un altro impatto importante dei livelli di CO2 è sulla funzione cognitiva: quanto bene puoi pensare. Questo studio (tra molti altri) ha alcuni risultati interessanti. La seguente citazione è del National Center for Biotechnology Information negli Stati Uniti: “a 1,000 ppm di CO2, si sono verificati decrementi moderati e statisticamente significativi in sei delle nove scale delle prestazioni decisionali. A 2,500 ppm, si sono verificate riduzioni ampie e statisticamente significative in sette scale di prestazioni decisionali” Fonte: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3548274/
La tabella seguente si basa sulle informazioni di https://www.kane.co.uk/knowledge-centre/whatare-safe-levels-of-co-and-co2-in-rooms
e mostra i livelli ai quali la CO2 può diventare malsana. Le letture di CO2 sono in ppm (parti per milione).
Livello di CO2 (ppm) | Appunti |
250-400 | Concentrazione normale nell'aria ambiente. |
400-1000 | Concentrazioni tipiche degli spazi interni occupati con buon ricambio d'aria. |
1000-2000 | Reclami di sonnolenza e aria povera. |
2000-5000 | Mal di testa, sonnolenza e stagaria stantia, stantia, soffocante. Possono essere presenti anche scarsa concentrazione, perdita di attenzione, aumento della frequenza cardiaca e leggera nausea. |
5000 | Limite di esposizione sul posto di lavoro nella maggior parte dei paesi. |
>40000 | L'esposizione può portare a una grave privazione di ossigeno con conseguente danno cerebrale permanente, coma e persino la morte. |
IMPOSTAZIONE
Sia che tu stia utilizzando un Raspberry Pi 400 o un Raspberry Pi 2, 3 o 4, assicurati che il Raspberry Pi sia spento e spento prima di collegare il sensore di qualità dell'aria.
Il sensore di qualità dell'aria visualizzerà le letture di eCO2 non appena riceve alimentazione dal tuo Raspberry Pi. Quindi, una volta collegato, il display dovrebbe indicare il livello di eCO2. Imparerai quindi come interagire con la scheda, ricevere letture e controllare i LED e il buzzer da un programma Python.
Collegamento del sensore di qualità dell'aria (Raspberry Pi 400)
È molto importante non spingere il connettore in un angolo o spingerlo troppo forte, poiché potresti piegare i pin sul connettore GPIO. Quando i perni sono allineati
correttamente, dovrebbe inserirsi facilmente in posizione.Il connettore si adatta come mostrato sopra. Nota che il bordo inferiore della scheda è allineato con la parte inferiore del case del Pi 400 e il lato della scheda lascia spazio appena sufficiente per un facile accesso alla scheda micro SD. Dopo aver collegato la scheda, accendi il tuo Raspberry Pi — dovrebbero accendersi anche il LED di alimentazione (nel logo MonkMakes) e uno dei LED eCO2.
Collegamento del sensore di qualità dell'aria (Raspberry Pi 2/3/4)
Se hai un Raspberry Pi 2, 3, 4, avrai bisogno di Raspberry Leaf e di alcuni ponticelli da femmina a maschio per collegare la scheda del sensore di qualità dell'aria al tuo Raspberry Pi.
AVVERTENZA: è probabile che l'inversione dei cavi di alimentazione o il collegamento del sensore di qualità dell'aria a 5 V anziché al pin 3 V del Raspberry Pi rompa il sensore e danneggi il tuo Raspberry Pi. Quindi, controlla attentamente il cablaggio prima di accendere il tuo Raspberry Pi.
Inizia montando la foglia di lampone sui pin GPIO del tuo Raspberry Pi in modo da poter dire quale pin è quale. Il modello può adattarsi in entrambi i modi, quindi assicurati di seguire il diagramma seguente. Successivamente collegherai quattro cavi tra i pin GPIO di Raspberry Pi e la scheda Air Quality in questo modo:
Raspberry Pi Pin (come etichettato sulla Foglia) | Consiglio per la qualità dell'aria (as etichettato sul connettore) | Colore filo consigliato. |
GND (va bene qualsiasi pin contrassegnato con GND) | Terra | Nero |
3.3V | 3V | Rosso |
14TXD | PI_TXD | Arancia |
15 RXD | PI_RXD | Giallo |
Una volta che è tutto collegato, dovrebbe apparire così:Controlla attentamente il cablaggio e quindi accendi il tuo Raspberry Pi: anche il LED di alimentazione (nel logo MonkMakes) e uno dei LED dovrebbero accendersi.
Scollegare la scheda di qualità dell'aria
Prima di rimuovere la scheda da un Raspberry Pi 400.
- Spegni il Raspberry Pi.
- Stacca delicatamente la scheda dal retro del Pi 400, bordandola leggermente da ciascun lato a turno, in modo da non piegare i perni.
Se hai un Pi 2/3/4, rimuovi i cavi del ponticello dal Raspberry Pi.
Abilitazione dell'interfaccia seriale
Anche se la scheda mostrerà il livello di eCO2 senza alcuna programmazione, ciò significa che stiamo solo usando il Raspberry Pi come fonte di alimentazione. Per poter interagire con la scheda da un programma Python, sul nostro Raspberry Pi, ci sono ancora alcuni passaggi che dobbiamo compiere.
Il primo è abilitare l'interfaccia seriale sul Raspberry Pi, poiché è questa interfaccia utilizzata dalla scheda Air Quality.
Per fare ciò, seleziona Preferenze e poi Configurazione Raspberry Pi dal menu principale.
Passa alla scheda Interfacce e assicurati che la porta seriale sia abilitata e la console seriale sia disabilitata.
Scaricando l'esampi Programmi
L'exampi programmi per questo kit sono disponibili per il download da GitHub. Per recuperarli, avvia una finestra del browser sul tuo Raspberry Pi e vai a questo indirizzo:
https://github.com/monkmakes/pi_aq Scarica un archivio zip del progetto cliccando sul pulsante Codice e poi sull'opzione Scarica ZIP.Una volta terminato il download, estrai il file files dall'archivio ZIP trovando lo ZIP file nella cartella Download, quindi facendo clic con il pulsante destro del mouse su di essa e selezionando l'opzione Estrai in.
Seleziona una directory adatta (raccomanderei la tua home directory – /home/pi) ed estrai il file fileS. Questo creerà una cartella chiamata pi_aq-main. Rinominalo solo in pi_aq.
Tonnye
Dopo aver scaricato i programmi, puoi semplicemente eseguirli dalla riga di comando.
Tuttavia, è bene dare un'occhiata al files, e l'editor Thonny ci consentirà di modificare il file filese per eseguirli.
L'editor Thonny Python è preinstallato nel sistema operativo Raspberry Pi. Lo troverai nella sezione Programmazione del menu principale. Se per qualsiasi motivo non è installato sul tuo
Raspberry Pi, quindi puoi installarlo utilizzando l'opzione di menu Aggiungi/Rimuovi software nella voce Menu Preferenze.La prossima sezione spiega un po' di più su cosa sta misurando questo sensore, prima di passare all'interazione con la scheda Air Quality usando Python e Thonny.
INIZIARE
Prima di iniziare la programmazione Python, diamo un'occhiata all'Air Quality Board.L'indicatore LED di alimentazione in alto a sinistra fornisce un rapido controllo che la scheda riceva alimentazione. Al di sotto di questo c'è un chip del sensore di temperatura, e accanto a questo c'è il chip del sensore eCO2 stesso. Se lo guardi da vicino, vedrai che ha piccoli fori per far entrare e uscire l'aria. Direttamente sotto il sensore eCO2 c'è un cicalino, che puoi attivare e disattivare dai tuoi programmi. Questo è utile per fornire allarmi. La colonna di sei LED è composta (dal basso verso l'alto) da due LED verdi, due LED arancioni e due LED rossi. Questi si accendono quando viene superato il livello di eCO2 contrassegnato accanto a ciascun LED. Mostreranno il livello non appena il Raspberry Pi si accende, ma puoi anche controllarli usando Python.
Iniziamo provando alcuni esperimenti dalla riga di comando. Apri una sessione Terminale facendo clic sull'icona Terminale nella parte superiore dello schermo o sulla sezione Accessori nel menu principale. Quando il terminale si apre, digita i seguenti comandi dopo il prompt $, per cambiare directory (cd) e per aprire un file Python
Apri il modulo aq locale digitando il comando: >>> from aq import AQ
>>> Poi crea un'istanza della classe AQ digitando: >>> aq = AQ()
>>> Ora possiamo leggere il livello di CO2 digitando il comando: >>> aq.get_eco2() 434.0
>>> Quindi, in questo caso, il livello di eCO2 è di ben 434 ppm. Prendiamo la temperatura ora (in gradi Celsius). >>> aq.get_temp()
20.32 Nota: se ricevi messaggi di errore durante l'esecuzione del codice sopra, potresti non avere installato GUIZero. Istruzioni per l'installazione qui:
https://lawsie.github.io/guizero/#raspberry-pi
PROGRAMMA 1. CONTATORE ECO2
Quando esegui questo programma si aprirà una finestra simile a quella mostrata di seguito, che mostra la temperatura e il livello di eCO2. Prova a mettere il dito sul sensore di temperatura e le letture della temperatura dovrebbero aumentare. Puoi anche respirare delicatamente sul sensore eCO2 e le letture dovrebbero aumentare.Per eseguire il programma, caricare il file file 01_aq_meter.py in Thonny e quindi fare clic sul pulsante Esegui.
Ecco il codice del progetto. Il codice utilizza la libreria GUI Zero di cui puoi leggere di più nell'Appendice B.
Per consentire le letture di temperatura e luce senza interrompere il funzionamento dell'interfaccia utente, viene importata la libreria di threading. La funzione update_readings eseguirà un ciclo infinito, prendendo letture ogni mezzo secondo e aggiornando i campi nella finestra.
Il resto del codice fornisce i campi dell'interfaccia utente necessari per visualizzare la temperatura e il livello di eCO2. Questi sono disposti come una griglia, in modo che i campi siano allineati. Quindi, ogni campo è definito con un attributo di griglia che rappresenta le posizioni di colonna e riga. Quindi, il campo che visualizza il testo Temp (C) è nella colonna 0, riga 0 e il valore di temperatura corrispondente (temp_c_field) è nella colonna 1, riga 0.
PROGRAMMA 2. CONTATORE ECO2 CON ALLARME
Questo programma estende il Programma uno, utilizzando il cicalino e alcune funzioni dell'interfaccia utente, per emettere un suono di allarme e la finestra diventa rossa se viene superato un livello impostato di eCO2. Il dispositivo di scorrimento nella parte inferiore della finestra imposta il livello di eCO2 al quale il cicalino deve suonare e la finestra diventa rossa. Provare a impostare il livello di allarme un po' più alto del
livello di eCO2 attuale e quindi respirare sul sensore.Ecco il codice per il Programma 2, in gran parte molto simile al Programma 1. Le aree di interesse sono state evidenziate in grassetto.import threading
tempo di importazione
da guizero import App, Testo, Slider
da aq import AQ
aq = AQ()
app = App(titolo=”Qualità dell'aria”, larghezza=550, altezza=400, layout=”griglia”)
def aggiornamento_letture():
while True: temp_c_field.value = str(aq.get_temp()) eco2 = aq.get_eco2() eco2_field.value = str(eco2)
if eco2 > slider.value: app.bg = “rosso” app.text_color = “bianco” aq.buzzer_on()
altro: app.bg = "bianco" app.text_color = "nero" aq.buzzer_off() time.sleep(0.5)
t1 = threading.Thread(target=update_readings)
t1.start() # avvia il thread che aggiorna le letture aq.leds_automatic()
# definire l'interfaccia utente
Testo(app, testo=”Temp (C)”, griglia=[0,0], dimensione=20)
temp_c_field = Testo(app, testo=”-“, griglia=[1,0], dimensione=100)
Testo(app, testo=”eCO2 (ppm)”, griglia=[0,1], dimensione=20)
eco2_field = Testo(app, testo=”-“, griglia=[1,1], dimensione=100)
Testo(app, testo=”Allarme (ppm)”, griglia=[0,2], dimensione=20)
slider = Slider(app, inizio=300, fine=2000, larghezza=300, altezza=40, griglia=[1,2]) app.display()
Innanzitutto, dobbiamo aggiungere Slider all'elenco delle cose che importiamo da guizero.
Abbiamo anche bisogno di estendere la funzione update_readings, in modo che, oltre a visualizzare la temperatura e il livello di eCO2, controlli anche se il livello è al di sopra della soglia. Se lo è, imposta lo sfondo della finestra su rosso, il testo su bianco e attiva il cicalino. Se il livello di eCO2 è al di sotto della soglia impostata dal cursore, lo inverte e spegne il cicalino.
PROGRAMMA 3. REGISTRATORE DATI
Questo programma (03_data_logger.py) non ha un'interfaccia grafica. Ti chiede semplicemente di inserire un intervallo in secondi tra le letture, seguito dal nome di a file
in cui salvare le letture.Nell'example sopra, sampling è impostato su 5 secondi e il file si chiama readings.txt. Al termine della registrazione dei dati, CTRL-c terminerà la registrazione e chiuderà il file file.
I dati vengono salvati nello stesso formato in cui sono mostrati nell'acquisizione dello schermo sopra. Ovvero, la prima riga specifica le intestazioni, con ogni valore delimitato da un carattere TAB. Il file viene salvato nella stessa directory del programma. Dopo aver acquisito i dati, puoi quindi importarli in un foglio di calcolo (come LibreOffice) sul tuo Raspberry Pi e quindi tracciare un grafico dai dati. Se LibreOffice non è installato sul tuo Raspberry Pi, puoi installarlo utilizzando l'opzione Aggiungi/Rimuovi software nel menu Preferenze.
Apri un nuovo foglio di lavoro, scegli Apri dal file file menu e passare ai dati file vuoi guardare. Questo aprirà una finestra di dialogo di importazione (vedi la pagina successiva) che mostra
che il foglio di calcolo abbia rilevato automaticamente le colonne dei dati. Fare clic su OK per importare i dati, quindi selezionare la colonna per le letture di eCO2. È quindi possibile tracciare un grafico di queste letture selezionando Grafico dal menu Inserisci, quindi scegliendo un tipo di grafico Linea, seguito da Solo linea. Questo ti dà il grafico mostrato nella pagina successiva.
Come esperimento, prova a lasciare il programma di registrazione in esecuzione per un periodo di 24 ore per vedere come cambia il livello di eCO2 nel corso della giornata.
APPENDICE A. DOCUMENTAZIONE API
Per i programmatori seri, ecco la documentazione tecnica. Il file monkmakes_aq.py non è installato come una libreria Python completa, ma dovrebbe essere semplicemente copiato nella stessa cartella di qualsiasi altro codice che deve usarlo. aq.py
Il modulo monkmakes_aq.py è una classe che avvolge la comunicazione seriale tra il tuo Raspberry Pi e la scheda Air Quality.
Creazione di un'istanza di AQ: aq = AQ()
Lettura della lettura di eCO2
aq.get_eco2() # restituisce la lettura di eCO2 in ppm
Lettura della temperatura in gradi C
aq.get_temp() # restituisce la temperatura in gradi C
Il display a LED
aq.leds_manual() # imposta la modalità LED su manuale
aq.leds_automatic() # imposta la modalità LED su automatica
# in modo che i LED visualizzino eCO2
aq.set_led_level(livello) # livello 0-LED spenti,
# livello 1-6 LED da 1 a 6 accesi
Cicalino
aq.buzzer_on()
aq_buzzer_off()
La classe comunica con la scheda del sensore utilizzando l'interfaccia seriale del Pi. Se vuoi vedere i dettagli dell'interfaccia seriale, dai un'occhiata alla scheda tecnica di questo prodotto. Troverai un link a questo dal prodotto web pagina (http://monkmakes.com/pi_aq)
APPENDICE B. GUI ZERO
Laura Sach e Martin O'Hanlon presso The Raspberry Pi Foundation hanno creato una libreria Python (GUI Zero) che semplifica la progettazione di GUI. Questo kit usa quella libreria.
Prima di poter utilizzare la libreria, è necessario importarne i bit che si desidera utilizzare nel programma.
Per esempioample, se volessimo solo una finestra contenente un messaggio, ecco il comando import:
da guizero import App, testo
La classe App rappresenta l'applicazione stessa e ogni programma che scrivi che utilizza guizero deve importarlo. L'unica altra classe necessaria qui è Text, che viene utilizzata per visualizzare il messaggio.
Il seguente comando crea la finestra dell'applicazione, specificando un titolo e le dimensioni iniziali della finestra.
app = App(titolo = “La mia finestra”, larghezza=”400″, altezza=”300″)
Per aggiungere del testo alla finestra, possiamo usare la riga: Text(app, text=”Hello World”, size=32)
La finestra è ora pronta per la visualizzazione, ma in realtà non verrà visualizzata fino a quando il programma non esegue la riga: app.display()Puoi scoprire di più su guizero qui: https://lawsie.github.io/guizero/start/
RISOLUZIONE DEI PROBLEMI
Problema: la scheda è collegata al mio Pi 400 ma il LED di alimentazione non è acceso.
Soluzione: verificare che i pin GPIO siano allineati correttamente con la presa. Vedere pagina 4.
Problema: la scheda è collegata al mio Pi 400 ma il LED di alimentazione lampeggia rapidamente.
Soluzione: indica un problema con il sensore. A volte, tutto ciò che serve è ripristinare l'alimentazione spegnendo e riaccendendo il tuo Raspberry Pi. Se lo fai e il lampeggiamento continua, probabilmente hai una scheda difettosa, quindi per favore contatta support@monkmakes.com
Problema: ho appena collegato tutto, ma le letture di eCO2 sembrano sbagliate.
Soluzione: il tipo di sensore utilizzato nel sensore di qualità dell'aria MonkMakes inizierà a produrre letture dalla prima volta che lo colleghi. Tuttavia, le letture diventeranno più accurate con il tempo. La scheda tecnica per il sensore IC suggerisce che le letture inizieranno a diventare accurate solo dopo 20 minuti di funzionamento.
Problema: ricevo messaggi di errore quando provo a eseguire exampi programmi.
Soluzione: Nota: GUIZero potrebbe non essere installato. Si prega di seguire le istruzioni qui: https://lawsie.github.io/guizero/#raspberry-pi
Problema: sto confrontando le letture di questo sensore con un vero misuratore di CO2 e le letture sono diverse.
Soluzione: c'era da aspettarselo. Il sensore di qualità dell'aria stima la concentrazione di CO2 (questo è il significato della 'e' in eCO2) misurando il livello di composti organici volatili (COV). I veri sensori di CO2 sono molto più costosi.
APPRENDIMENTO
Programmazione ed elettronica
Se vuoi saperne di più sulla programmazione del Raspberry Pi e dell'elettronica, il progettista di questo kit (Simon Monk) ha scritto una serie di libri che potrebbero piacerti.
Puoi scoprire di più sui libri di Simon Monk su: http://simonmonk.org oppure seguilo su Twitter dove è @simonmonk2
MONACI
Per maggiori informazioni su questo kit, la home page del prodotto è qui: https://monkmakes.com/pi_aq
Oltre a questo kit, MonkMakes realizza tutti i tipi di kit e gadget per aiutarti con il tuo
progetti di maker. Scopri di più e dove acquistare su: https://www.monkmakes.com/products
Puoi anche seguire MonkMakes su Twitter@monkmakes.
Documenti / Risorse
![]() |
MONK PRODUCE il kit di qualità dell'aria per Raspberry Pi [pdf] Istruzioni Kit di qualità dell'aria per Raspberry Pi, Kit di qualità per Raspberry Pi, Kit per Raspberry Pi, Raspberry Pi, Pi |