Sommario:
- Forniture
- Passaggio 1: installazione di Raspberry Pi
- Passaggio 2: creazione di una connessione e connessione wireless Rpi alla rete locale
- Passaggio 3: sensore DS18B20 (temperatura) -- 1 filo
- Passaggio 4: MCP3008 - Rilevamento analogico
- Passaggio 5: hardware
- Passaggio 6: creazione di un database Mariadb
- Passaggio 7: codice Github e test
- Passaggio 8: eseguire il codice all'avvio
- Passaggio 9: configurazione del sito Web
- Passaggio 10: Opzionale - Prototipo in miniatura
Video: TheAir - Progetto Sensore di Gas: 10 Passi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Monossido di carbonio e anidride carbonica, noti anche come CO e CO2. Gas che sono incolori, inodori, insapori e francamente pericolosi se in alta concentrazione in una stanza chiusa. Se vivi, ad esempio, in una stanza di uno studente che è male isolata, non c'è un buon flusso d'aria e per qualche motivo, il tostapane emette uno strano rumore mentre fa il toast. Quindi potresti entrare in contatto con questi gas e quando ciò accade, speriamo che finisca solo con un piccolo mal di testa, perché ad alta concentrazione potrebbe renderti inabile o addirittura ucciderti (anche se molto raramente).
Così ho deciso di realizzare questo progetto. La mia idea è semplice, usa i ventilatori per creare un flusso d'aria. Aria buona in entrata e aria cattiva in uscita, per così dire. Per ulteriore utilità, ho aggiunto un sensore di temperatura extra, un pulsante per l'attivazione manuale delle ventole e anche un sito Web per coloro a cui piace vedere le statistiche e/o attivare le ventole dal proprio computer.
Come studente, genitore, single o essere vivente. Questo è qualcosa che normalmente vorresti evitare quando vivi nel comfort di casa tua. Questo aiuta coloro a cui piace rendere la vita un po' più facile.
Forniture
- Raspberry Pi 3+
- Caricabatterie mini-usb 5V/2,5A
- Scheda micro-sd
-
Sensori
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 x ventola da 12 V CC
- 2 x 2n2222 transistor
- Display LCD 16*2
- Premi il bottone
- MCP3008
- Convertitore di livello Logi
- Cavo Ethernet (per motivi di configurazione)
Passaggio 1: installazione di Raspberry Pi
Prima di lavorare con Rpi, avremo bisogno di un software.
- WinSCP o FilleZilla (opzionale se vuoi trasferire file dal tuo computer a Rpi)
- Disco Win32 o Etcher (che preferisci di più)
- Putty o MobaXterm (che preferisci di più)
- Immagine Raspbian con desktop
Prima di iniziare vorrei ricordare che quando realizzo questo tutorial, quando scelgo un programma piuttosto che un altro, NON significa che lo consiglio. Ad esempio, mi piace usare l'etch perché più facile da usare, ma Win32 ha la possibilità di eseguire backup. Ora che è fuori dal mio sistema, iniziamo.
Se hai già un Rpi connesso alla tua rete Wi-Fi, vai al passaggio 3.
Per prima cosa useremo Etcher per mettere l'immagine Raspbian sulla tua scheda SD. Ora, prima di estrarre la scheda SD, andremo a modificare alcune "cose" nel file cmdline.txt, che si trova nell'immagine. Apri il file.txt -> Aggiungi questa riga "ip=169.254.10.1" (senza virgolette) alla fine della riga (tutto su 1 riga) -> Salva file
In secondo luogo, crea una cartella vuota chiamata "ssh" nella partizione di avvio (senza virgolette).
Dopodiché puoi espellere in sicurezza la Microsd e inserirla nell'Rpi.
Il motivo dell'IP statico codificato è quello di semplificare la connessione a Rpi. Se per qualche motivo Rpi non ha un IP con DHCP, puoi facilmente utilizzare l'ip statico.
Passaggio 2: creazione di una connessione e connessione wireless Rpi alla rete locale
Avviamo Rpi -> colleghiamo il cavo ethernet tra computer e Rpi.
-
Avvia Putty e compila questo:
- Nome host (o indirizzo IP): 169.254.10.1
- Porta: 22
-
Viene visualizzato un terminale e si digita il nome utente e la password predefiniti:
- Nome utente: pi
- Parola d'ordine: lampone
Ora che siamo connessi localmente all'rpi, vogliamo che l'Rpi abbia una connessione al tuo wifi.
- Extra: digita "sudo raspi-config"
- Qui dovrai cambiare la password per l'utente pi (motivi di sicurezza)
- Successivamente vai su Opzioni di localizzazione -> Modifica ora (scegli quello corretto) -> Quindi vai su Paese Wifi -> scegli Paese.
- Chiudi raspi-config e riavvia.
- Una volta effettuato l'accesso, renditi temporaneamente utente root -> sudo -i
-
Scrivi questo comando per aggiungere la tua rete a Rpi (codice sotto l'elenco)
- password = "password" (tra virgolette)
- Nome rete = "SSID"
- Ricorda di usare il doppio >> !Importante!
echo "password" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ora riavvia di nuovo
Quando ti riconnetti, controlla il tuo IP digitando:
ifconfig
e controlla wlan0, accanto a inet.
Ora che abbiamo la connessione a Internet, facciamo un aggiornamento "rapido".
sudo apt update
sudo apt dist-upgrade -y
Questo potrebbe richiedere del tempo.
Passaggio 3: sensore DS18B20 (temperatura) -- 1 filo
Con ogni progetto, ci sarà sempre qualcosa di speciale che deve essere fatto, altrimenti non funzionerà.
Questa volta ce l'abbiamo con il sensore di temperatura DS18B20 che richiede 1 filo che non spiegherò perché ma spiegherò almeno come farlo funzionare.
Per questo dobbiamo tornare alla raspi-config su Rpi, la bella schermata blu.
- Vai a Opzioni di interfaccia
- Scegli 1-Wire e scegli abilita.
Fatto…
Stavo solo scherzando.
Ora dovremo regolare /boot/config.txt
sudo nano /boot/config.txt
Aggiungi questa riga in fondo.
# Abilita onewire
dtoverlay=w1-gpio
Ora sudo riavvia quella cosa e ora abbiamo finito.
Per verificare se funziona, collegare il sensore all'Rpi quindi tornare al terminale e digitare questo codice (Vedi passaggio successivo Hardware su come collegare il sensore di temperatura).
cd /sys/bus/w1/devices/w1_bus_master1
ls
Dovresti vedere qualcosa con numeri e lettere in blu scuro in alto a sinistra, assicurati di scrivere queste informazioni per dopo quando lavoreremo con il codice di github.
Se per qualche motivo non funziona, controlla questo collegamento che va più in profondità.
Passaggio 4: MCP3008 - Rilevamento analogico
Poiché abbiamo apportato una modifica al sensore di temperatura, dobbiamo apportare alcune modifiche anche agli altri sensori poiché devono leggere i dati analogici. Questo dove l'MCP3008 è utile, abbiamo anche bisogno di cambiare l'interfaccia SPI.
sudo raspi-config
Vai a Opzioni di interfaccia -> Seleziona SPI -> abilita.
Poi Finisci.
Passaggio 5: hardware
Non abbiamo finito del tutto con Rpi, ma abbastanza da poter iniziare a costruire e mettere insieme l'hardware.
Alcuni consigli sono di controllare accuratamente le connessioni durante la costruzione per assicurarsi di non… far esplodere l'Rpi.
Inoltre, nello schema noterai che alcuni componenti sono presenti solo una volta, anche se lavoreremo con più di uno dello stesso componente. Significa solo che devi ripetere lo stesso processo di costruzione di quel 1 componente. C'è 1 piccola eccezione, i sensori mq-x non hanno bisogno di un convertitore di livello extra o MCP3008. Basta aggiungere un cavo verde extra (in pdf) al convertitore di livello e all'MCP3008.
Modifica extra: le ventole devono utilizzare un transistor come interruttore. Uso un transistor 2n2222A per 1 ventola, perché 2 ventole potrebbero essere un carico pesante.
Se hai un transistor in grado di gestire una corrente più grande che buona, salta l'ultima parte di questo passaggio.
Se non ne hai uno come me, dovrai farlo in questo modo, 1 ventola = 1 transistor, 2 ventole = 2 transistor e così via (ogni ventola ha un proprio transistor + diodo come nel pdf).
Dovrai anche aggiungere del codice a app.py in backend_project più avanti nel passaggio 7: codice Git….
Passaggio 6: creazione di un database Mariadb
Come suggerisce il titolo, creeremo un database in modo da avere spazio per memorizzare i dati dei nostri sensori.
Per prima cosa, scarica Mariadb su Rpi.
sudo apt-get install mariadb-server
Dopo l'installazione, usiamolo.
mysql -u root
La password è vuota, quindi niente da digitare. Premere Invio.
Creiamo un utente ora.
CREA UTENTE 'user'@'%' IDENTIFICATO DA 'userdb';
CONCEDERE TUTTI I PRIVILEGI SU *.* A 'user'@'%' CON L'OPZIONE DI CONCESSIONE;
PRIVILEGI DI SCARICO;
Premi Ctrl + C per uscire ed eseguire un rapido riavvio del servizio:
sudo service mysql riavvio
Accedi con username: user & password: userdb:
mysql -u utente -p
È ora di creare il database ora.
CREATE DATABASE project_db SET CARATTERI PREDEFINITO utf8;
USE project_db
Crea una tabella "historiek" (significa cronologia).
CREATE TABLE IF NOT EXISTS `historiek` (`id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR(5) NOT NULL, `datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT(4) NULL DEFAULT 0, PRIMARY KEY (`id`)) ENGINE = InnoDB;
E voilà, il database è fatto.
Passaggio 7: codice Github e test
Ci stiamo avvicinando alla fine del nostro progetto.
Prima di ottenere il codice, dovremo importare alcuni moduli in Rpi:
pip3 installa Flask_MySQL
pip3 install flask-socketio
pip3 install -U flask-cors
pip3 installa spidev
Ora abbiamo bisogno del codice per farlo funzionare, digita nel terminale:
git clone
Controlla se la cartella è lì con:
ls
Ora avrai bisogno di 2 terminali, quindi è utile fare clic con il pulsante destro del mouse sul terminale e fare clic su Duplica sessioni:
Vai a backend_project e temperature usando il comando cd.
Ora, prima di avviare i programmi a scopo di test. Ricordi ancora il passaggio 3 con il sensore a 1 filo in cui devi scrivere alcuni numeri? Non preoccuparti se lo hai, dai una rapida occhiata al passaggio 3.
Aggiungeremo questi numeri al codice perché sarà necessario conoscere il sensore corretto quando lo si utilizza.
Il terminale con la cartella della temperatura, troverai app.py. Lo apriremo.
sudo nano app.py
Cerca la funzione che si chiama "def temperatuur():", lì dovrai sostituire "**" con i numeri che hai scritto. Nel mio caso otterrei questa riga di codice (ogni numero è unico).
nome_file_sensore = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Tempo di prova. Entrambi i terminali sia nella cartella backend_project che nella cartella temperature, digitare:
python3 app.py
Ora ricorda il passaggio 5: hardware in cui è necessario aggiungere codice se si utilizzano più ventole e transistor?
Bene, in caso contrario torna al passaggio 5.
Ora dobbiamo aggiungere il codice come ho detto ad app.py in backend_project. Per semplificare, ne ho fatto un esempio nel codice. Ogni riga di codice di commento che contiene "fan1", decommenta quelle righe e voilà, ora puoi usare 2 fan.
Se desideri utilizzare più di 2 ventole, copia e incolla lo stesso codice sotto di esso ma con un numero diverso. Lo svantaggio di questo è un lavoro più personale per te e meno gpio.pins disponibili. Non ci sono vantaggi in questo che io sappia.
Passaggio 8: eseguire il codice all'avvio
Vogliamo che questi 2 script Python vengano eseguiti nel momento in cui il nostro Rpi si avvia e nel caso in cui uno script si arresti in modo anomalo, dovrebbe riavviarsi da solo. Per fare questo faremo 2 servizi.
Per fare ciò, digita:
sudo nano /etc/systemd/system/temperature.service
Copia e incolla questo per un temperature.service:
[Unit]Description=Servizio temperatura dopo=multi-user.target
[Servizio] Tipo=semplice
ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput=tty-force
Riavvia=in caso di errore
RiavviaSec=60s
[Installare]
WantedBy=multi-user.target
Chiudi e ripeti ma poi per un backend_project.service:
Primo testo aperto:
sudo nano /etc/systemd/system/backend_project.service
Quindi di nuovo copia e incolla:
[Unità]Descrizione=servizio di backend_project
After=multi-user.target
[Servizio]
Tipo=semplice
ExecStart=/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput=tty-force
Riavvia=in caso di errore
RiavviaSec=60s
[Installare]
WantedBy=multi-user.target
Salva e chiudi.
L'ultima parte sta scrivendo questo:
sudo systemctl demone-reload
sudo systemctl enable temperature.service sudo reboot
Ora i nostri 2 script Python dovrebbero essere eseguiti automaticamente all'avvio.
Passaggio 9: configurazione del sito Web
Quando hai scaricato il repository, dovresti aver ottenuto anche una cartella chiamata front. Qui è dove si trovano i contenuti per il sito web.
Per prima cosa abbiamo bisogno di Apache prima di poter usare la cartella. Segui la guida su questo link per apache.
Quando sei pronto. Vai dove si trova la cartella principale:
cd /Documents/nmct-s2-project-1-TheryBrian
Quindi digitare:
sudo mv front /var/www/html
Fatto ciò, vai nella cartella html, preparati per un lavoro noioso (colpa mia).
cd /var/www/html/
quindi vai nella cartella principale e inizia a spostare tutto nella cartella html.
esempio:
sudo mv css /var/www/html
Quindi eliminare la cartella principale.
E abbiamo finito con tutto.
Buona fortuna:).
Passaggio 10: Opzionale - Prototipo in miniatura
Per motivi di test ho realizzato un prototipo di una scatola con tutto l'hardware all'interno in modo da poter vedere se tutto funziona come previsto.
Normalmente questo progetto sarebbe fatto su una scala più grande. Ad esempio: una stanza, una casa, una fabbrica, un negozio e così via…
Ma ovviamente prima di iniziare a fare dei buchi nei muri (bella filastrocca). Vogliamo prima vedere se funziona. In realtà non è necessario creare una scatola per i test, ma è sempre divertente fare un po' di crafting.
Ecco il mio esempio.
Consigliato:
Interfacciamento del sensore di gas con Arduino: 4 passaggi
Interfacciamento del sensore di gas con Arduino: Il sensore di fumo MQ-2 è sensibile al fumo e ai seguenti gas infiammabili: GPL, Butano, Propano, Metano, Alcool, Idrogeno. La resistenza del sensore è diversa a seconda del tipo di gas. Il sensore di fumo ha un potenziometro integrato
Etilometro Visuino Come utilizzare il sensore di gas alcolico MQ-3: 8 passaggi
Etilometro Visuino Come utilizzare il sensore di gas di alcol MQ-3: In questo tutorial utilizzeremo Arduino UNO, OLED Lcd, modulo sensore di gas di alcol MQ-3 e Visuino per visualizzare i livelli di alcol sull'LCD e impostare il rilevamento del limite. Guarda un video dimostrativo
Tutorial: come utilizzare il sensore di gas di anidride carbonica Mg811 Co2: 3 passaggi
Tutorial: come utilizzare il sensore di gas di anidride carbonica Mg811 Co2: Descrizione: questo tutorial ti mostrerà alcuni semplici passaggi su come utilizzare il sensore di gas Mg811 di CO2 utilizzando Arduino Uno. Alla fine di questo tutorial, otterrai un risultato di confronto quando il sensore può rilevare un movimento e non è stato in grado di rilevare alcun movimento
Come calibrare e utilizzare il sensore di gas MQ9 con Arduino: 8 passaggi
Come calibrare e utilizzare il sensore di gas MQ9 con Arduino: puoi leggere questo e altri fantastici tutorial sul sito Web ufficiale di ElectroPeakPanoramicaIn questo tutorial imparerai come calibrare e utilizzare il sensore di gas MQ9 con una scheda Arduino. sensore di gas è e come funziona. Com
Costruire un Cubesat con un sensore Arduino e gas naturale (MQ-2): 5 passaggi
Costruire un Cubesat con un Arduino e un sensore di gas naturale (MQ-2): il nostro obiettivo era realizzare un cubesat di successo in grado di rilevare il gas nell'atmosfera