Cuprins:

AirPi - Senzor de calitate a aerului: 8 pași
AirPi - Senzor de calitate a aerului: 8 pași

Video: AirPi - Senzor de calitate a aerului: 8 pași

Video: AirPi - Senzor de calitate a aerului: 8 pași
Video: Senzori pentru calitatea aerului 2024, Noiembrie
Anonim
AirPi - Senzor de calitate a aerului
AirPi - Senzor de calitate a aerului

V-ați întrebat vreodată de ce aveți o durere de cap? Și dacă acest lucru se datorează unei calități proaste a aerului? Cu acest dispozitiv puteți verifica dacă acesta este cazul. Acest dispozitiv măsoară valoarea CO2, valoarea TVOC, temperatura și umiditatea. Puteți vedea calitatea aerului în direct pe ecranul LCD și puteți vedea o indicație clară dacă devine periculoasă. În acest fel vă puteți deschide ferestrele la timp.

Dacă introduceți adresa IP - afișată la pornirea dispozitivului în browser - site-ul web se va deschide. Puteți vedea o mulțime de informații despre mediul interior, împreună cu grafice ale ultimelor minute / ore. Există, de asemenea, o indicație live și câteva informații și sfaturi pe tabloul de bord.

Acest proiect a fost realizat de un student la Howest Kortrijk, NMCT (New Media and Communication Technology).

Pasul 1: Materiale

Materiale
Materiale

Acesta este tot ce am cumpărat pentru a crea acest proiect. Acesta este un proiect relativ ieftin, în funcție de costul imprimării 3D. Dacă reușiți să îl imprimați la școală, acest lucru ar putea fi foarte ieftin. În caz contrar, depinde de locul în care îl imprimați și de materialul în care îl imprimați. Veți observa că am cumpărat mult în vrac, pur și simplu pentru că este greu să găsiți rezistențe sau leduri individuale și acest lucru îl face și mai ieftin. Dacă aveți timp, puteți comanda cele mai multe articole pe aliexpress.com, livrarea ar putea dura ceva timp, dar în acest fel vă puteți limita cheltuielile.

Fără tipărit, banii pe care i-am cheltuit pentru acest proiect sunt de 81, 80 €.

Acestea sunt materialele de care aveți nevoie:

Circuit:

  • Raspberry Pi 3
  • Card SD de 8 GB (minim)
  • Senzor de calitate a aerului CCS811
  • Senzor de temperatură și umiditate DHT22
  • Potențiometru (contrast LCD)
  • LCD 16x2
  • Firele jumperului de la femeie la femeie
  • LED verde și roșu
  • Rezistoare (2x470ohm și 1 4700ohm)

Caz:

  • Imprimare 3D
  • Șuruburi
  • Lipici cu 2 componente (sau alt lipici fierbinte)
  • instrument de tăiere a firului

Numai dintre voi utilizați un PCB:

  • Ciocan de lipit
  • Flux (ușurează)
  • Staniu
  • Experimentați PCB 2x4cm

Pasul 2: Conexiuni

Conexiuni
Conexiuni

Conectați firele ca mai sus. Puteți vedea un circuit electric în fișierul fritzing. Nu este un circuit foarte complicat, dar dacă doriți să îl faceți cât mai mic posibil, cu siguranță doriți să obțineți un experiment PCB Board. Cablarea ar fi aceeași, cu excepția faptului că GND și Vin vor fi conectate la placa PCB. Senzorii vor fi conectați prin cabluri de sex feminin sau bărbați cu lipire. Nu uitați să lipiți rezistorul de pe senzorul DHT22.

De asemenea, recomand să folosiți cabluri scurte, ar trebui să facă 10cm. În caz contrar, cutia ar fi umplută cu cablu și mai mult. Nu aveți nevoie de altele foarte lungi, deoarece dimensiunea imprimării este făcută cât mai mică posibil.

Pasul 3: imprimare 3D

Imprimare 3D
Imprimare 3D
Imprimare 3D
Imprimare 3D

Primul gând care mi-a apărut în cap când mă gândeam la un caz a fost o imprimare 3D. Întrucât tatăl meu a tipărit alte articole pe server și le-a proiectat el însuși. Împreună am creat acest design și ne-am gândit la fiecare aspect. Ar trebui să fie suficient de bine răcit, totul poate fi înșurubat în loc și, dacă nu, poate fi împins în loc.

Am desenat chiar și fiecare componentă pentru a verifica dacă totul se potrivește. Fișierul este disponibil pentru toată lumea și ne-ar plăcea să auzim feedback. Am fost foarte mulțumiți de rezultat.

Pasul 4: Cod

Codul pentru acest proiect poate fi găsit pe Github. Dacă ați folosit alți pini (de exemplu, un alt pin GPIO pentru LED-uri, va trebui să ajustați aceste variabile. Vor exista două scripturi Python, web.py pentru site și sensor.py pentru a citi senzorii și a actualiza baza de date. Vom importa clasa LCD de pe lcd.py.

Cu un raspberry pi configurat puteți începe. În primul rând va trebui să actualizați și să actualizați toate pachetele:

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

După aceea, va trebui să instalați următoarele pachete:

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

Acum creați un mediu 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 / activate (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Deoarece acest lucru este făcut, puteți clona codul din GitHub în mediul dvs. virtual. Acest lucru se poate face în mai multe moduri.

În directorul conf puteți găsi patru fișiere pe care va trebui să le ajustați dacă este necesar. Cu siguranță va trebui să schimbați utilizatorul și directorul de acasă în fiecare fișier. Ini uWSGI ar trebui să fie bine atâta timp cât nu mi-ați schimbat codul, asigurați-vă că schimbați utilizatorul și virtualenv, dacă este necesar.

Deoarece senzorul CCS811 a fost folosit intenționat pentru arduino, acest lucru nu poate comunica prin magistrala i2c la viteza raspberry pi. Va trebui să reduceți viteza la o viteză de 10000 (am folosit 9600) în fișierul de configurare.

De asemenea, va trebui să obțineți biblioteca senzorului adafruit. Aș putea explica acest lucru aici, dar există un ghid perfect pentru adafruit care explică toate acestea foarte bine.

Deoarece vrem ca scripturile python să ruleze automat atunci când zmeura este conectată, va trebui să utilizați serviciile. Ar trebui să fie bine dacă îmi păstrezi codul. Tot ce trebuie să faceți pentru ca aceștia să ruleze este să le activați. Înainte de a face asta, există un ultim lucru.

Întrucât folosim un server web nginx, va trebui să dezactivăm valoarea implicită și să o înlocuim cu propria noastră configurare. Pentru aceasta, trebuie urmați acești pași:

  • copiați conf / nginx în * site-uri disponibile *
  • Eliminați linkul către config-ul implicit
  • Adăugați un link la noua configurare
  • Reporniți nginx pentru a salva modificările

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

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

Nginx și mysql ar trebui să ruleze în permanență. Ei pornesc împreună cu pi zmeură. Scriptul web și scriptul senzorului nu sunt încă încă.

Pentru a face acest lucru, trebuie totuși să activați aceste două servicii cu aceste comenzi:

sudo systemctl activate project1-flask.service

sudo systemctl activează project1-sensor.service

Pasul 5: Baza de date

Bază de date
Bază de date

Baza mea de date este formată din trei tabele. Utilizatorul nu are nicio relație cu alte tabele. Aceasta este utilizată doar pentru a vă conecta și a acorda acces la site-ul web. Când dispozitivul este pornit, valoarea CO2 și valoarea TVOC vor fi scrise în baza de date la fiecare 50 de secunde. Temperatura și umiditatea la fiecare 5 minute. În acest fel, avem o imagine de ansamblu clară asupra trecutului.

Fișierul SQL poate fi găsit aici, dar pentru a obține baza de date pe raspberry pi, ar trebui să urmați acești pași:

După instalarea pachetelor în pasul anterior, mariadb / mysql ar trebui să ruleze imediat. Puteți verifica acest lucru cu această linie:

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

Pentru a crea baza de date și utilizatorii, puteți rula pur și simplu scripturile sql din cod de la GitHub. Dacă ați făcut acest lucru corect, ar trebui să vă vedeți tabelele folosind această comandă:

me @ my-rpi: ~ $ echo 'arată tabele;' | mysql project1 -t -u project1-admin -p

Acum suntem pregătiți, puteți testa acest lucru fără carcasă pentru a vă asigura că totul funcționează. Dacă nu sunteți conectat la Wi-Fi, va trebui să îl conectați cu un cablu Ethernet și să îl rulați manual.

Pasul 6: Conectați-vă la Wi-Fi

Deschideți fișierul de configurare wpa-suplicant în nano (nu contează cu adevărat, asigurați-vă că puteți lucra cu editorul de text).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Mergeți în partea de jos a fișierului și adăugați următoarele (înlocuiți numele ssid și numele parolei cu ale dvs.):

rețea = {

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

Pentru a crea o parolă criptată puteți utiliza wpa_passphrase și pur și simplu copiați-o în psk wpa_supplicant.conf pentru a face lucrurile mai sigure.

wpa_passphrase "nume-ssid" "nume-parolă"

Dacă doriți ca aceasta să se conecteze automat la această rețea Wi-Fi și există altele în fișierul de configurare, asigurați-vă că schimbați prioritatea la un nivel superior adăugând această linie la rețea în fișierul de configurare:

prioritate = 2

Nu uitați să reconfigurați interfața cu:

wpa_cli -i wlan0 reconfigurare

Acum sunteți pregătiți și conectați la o rețea wifi.

Pasul 7: Puneți totul împreună

Punând totul împreună
Punând totul împreună
Punând totul împreună
Punând totul împreună
Punând totul împreună
Punând totul împreună

Deoarece totul este conectat și lipit, putem ajunge la caz. Acesta a fost proiectat, astfel încât să puteți deschide carcasa fără fire libere. Aceasta înseamnă că totul este atașat la partea de jos. Primul lucru de făcut este o mică ajustare la zmeură. Are găuri în fiecare colț, dar acestea nu sunt atât de mari pe cât ar trebui să fie. Diametrul ar trebui să fie suficient pentru a se potrivi în interior cu un șurub de 3 mm. A trebuit să lustruim găurile astfel încât să devină puțin mai largi.

Al doilea lucru de făcut este tăierea unui filet în fiecare gaură. Acest lucru poate suna greu, dar poate fi realizat cu ușurință cu instrumentele potrivite. Aș recomanda să faceți acest lucru la un magazin de hardware local, solicitați doar un instrument de tăiere a firelor. Întrucât tatăl meu este un aurar, el avea instrumentele necesare pentru a face acest lucru la locul de muncă. S-ar putea să încărc un nou fișier stl, astfel încât acesta să fie tipărit mai târziu, dar ar fi nevoie de o imprimantă foarte precisă.

Al treilea pas este înșurubarea pi pe partea inferioară. Veți avea nevoie de 4 șuruburi lungi de 7 mm cu un diametru de 3 mm. După aceasta, puteți împinge placa PCD în locul prevăzut în partea de sus a părții de jos. Senzorul CCS811 poate fi împins în locul prevăzut în partea stângă și DHT11 poate fi atașat la placa dreaptă. Ambele sunt izolate și ventilate suficient, dar ulterior am observat că încă se încălzește înăuntru. Mai multe despre asta mai târziu.

Apoi, trebuie să atașați LED-urile la tubul lor. Am făcut acest lucru cu lipici cu 2 componente, dar îl puteți face oricum doriți. Asigurați-vă că rămân acolo.

Acum puteți atașa afișajul LCD, veți avea nevoie de șuruburi cu același diametru ca și cele precedente, dar puțin mai lungi. Al meu avea 1cm. Dacă cele patru șuruburi sunt înșurubate, rămâne un singur lucru de făcut. Atașați partea superioară. Tot ce aveți nevoie sunt patru șuruburi, cu același diametru și acestea sunt de 2cm. Acum totul ar trebui să fie la locul său și îl puteți porni.

Pasul 8: Porniți-l

Procesul de lansare a acestui proiect este foarte ușor:

  1. Atașați cablul de alimentare în partea stângă a carcasei. Nu este foarte vizibil, dar puteți vedea prin orificii. Dacă ați obținut-o odată, aceasta nu va mai fi o problemă din nou.
  2. Acordați-i ceva timp pentru a porni.
  3. Adresa IP va apărea pe ecran timp de zece secunde. Singurul lucru pe care trebuie să-l faceți este să vă asigurați că sunteți conectat la aceeași rețea și să introduceți adresa IP în bara de adrese a browserului.
  4. Sunteți acum pe site. Nu aveți încă un cont, deci creați un cont.
  5. Dacă sunteți înregistrat, conectați-vă.
  6. Terminat! Puteți vedea toate datele pe pagina web, iar afișajul LCD arată calitatea curentă a aerului.

De când crește căldura, am localizat senzorii în partea de jos a carcasei. Astfel temperatura nu ar avea un impact mare asupra valorilor înregistrate. Deci, pentru măsurători optime, puneți dispozitivul în picioare sau pur și simplu îl puteți agăța de perete.

Recomandat: