Taula de continguts:
- Subministraments
- Pas 1: Configuració de Raspberry Pi
- Pas 2: fer una connexió i connectar Rpi Wireless a la vostra xarxa local
- Pas 3: sensor DS18B20 (temperatura): 1 cable
- Pas 4: MCP3008: detecció analògica
- Pas 5: maquinari
- Pas 6: Creació d'una base de dades Mariadb
- Pas 7: Codi de Github i proves
- Pas 8: executeu el codi en arrencar
- Pas 9: configureu el lloc web
- Pas 10: opcional: prototip en miniatura
Vídeo: Projecte TheAir - Sensor de gas: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Monòxid de carboni i diòxid de carboni, també coneguts com CO i CO2. Gasos incolors, inodors, insípids i francament perillosos quan es troben en concentracions elevades en una habitació tancada. Si viviu, per exemple, en una habitació d’estudiants molt aïllada, sense bon flux d’aire i, per alguna raó, la torradora fa un soroll estrany mentre fa brindis. Aleshores podeu entrar en contacte amb aquests gasos i, quan això passi, esperem que només acabi amb un petit mal de cap, ja que en concentracions elevades pot incapacitar-vos o fins i tot matar-vos (encara que molt rarament).
Així que vaig decidir plantejar aquest projecte. La meva idea és simple, utilitzeu ventiladors per crear un flux d’aire. Bona entrada d'aire i mala sortida d'aire per dir-ho d'alguna manera. Per obtenir més utilitat, he afegit un sensor de temperatura addicional, un botó per als ventiladors d’activació manual i també un lloc web per a aquells a qui els agrada veure estadístiques i / o activar els ventiladors des del seu ordinador.
Com a estudiant, pare, persona soltera o ésser viu. Això és una cosa que normalment voldríeu evitar quan viviu a la comoditat de casa vostra. Això ajuda els qui els agrada fer la seva vida una mica més fàcil.
Subministraments
- Raspberry Pi 3+
- Mini carregador usb 5V / 2.5A
- Targeta micro-sd
-
Sensors
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 x 12V DC ventilador
- 2 transistors 2n2222
- Pantalla LCD 16 * 2
- Polsador
- MCP3008
- Convertidor de nivell Logi
- Cable Ethernet (per motius de configuració)
Pas 1: Configuració de Raspberry Pi
Abans de treballar amb el Rpi, necessitarem algun programari.
- WinSCP o FilleZilla (opcional si voleu transferir fitxers des del vostre ordinador al Rpi)
- Disc Win32 o Etcher (que preferiu més)
- Putty o MobaXterm (que preferiu més)
- Imatge Raspbian amb escriptori
Abans de començar, voldria esmentar que, quan faig aquest tutorial, quan trio un programa sobre l'altre, NO vol dir que el recomano. Per exemple, m'agrada utilitzar etcher perquè és més fàcil d'utilitzar, però Win32 té l'opció de fer còpies de seguretat. Ara, això està fora del meu sistema, comencem.
Si ja teniu un Rpi connectat a la vostra xarxa wifi, aneu al pas 3.
Primer farem servir Etcher per posar la imatge de Raspbian a la vostra targeta sd. Ara, abans de treure la targeta SD, canviarem algunes "coses" al fitxer cmdline.txt, que es poden trobar a la imatge. Obriu el fitxer.txt -> Afegiu aquesta línia "ip = 169.254.10.1" (sense cometes) al final de la línia (tot en una línia) -> Desa el fitxer
En segon lloc, feu una carpeta buida anomenada "ssh" a la partició d'arrencada (sense cometes).
Després, podeu expulsar el Microsd amb seguretat i posar-lo al Rpi.
La raó de la IP estàtica de codi dur és facilitar la connexió a l’Rpi. Si per alguna raó l’Rpi no té un ip amb DHCP, llavors utilitzeu fàcilment la ip estàtica.
Pas 2: fer una connexió i connectar Rpi Wireless a la vostra xarxa local
Iniciarem el Rpi -> connectar el cable ethernet entre l’ordinador i el Rpi.
-
Comenceu Putty i empleneu-ho:
- Nom de l’amfitrió (o adreça IP): 169.254.10.1
- Port: 22
-
Apareix un terminal i escriviu el nom d'usuari i la contrasenya per defecte:
- Nom d'usuari: pi
- Contrasenya: gerd
Ara que estem connectats localment al rpi, volem que el Rpi tingui una connexió al vostre wifi.
- Extra: escriviu "sudo raspi-config"
- Aquí haureu de canviar la contrasenya per l'usuari pi (motius de seguretat)
- Després aneu a Opcions de localització -> Canvia l'hora (trieu la correcta) -> A continuació, aneu a País de Wifi -> trieu el país.
- Tanqueu raspi-config i reinicieu.
- Quan hàgiu iniciat la sessió, feu-vos temporalment usuari root -> sudo -i
-
Escriviu aquesta ordre per afegir la vostra xarxa al Rpi (codi a sota de la llista)
- password = "contrasenya" (amb cometes)
- Nom de xarxa = "SSID"
- Recordeu fer servir el doble >>! Important!
ressò de "contrasenya" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ara reinicieu de nou
Quan torneu a connectar-vos, comproveu la vostra IP escrivint:
ifconfig
i comproveu wlan0, al costat de inet.
Ara que tenim connexió a Internet, fem una actualització "ràpida".
actualització sudo apt
sudo apt dist-upgrade -y
Això pot trigar una mica.
Pas 3: sensor DS18B20 (temperatura): 1 cable
Amb cada projecte, sempre hi haurà alguna cosa especial que s'ha de fer o, si no, no funcionarà moment.
Aquesta vegada el tenim amb el sensor de temperatura DS18B20 que requereix 1 cable que no explicaré per què, però explicaré com fer-ho funcionar almenys.
Per a això, hem de tornar a la raspi-config del Rpi, la bonica pantalla blava.
- Aneu a Opcions d’interfície
- Trieu 1-Wire i trieu habilitar.
Fet …
Simplement bromejant.
Ara haurem d’ajustar /boot/config.txt
sudo nano /boot/config.txt
Afegiu aquesta línia a la part inferior.
# Activeu onewire
dtoverlay = w1-gpio
Ara sudo reiniciar aquesta cosa i ara ja hem acabat.
Per comprovar si funciona, connecteu el sensor al Rpi i, a continuació, torneu al terminal i escriviu aquest codi (vegeu el següent pas Maquinari sobre com connectar el sensor de temperatura).
cd / sys / bus / w1 / devices / w1_bus_master1
ls
Hauríeu de veure alguna cosa amb números i lletres en blau fosc a la part superior esquerra. Assegureu-vos d'escriure aquesta informació per més endavant quan treballarem amb el codi de github.
Si per algun motiu no funciona, consulteu aquest enllaç que hi aprofundeix.
Pas 4: MCP3008: detecció analògica
A mesura que vam fer un canvi per al sensor de temperatura, també hem de fer alguns canvis per als altres sensors, ja que hem de llegir-los en dades analògiques. Aquí, quan el MCP3008 és útil, també hem de canviar la interfície SPI.
sudo raspi-config
Aneu a Opcions d’interfície -> Seleccioneu SPI -> habilita.
Després Acaba.
Pas 5: maquinari
No hem acabat del tot amb el Rpi, sinó prou perquè puguem començar a construir i muntar el maquinari.
Alguns consells són comprovar a fons les vostres connexions a l’hora de construir per assegurar-vos que no … voleu el Rpi.
A més, a l’esquema notareu que alguns components hi són només una vegada, tot i que treballarem amb més d’un del mateix component. Només vol dir que heu de repetir el mateix procés de construcció d'aquest component. Hi ha una petita excepció, els sensors mq-x no necessiten un convertidor de nivell addicional ni MCP3008. Només cal afegir un cable verd extra (en pdf) al convertidor de nivell i MCP3008.
Edició addicional: els ventiladors han d’utilitzar un transistor com a commutador. Faig servir un transistor 2n2222A per a 1 ventilador, ja que 2 ventiladors poden ser massa pesats.
Si teniu un transistor que pugui manejar un corrent més gran que bo, ometeu la darrera part d’aquest pas.
Si no en teniu cap, heu de fer-ho així, 1 ventilador = 1 transistor, 2 ventiladors = 2 transistors, etc. (cada ventilador té el seu propi transistor + díode com al pdf).
També haureu d'afegir algun codi a app.py a backend_project més endavant al pas 7: codi Git ….
Pas 6: Creació d'una base de dades Mariadb
Com indica el títol, crearem una base de dades perquè tinguem lloc per emmagatzemar les dades dels nostres sensors.
Primer de tot, descarregueu Mariadb al Rpi.
sudo apt-get install mariadb-server
Després de la instal·lació, usem-la.
arrel mysql -u
La contrasenya està en blanc, de manera que no hi ha res a escriure. Premeu Retorn.
Permet crear un usuari ara.
CREA USUARI 'user' @ '%' IDENTIFICAT PER 'userdb';
CONCEDIU TOTS ELS PRIVILEGIS ACTIVATS *. * A "usuari" @ "%" AMB OPCIÓ DE CONCESSIÓ;
PRIVILEGIS DE FLUSH;
Premeu Ctrl + C per sortir i reiniciar ràpidament el servei:
sudo service reiniciar mysql
Inicieu la sessió amb nom d'usuari: usuari i contrasenya: userdb:
mysql -u usuari -p
És hora de crear la base de dades ara.
CREA BASE DE DADES project_db CONFIGURACIÓ DE CARÀCTERS DEFAULT utf8;
USE project_db
Creeu una taula "historiek" (significa història).
CREA TAULA SI NO EXISTEIX `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, CLAU PRIMÀRIA (` id`)) MOTOR = InnoDB;
I voila, la base de dades està feta.
Pas 7: Codi de Github i proves
Ens apropem al final del nostre projecte.
Abans d’obtenir el codi, haurem d’importar alguns mòduls al Rpi:
pip3 instal·la Flask_MySQL
pip3 instal·la flask-socketio
pip3 install -U flask-cors
pip3 instal·la spidev
Ara necessitem el codi perquè funcioni, escriviu el terminal:
git clon
Comproveu si la carpeta hi és amb:
ls
Ara necessitareu 2 terminals, de manera que és útil fer clic amb el botó dret del ratolí sobre el terminal i fer clic a Duplicar sessions:
Aneu a backend_project i temperature mitjançant l'ordre cd.
Ara abans d’iniciar els programes amb finalitats de prova. Encara recordeu el pas 3 amb el sensor de 1 cable on cal escriure alguns números? No us preocupeu si ho teniu, només cal que feu una ullada ràpida al pas 3.
Afegirem aquests números al codi perquè haurà de conèixer el sensor correcte quan l’utilitzeu.
El terminal amb la carpeta de temperatura, trobareu app.py. L’obrirem.
sudo nano app.py
Cerqueu la funció que s'anomena "def temperatuur ():", aquí haureu de substituir el "**" pels números que heu escrit. En el meu cas, obtindria aquesta línia de codi (cada número és únic).
sensor_file_name = '/ sys / devices / w1_bus_master1 / 28-0316a4be59ff / w1_slave
Temps de prova. Ambdós terminals de la carpeta de temperatura i de backend_project, escriviu:
python3 app.py
Ara recordeu el pas 5: maquinari on heu d’afegir codi si feu servir diversos ventiladors i transistors?
Bé, si no, torneu al pas 5.
Ara hem d’afegir codi com he esmentat a app.py a backend_project. Per fer-ho més fàcil, he fet un exemple al codi. Totes les línies de codi de comentaris que contenen "fan1", descomenta aquestes línies i voilà, ara podeu utilitzar 2 ventiladors.
Si voleu utilitzar més de només 2 ventiladors, copieu i enganxeu el mateix codi a sota però amb un número diferent. L’inconvenient d’això és un treball més personal per a vosaltres i menys gpio.pins disponibles. No hi ha avantatges que conec.
Pas 8: executeu el codi en arrencar
Volem que aquests 2 scripts Python s’executin en el moment en què arrenca el nostre Rpi i, en cas que un script es bloquegi, s’hauria de reiniciar per si sol. Per fer-ho, farem 2 serveis.
Per fer-ho, escriviu:
sudo nano /etc/systemd/system/temperature.service
Copieu-lo i enganxeu-lo per obtenir un servei de temperatura:
[Unitat] Descripció = Servei de temperatura després = multi-user.target
[Servei] Tipus = simple
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
Entrada normalitzada = força tty
Reinicia = si es produeix un error
RestartSec = 60s
[Instal·la]
WantedBy = multi-usuari.target
Tanqueu i torneu a fer, però després per a un backend_project.service:
Primer text obert:
sudo nano /etc/systemd/system/backend_project.service
A continuació, copieu i enganxeu de nou:
[Unitat] Descripció = backend_project Service
After = multi-user.target
[Servei]
Tipus = simple
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
Entrada normalitzada = força tty
Reinicia = si es produeix un error
RestartSec = 60s
[Instal·la]
WantedBy = multi-usuari.target
Desa i tanca.
L'última part és escriure això:
sudo systemctl daemon-recoad
sudo systemctl habilita el reinici de temperature.service sudo
Ara els nostres 2 scripts Python s’executaran automàticament a l’arrencada.
Pas 9: configureu el lloc web
En descarregar el dipòsit, també hauríeu d’haver obtingut una carpeta anomenada frontal. Aquí és on es troben els continguts del lloc web.
Primer necessitem apache abans de poder utilitzar la carpeta. Seguiu la guia d’aquest enllaç per apache.
Quan estigueu a punt. Aneu a on es troba la carpeta frontal:
cd / Documents / nmct-s2-project-1-TheryBrian
A continuació, escriviu:
sudo mv front / var / www / html
Quan ho hàgiu fet, aneu a la carpeta html, prepareu-vos per a un treball tediós (culpa meva).
cd / var / www / html /
a continuació, aneu a la carpeta frontal i comenceu a moure-ho tot a la carpeta html.
exemple:
sudo mv css / var / www / html
A continuació, suprimiu la carpeta frontal.
I ja hem acabat amb tot.
Bona sort:).
Pas 10: opcional: prototip en miniatura
Per motius de proves, vaig fer un prototip de només una caixa amb tot el maquinari que hi havia a dins per poder veure si tot funciona per encàrrec.
Normalment, aquest projecte es faria a una escala més gran. Per exemple: una habitació, una casa, una fàbrica, una botiga, etc.
Però, òbviament, abans de començar a fer forats a les parets (bona rima). Primer volem veure si només funciona. De fet, no cal fer cap caixa per provar-les, però sempre és divertit fer algunes manualitats.
Aquí hi ha el meu exemple.
Recomanat:
Seguidor de línia HoGent - Projecte Synthese: 8 passos
Linefollower HoGent - Syntheseproject: Voor het vak syntheseproject kregen we de opdracht een linefollower te maken. In deze instructable zal ik uitleggen hoe ik deze gemaakt heb, en tegen welke problemen ik o.a ben aangelopen
Projecte d'estabilitzador de cardan: 9 passos (amb imatges)
Projecte Gimbal Stabilizer: Com fer un Gimbal un vídeo tan inestable
ECG automatitzat: BME 305 Projecte final de crèdit extra: 7 passos
ECG automatitzat: BME 305 Projecte final Crèdit extra: s’utilitza un electrocardiograma (ECG o EKG) per mesurar els senyals elèctrics produïts per un cor que batega i té un paper important en el diagnòstic i pronòstic de malalties cardiovasculars. Part de la informació obtinguda d’un ECG inclou els ritmes
BARRET SENSIBLE PER AL DETECTOR DE GAS QUALITAT I GAS V1.1: 9 passos
BARRET SENSLY PER AL DETECTOR DE GAS QUALITAT I GAS V1.1 DE RASPBERRY: Sensly és un sensor de contaminació portàtil capaç de detectar els nivells de contaminació de l’aire mitjançant els seus sensors de gas incorporats per recollir informació sobre els diferents gasos presents. Aquesta informació es pot enviar directament al vostre telèfon intel·ligent per obtenir pu
Gravador USB Aquest projecte es pot cremar a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): 3 passos
Gravador alimentat per USB. Aquest projecte pot cremar-se a través de plàstics / fusta / paper (el divertit projecte també ha de ser fusta molt fina): NO FEREU AIX US mitjançant USB !!!! He descobert que pot fer malbé el vostre ordinador per tots els comentaris. el meu ordinador està bé. Utilitzeu un carregador de telèfon de 600 ma 5 v. He utilitzat això i funciona bé i res es pot danyar si utilitzeu un endoll de seguretat per aturar l'alimentació