Sommario:

AirPi - Sensore di qualità dell'aria: 8 passaggi
AirPi - Sensore di qualità dell'aria: 8 passaggi

Video: AirPi - Sensore di qualità dell'aria: 8 passaggi

Video: AirPi - Sensore di qualità dell'aria: 8 passaggi
Video: Monitoring indoor air quality with a DIY sensor 2024, Novembre
Anonim
AirPi - Sensore di qualità dell'aria
AirPi - Sensore di qualità dell'aria

Ti sei mai chiesto perché ti viene il mal di testa? E se questo fosse dovuto a una cattiva qualità dell'aria? Con questo dispositivo puoi verificare se è così. Questo dispositivo misura il valore di CO2, il valore TVOC, la temperatura e l'umidità. Puoi vedere la qualità dell'aria dal vivo sul display LCD e vedere una chiara indicazione se sta diventando pericoloso. In questo modo puoi aprire le finestre in tempo.

Se inserisci l'indirizzo IP - mostrato all'avvio del dispositivo nel browser - il sito web si aprirà. Puoi vedere molte informazioni sull'ambiente interno, insieme ai grafici degli ultimi minuti / ore. C'è anche un'indicazione in tempo reale e alcune informazioni e suggerimenti sul cruscotto.

Questo progetto è stato realizzato da uno studente di Howest Kortrijk, NMCT (New Media and Communication Technology).

Passaggio 1: materiali

Materiali
Materiali

Questo è tutto ciò che ho comprato per creare questo progetto. Questo è un progetto relativamente economico, a seconda del costo della stampa 3D. Se riesci a stamparlo a scuola, potrebbe essere molto economico. Altrimenti dipende da dove lo stampi e dal materiale con cui lo stampi. Noterai che ho comprato molto in blocco, semplicemente perché è difficile trovare resistori o led singoli e questo lo rende ancora più economico. Se hai tempo, puoi ordinare la maggior parte degli articoli su aliexpress.com, la consegna potrebbe richiedere del tempo, ma in questo modo puoi limitare le tue spese.

Senza la stampa, i soldi che ho speso per questo progetto sono 81, 80 euro.

Questi sono i materiali di cui hai bisogno:

Circuito:

  • Raspberry Pi 3
  • Scheda SD 8GB (minimo)
  • Sensore di qualità dell'aria CCS811
  • Sensore di temperatura e umidità DHT22
  • Potenziometro (LCD a contrasto)
  • LCD 16x2
  • Cavi di collegamento da femmina a femmina
  • LED verde e rosso
  • Resistori (2x470ohm e 1 4700ohm)

Caso:

  • Stampa 3D
  • viti
  • Colla a 2 componenti (o altra colla a caldo)
  • strumento di taglio del filo

Solo di voi state usando un PCB:

  • Saldatore
  • Flusso (rende più facile)
  • Lattina
  • Scheda esperimento 2x4cm

Passaggio 2: connessioni

Connessioni
Connessioni

Collegare i fili come sopra. Puoi vedere un circuito elettrico nel file fritzing. Non è un circuito molto complicato, ma se vuoi renderlo il più piccolo possibile, sicuramente vuoi ottenere una scheda PCB da esperimento. Il cablaggio sarebbe lo stesso, tranne che GND e Vin saranno collegati alla scheda PCB. I sensori saranno collegati tramite ponticelli femmina o maschi con saldatura. Non dimenticare di saldare la resistenza sul sensore DHT22.

Consiglio anche di usare cavi corti, dovrebbero bastare 10 cm. Altrimenti la scatola si riempirebbe ancora di più di cavo. Non hai bisogno di quelli molto lunghi poiché la dimensione della stampa è ridotta al minimo.

Passaggio 3: stampa 3D

Stampa 3D
Stampa 3D
Stampa 3D
Stampa 3D

Il primo pensiero che mi è venuto in mente quando stavo pensando a un caso è stata una stampa 3D. Dal momento che mio padre aveva stampato molti altri oggetti e li ha progettati lui stesso. Insieme abbiamo creato questo design e pensato a ogni aspetto. Dovrebbe essere abbastanza ben raffreddato, tutto può essere avvitato al suo posto e, in caso contrario, può essere spinto al suo posto.

Abbiamo persino disegnato ogni componente per verificare se tutto si adattava. Il file è disponibile per tutti e ci piacerebbe ricevere un feedback. Siamo rimasti molto soddisfatti del risultato.

Passaggio 4: codice

Il codice per questo progetto può essere trovato su Github. Se hai usato altri pin (ad esempio un altro pin GPIO per i LED, dovrai regolare queste variabili. Ci saranno due script Python in esecuzione, web.py per il sito Web e sensor.py per leggere i sensori e aggiornare il database. Importeremo la classe LCD da lcd.py.

Con un Raspberry Pi configurato puoi iniziare. Prima di tutto dovrai aggiornare e aggiornare tutti i pacchetti:

sudo apt-get update && sudo apt-get upgrade

Dopodiché dovrai installare i seguenti pacchetti:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Ora crea un ambiente virtuale:

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me@mio-rpi:~ $ mkdir progetto1 && cd progetto1 me@mio-rpi:~/progetto1 $ python3 -m venv --system-site-packages env me@mio-rpi:~/progetto1 $ source env/bin/ enable (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Fatto ciò, puoi clonare il codice dal mio GitHub nel tuo ambiente virtuale. Questo può essere fatto in più modi.

Nella directory conf puoi trovare quattro file che dovrai modificare se necessario. Dovrai sicuramente cambiare l'utente e la homedirectory in ogni file. L'ini uWSGI dovrebbe andare bene finché non hai cambiato il mio codice, assicurati di cambiare l'utente e virtualenv se necessario.

Poiché il sensore CCS811 è stato utilizzato intenzionalmente per l'arduino, questo non può comunicare sul bus i2c alla velocità del raspberry pi. Dovrai ridurre la velocità a un baudrate di 10000 (ho usato 9600) nel file di configurazione.

Dovrai anche ottenere la libreria del sensore adafruit. Potrei spiegarlo qui, ma c'è una guida perfetta di adafruit che spiega tutto questo molto bene.

Poiché vogliamo che gli script Python vengano eseguiti automaticamente quando il raspberry è connesso, dovrai utilizzare i servizi. Dovrebbero andare bene se hai mantenuto il mio codice. Tutto quello che devi fare per farli funzionare è abilitarli. Prima di farlo c'è un'ultima cosa.

Dato che stiamo usando un server web nginx, dovremo disattivare l'impostazione predefinita e sostituirla con la nostra configurazione. Per fare ciò è necessario seguire questi passaggi:

  • copia conf/nginx in *sites-available*
  • Rimuovi il collegamento a default-config
  • Aggiungi un collegamento alla nuova configurazione
  • Riavvia nginx per salvare le modifiche

me@my-rpi:~/project1 $ sudo cp conf/project1-*.service /etc/systemd/system/

me@my-rpi:~/project1 $ sudo systemctl daemon-reload me@my-rpi:~/project1 $ sudo systemctl start project1-* me@my-rpi:~/project1 $ sudo systemctl status project1-*

Nginx e mysql dovrebbero essere sempre in esecuzione. Si avviano insieme al lampone pi. Lo script web e lo script del sensore non ancora.

Per fare ciò devi comunque abilitare questi due servizi con questi comandi:

sudo systemctl enable project1-flask.service

sudo systemctl enable project1-sensor.service

Passaggio 5: banca dati

Banca dati
Banca dati

Il mio database è composto da tre tabelle. L'utente non ha alcuna relazione con altre tabelle. Questo viene utilizzato solo per accedere e concedere l'accesso al sito web. Quando il dispositivo viene acceso, il valore di CO2 e il valore TVOC verranno scritti nel database ogni 50 secondi. La temperatura e l'umidità ogni 5 minuti. In questo modo otteniamo una chiara panoramica del passato.

Il file SQL può essere trovato qui, ma per ottenere il database sul raspberry pi, dovresti seguire questi passaggi:

Dopo l'installazione dei pacchetti nel passaggio precedente, mariadb/mysql dovrebbe essere eseguito immediatamente. Puoi verificarlo con questa riga:

me@my-rpi:~ $ sudo systemctl status mysql

Per creare il database e gli utenti puoi semplicemente eseguire gli script sql nel codice da GitHub. Se lo hai fatto correttamente dovresti vedere le tue tabelle usando questo comando:

me@mio-rpi:~ $ echo 'mostra tabelle;' | mysql progetto1 -t -u progetto1-admin -p

Ora che siamo a posto, puoi testarlo senza la custodia per assicurarti che tutto funzioni. A meno che tu non sia connesso al wifi, dovrai collegarlo con un cavo ethernet ed eseguirlo manualmente.

Passaggio 6: connettiti al Wi-Fi

Apri il file di configurazione wpa-supplicant in nano (non importa, assicurati solo di poter lavorare con l'editor di testo).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Vai alla fine del file e aggiungi quanto segue (sostituisci il nome ssid e il nome password con il tuo):

rete={

ssid="ssid-name" psk="password-name" }

Per creare una password crittografata puoi usare wpa_passphrase e semplicemente copiarla nel psk wpa_supplicant.conf per rendere le cose più sicure.

wpa_passphrase "nome-ssid" "nome-password"

Se vuoi che si connetta automaticamente a questa rete Wi-Fi e ce ne sono altri nel file di configurazione, assicurati di cambiare la priorità a un livello più alto aggiungendo questa riga alla rete nel file di configurazione:

priorità=2

Non dimenticare di riconfigurare l'interfaccia con:

wpa_cli -i wlan0 reconfigure

Ora sei pronto e connesso a una rete Wi-Fi.

Passaggio 7: mettere tutto insieme

Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme
Mettere tutto insieme

Poiché tutto è cablato e saldato, possiamo arrivare al caso. Questo è stato progettato in modo da poter aprire il case senza fili allentati. Ciò significa che tutto è attaccato alla parte inferiore. La prima cosa da fare è un piccolo aggiustamento al lampone. Ha dei buchi in ogni angolo, ma questi non sono grandi come dovrebbero essere. Il diametro dovrebbe essere sufficiente per inserire una vite da 3 mm all'interno. Abbiamo dovuto lucidare i fori in modo che diventassero un po' più larghi.

La seconda cosa da fare è tagliare una filettatura in ogni foro. Questo può sembrare difficile, ma può essere fatto facilmente con gli strumenti giusti. Consiglierei di farlo in un negozio di ferramenta locale, basta chiedere uno strumento per tagliare i fili. Dato che mio padre è un orafo, aveva gli strumenti per farlo al lavoro. Potrei caricare un nuovo file stl in modo che questo venga stampato in seguito, ma questo richiederebbe una stampante molto accurata.

Il terzo passo è avvitare il pi greco sulla parte inferiore. Avrai bisogno di 4 viti lunghe 7 mm con un diametro di 3 mm. Dopodiché puoi inserire la scheda PCD nell'apposito posto nella parte superiore della parte inferiore. Il sensore CCS811 può essere inserito nell'apposito posto sul lato sinistro e il DHT11 può essere fissato alla piastra destra. Entrambi sono isolati e sufficientemente ventilati, ma in seguito abbiamo notato che all'interno faceva ancora caldo. Ne parleremo più avanti.

Quindi è necessario collegare i LED al loro tubo. Lo abbiamo fatto con la colla a 2 componenti, ma puoi farlo come preferisci. Assicurati che si attacchino lì.

Ora puoi attaccare il display LCD, avrai bisogno di viti con lo stesso diametro delle precedenti, ma un po' più lunghe. I miei erano di 1 cm. Se le quattro viti sono avvitate, resta solo una cosa da fare. Attacca la parte superiore. Tutto ciò di cui hai bisogno sono quattro viti, con lo stesso diametro e queste sono 2 cm. Ora tutto dovrebbe essere a posto e puoi avviarlo.

Passaggio 8: avvialo

Il processo di avvio di questo progetto è molto semplice:

  1. Collegare il cavo di alimentazione al lato sinistro del case. Non è molto visibile ma puoi vedere attraverso le prese d'aria. Se l'hai preso una volta, questo non sarà più un problema.
  2. Dagli un po' di tempo per iniziare.
  3. L'indirizzo IP verrà visualizzato sul display per dieci secondi. L'unica cosa che devi fare è assicurarti di essere connesso alla stessa rete e inserire l'indirizzo IP nella barra degli indirizzi del tuo browser.
  4. Ora sei sul sito web. Non hai ancora un account, quindi crea un account.
  5. Se sei registrato effettua il login.
  6. Fatto! Puoi vedere tutti i dati sulla pagina web e il display LCD mostra la qualità dell'aria attuale.

Poiché il calore aumenta, abbiamo posizionato i sensori nella parte inferiore del case. In questo modo la temperatura non avrebbe un grande impatto sui valori registrati. Quindi, per misurazioni ottimali, fai alzare il dispositivo o puoi semplicemente appenderlo al muro.

Consigliato: