Taula de continguts:

AirPi: sensor de qualitat de l'aire: 8 passos
AirPi: sensor de qualitat de l'aire: 8 passos

Vídeo: AirPi: sensor de qualitat de l'aire: 8 passos

Vídeo: AirPi: sensor de qualitat de l'aire: 8 passos
Vídeo: Наушники xiaomi Не работает один наушник Что делать 2024, De novembre
Anonim
AirPi: sensor de qualitat de l'aire
AirPi: sensor de qualitat de l'aire

Us heu preguntat mai per què us fa mal de cap? I si això es deu a una mala qualitat de l’aire? Amb aquest dispositiu podeu comprovar si és així. Aquest dispositiu mesura el valor de CO2, el valor de TVOC, la temperatura i la humitat. Podeu veure la qualitat de l’aire en directe a la pantalla LCD i veure una indicació clara de si és perillós. D’aquesta manera podeu obrir les vostres finestres a temps.

Si introduïu l'adreça IP, que es mostra quan inicieu el dispositiu al navegador, s'obrirà el lloc web. Podeu veure molta informació sobre l’entorn interior, juntament amb gràfics dels darrers minuts / hores. També hi ha una indicació en directe i algunes informacions i consells al tauler.

Aquest projecte el va fer un estudiant de Howest Kortrijk, NMCT (New Media and Communication Technology).

Pas 1: materials

Materials
Materials

Això és tot el que he comprat per crear aquest projecte. Aquest és un projecte relativament barat, en funció del cost de la impressió 3D. Si el podeu imprimir a l’escola, pot ser molt barat. En cas contrari, depèn d'on l'imprimiu i del material en què l'imprimiu. Notareu que he comprat molt a granel, simplement perquè és difícil trobar resistències o leds individuals i això ho fa encara més barat. Si teniu temps, podeu demanar la majoria d’articles a aliexpress.com. El lliurament pot trigar una mica, però d’aquesta manera podeu limitar les despeses.

Sense la impressió, els diners que vaig gastar en aquest projecte són de 81,80 €.

Aquests són els materials que necessiteu:

Circuit:

  • Raspberry Pi 3
  • Targeta SD de 8 GB (mínim)
  • Sensor de qualitat de l'aire CCS811
  • Sensor de temperatura i humitat DHT22
  • Potenciòmetre (LCD de contrast)
  • Pantalla LCD de 16x2
  • Cavalls de pont femení a femení
  • LED verd i vermell
  • Resistències (2x470ohm i 1 4700ohm)

Caixa:

  • Impressió 3D
  • Cargols
  • Cola de 2 components (o una altra cola calenta)
  • eina de tall de fil

Només utilitzeu un PCB:

  • Soldador
  • Flux (ho fa més fàcil)
  • Estany
  • Experimenta un PCB de 2x4cm

Pas 2: connexions

Connexions
Connexions

Connecteu els cables de la manera anterior. Podeu veure un circuit elèctric al fitxer fritzing. No és un circuit molt complicat, però si el voleu fer tan petit com sigui possible, definitivament voleu obtenir un PCB Board d’experiment. El cablejat seria el mateix, excepte que el GND i el Vin es connectaran a la placa PCB. Els sensors estaran connectats per cables femella o mascles amb soldadura. No oblideu soldar la resistència del sensor DHT22.

També recomano utilitzar cables curts, hauríeu de fer-los 10cm. En cas contrari, la caixa s’ompliria encara més de cable. No necessiteu cap llarga durada, ja que la mida de la impressió es fa el més petita possible.

Pas 3: imprimir en 3D

Impressió 3D
Impressió 3D
Impressió 3D
Impressió 3D

La primera idea que em va aparèixer al cap quan pensava en un cas va ser una impressió en 3D. Com que el meu pare havia imprès altres articles per servidor i ell mateix els va dissenyar. Junts vam crear aquest disseny i vam analitzar tots els aspectes. Ha d’estar prou ben refredat, tot es pot cargolar al seu lloc i, si no, es pot posar al seu lloc.

Fins i tot vam dibuixar tots els components per comprovar si tot s’adapta. El fitxer està disponible per a tothom i ens encantaria rebre alguns comentaris. Ens va quedar molt satisfet el resultat.

Pas 4: Codi

El codi d’aquest projecte es pot trobar a Github. Si heu utilitzat altres pins (per exemple, un altre pin GPIO per als LEDs, haureu d'ajustar aquestes variables. Hi haurà dos scripts Python en execució, web.py per al lloc web i sensor.py per llegir els sensors i actualitzar-los) importarem la classe LCD de lcd.py.

Amb un raspberry pi configurat, podeu començar. Primer de tot, haureu d’actualitzar i actualitzar tots els paquets:

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

Després, haureu d'instal·lar els paquets següents:

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

Ara creeu un entorn virtual:

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

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

Un cop fet això, podeu clonar el codi del meu GitHub al vostre entorn virtual. Això es pot fer de diverses maneres.

Al directori conf podeu trobar quatre fitxers que haureu d’ajustar si cal. Definitivament, haureu de canviar l’usuari i el directori d’inici a tots els fitxers. L'ini uWSGI hauria d'estar bé sempre que no hagueu canviat el meu codi, assegureu-vos de canviar l'usuari i virtualenv si cal.

Atès que el sensor CCS811 es va utilitzar intencionadament per a l’arduino, això no es pot comunicar a través del bus i2c a la velocitat del raspberry pi. Haureu de reduir la velocitat a una velocitat de transmissió de 10000 (he utilitzat 9600) al fitxer de configuració.

També haureu d’obtenir la biblioteca del sensor adafruit. Podria explicar-ho aquí, però hi ha una guia adafruit perfecta que explica tot això molt bé.

Com que volem que els scripts python s'executin automàticament quan es connecta el gerd, haureu d'utilitzar els serveis. Haurien d’estar bé si manteniu el meu codi. Tot el que heu de fer perquè s’executin és habilitar-los. Abans de fer-ho, hi ha una última cosa.

Com que fem servir un servidor web nginx, haurem de desactivar el valor per defecte i substituir-lo per la nostra pròpia configuració. Per fer-ho, cal seguir aquests passos:

  • copieu conf / nginx a * llocs disponibles *
  • Elimineu l'enllaç a la configuració per defecte
  • Afegiu un enllaç a la nova configuració
  • Reinicieu nginx per desar els canvis

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

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

Nginx i mysql haurien d’executar-se en tot moment. Comencen junt amb el pi de gerds. L’escriptura web i l’escriptura del sensor encara no.

Per fer-ho, cal habilitar aquests dos serveis amb aquestes ordres:

sudo systemctl habilita project1-flask.service

sudo systemctl habilita project1-sensor.service

Pas 5: base de dades

Base de dades
Base de dades

La meva base de dades consta de tres taules. L'usuari no té cap relació amb altres taules. Això només s’utilitza per iniciar la sessió i concedir accés al lloc web. Quan el dispositiu està engegat, el valor de CO2 i el valor de TVOC s’escriuran a la base de dades cada 50 segons. La temperatura i la humitat cada 5 minuts. D’aquesta manera obtenim una visió clara del passat.

El fitxer SQL es pot trobar aquí, però per obtenir la base de dades al raspberry pi, heu de seguir aquests passos:

Després de la instal·lació dels paquets al pas anterior, mariadb / mysql hauria de funcionar immediatament. Podeu comprovar-ho amb aquesta línia:

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

Per crear la base de dades i els usuaris, simplement podeu executar els scripts sql al codi des de GitHub. Si ho heu fet correctament, hauríeu de veure les vostres taules amb aquesta ordre:

me @ my-rpi: ~ $ echo 'mostra taules;' | mysql project1 -t -u project1-admin -p

Ara ja estem a punt, podeu provar-ho sense el cas per assegurar-vos que tot funcioni. Tret que estigueu connectat al wifi, l'haureu de connectar amb un cable Ethernet i executar-lo manualment.

Pas 6: connecteu-vos a la Wi-Fi

Obriu el fitxer de configuració wpa-supplicant a nano (no importa, assegureu-vos que pugueu treballar amb l'editor de text).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Aneu a la part inferior del fitxer i afegiu el següent (substituïu el nom ssid i el nom de contrasenya pel vostre):

xarxa = {

ssid = "nom-ssid" psk = "nom-contrasenya"}

Per crear una contrasenya xifrada, podeu utilitzar wpa_passphrase i simplement copiar-la a la pspa wpa_supplicant.conf per fer les coses més segures.

wpa_passphrase "nom-ssid" "nom-contrasenya"

Si voleu que es connecti automàticament a aquesta xarxa Wi-Fi i que hi hagi altres fitxers de configuració, assegureu-vos de canviar la prioritat a un nivell superior afegint aquesta línia a la xarxa al fitxer de configuració:

prioritat = 2

No oblideu reconfigurar la interfície amb:

wpa_cli -i wlan0 reconfigurar

Ara ja esteu a punt i esteu connectat a una xarxa wifi.

Pas 7: ajuntar-ho tot

Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt

Com que tot està connectat i soldat, podem arribar al cas. Es va dissenyar perquè poguessis obrir la caixa sense cables solts. Això significa que tot està unit a la part inferior. El primer que cal fer és un petit ajustament al gerd. Té forats a cada cantonada, però no són tan grans com haurien de ser. El diàmetre hauria de ser suficient per encabir-hi un cargol de 3 mm. Vam haver de polir els forats de manera que quedessin una mica més amples.

El segon que cal fer és tallar un fil de cargol a cada forat. Pot semblar dur, però es pot fer fàcilment amb les eines adequades. Recomanaria fer-ho en una ferreteria local, només cal demanar una eina per tallar fils. Com que el meu pare és orfebre, tenia les eines per fer-ho a la feina. Podria penjar un fitxer stl nou perquè s’imprimeixi més endavant, però caldria una impressora molt precisa.

El tercer pas és cargolar el pi a la part inferior. Necessitareu 4 cargols de 7 mm de llarg amb un diàmetre de 3 mm. Després d'això, podeu introduir la placa PCD al lloc proporcionat a la part superior de la part inferior. El sensor CCS811 es pot introduir al lloc proporcionat al costat esquerre i el DHT11 es pot connectar a la placa dreta. Tots dos estan aïllats i ventilats prou, però després vam notar que encara feia calor a l’interior. Més informació sobre això més endavant.

A continuació, heu de connectar els LED al tub. Ho hem fet amb cola de dos components, però podeu fer-ho com vulgueu. Assegureu-vos que s’hi quedin.

Ara podeu connectar la pantalla LCD, necessitareu cargols del mateix diàmetre que els anteriors, però una mica més llargs. Les meves feien 1cm. Si es cargolen els quatre cargols, només queda una cosa per fer. Adjunta la part superior. Tot el que necessiteu són quatre cargols, amb el mateix diàmetre i de 2 cm. Ara tot hauria d’estar al seu lloc i ja podeu començar.

Pas 8: inicieu-lo

El procés d’inici d’aquest projecte és molt fàcil:

  1. Connecteu el cable d'alimentació al costat esquerre de la caixa. No és molt visible, però es pot veure a través dels respiradors. Si ho aconseguiu una vegada, això no tornarà a ser un problema.
  2. Doneu-li una mica de temps per començar.
  3. L'adreça IP apareixerà a la pantalla durant deu segons. L'únic que heu de fer és assegurar-vos que esteu connectat a la mateixa xarxa i introduir l'adreça IP a la barra d'adreces del navegador.
  4. Ara sou al lloc web. Encara no teniu cap compte, de manera que creeu-ne un.
  5. Si esteu registrat, inicieu sessió.
  6. Fet! Podeu veure totes les dades a la pàgina web i la pantalla LCD mostra la qualitat de l’aire actual.

Des que augmenta la calor, hem situat els sensors a la part inferior de la caixa. D'aquesta manera, la temperatura no tindria un gran impacte en els valors registrats. Així, per obtenir mesures òptimes, feu que el dispositiu es posi dret o simplement el podeu penjar a la paret.

Recomanat: