Sadržaj:

AirPi - osjetnik kvalitete zraka: 8 koraka
AirPi - osjetnik kvalitete zraka: 8 koraka

Video: AirPi - osjetnik kvalitete zraka: 8 koraka

Video: AirPi - osjetnik kvalitete zraka: 8 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Studeni
Anonim
AirPi - senzor kvalitete zraka
AirPi - senzor kvalitete zraka

Jeste li se ikada zapitali zašto vas boli glava? A ako je to posljedica loše kvalitete zraka? Pomoću ovog uređaja možete provjeriti je li to slučaj. Ovaj uređaj mjeri CO2 vrijednost, TVOC vrijednost, temperaturu i vlažnost. Kvalitetu zraka možete vidjeti uživo na LCD zaslonu i vidjeti jasnu naznaku postaje li opasna. Na ovaj način možete otvoriti prozore na vrijeme.

Ako unesete IP -adresu - prikazanu pri pokretanju uređaja u pregledniku - web stranica će se otvoriti. Možete vidjeti mnogo informacija o unutarnjem okruženju, zajedno s grafikonima proteklih minuta / sati. Na nadzornoj ploči nalazi se i indikacija uživo te neke informacije i savjeti.

Ovaj je projekt izradio student Howest Kortrijk, NMCT (New Media and Communication Technology).

Korak 1: Materijali

Materijali
Materijali

Ovo je sve što sam kupio za stvaranje ovog projekta. Ovo je relativno jeftin projekt, ovisno o cijeni 3D ispisa. Ako ga možete ispisati u školi, to bi moglo biti vrlo jeftino. Inače ovisi o mjestu na kojem ga tiskate i materijalu na kojem ga ispisujete. Primijetit ćete da sam ga kupio na veliko, jednostavno zato što je teško pronaći pojedinačne otpornike ili LED diode, što ga čini još jeftinijim. Ako imate vremena, većinu artikala možete naručiti na aliexpress.com, dostava bi mogla potrajati, ali na ovaj način možete ograničiti svoje troškove.

Bez ispisa novac koji sam potrošio na ovaj projekt iznosi 81, 80 €.

Ovo su materijali koji su vam potrebni:

Krug:

  • Malina Pi 3
  • SD kartica 8 GB (minimalno)
  • Senzor kvalitete zraka CCS811
  • Senzor temperature i vlažnosti DHT22
  • Potenciometar (kontrastni LCD)
  • LCD 16x2
  • Žice za spajanje ženskih na ženske
  • Zelena i crvena LED
  • Otpornici (2x470ohm i 1 4700ohm)

Slučaj:

  • 3D ispis
  • Vijci
  • Dvokomponentno ljepilo (ili drugo vruće ljepilo)
  • alat za rezanje niti

Samo ako koristite PCB:

  • Lemilica
  • Flux (olakšava)
  • Kositar
  • Eksperiment pcb 2x4 cm

Korak 2: Veze

Veze
Veze

Spojite žice kao gore. U datoteci za fritzing možete vidjeti električni krug. To nije jako kompliciran krug, ali ako ga želite učiniti što je moguće manjim, definitivno želite nabaviti eksperimentalnu PCB ploču. Ožičenje bi bilo isto, osim što će GND i Vin biti spojeni na PCB ploču. Senzori će biti povezani ženskim kratkospojnicima ili mužjacima s lemljenjem. Ne zaboravite lemiti otpornik na osjetniku DHT22.

Također preporučujem korištenje kratkih kabela, dovoljno je 10 cm. U suprotnom bi se kutija još više napunila kabelom. Ne trebaju vam jako dugi jer je otisak što manji.

Korak 3: 3D ispis

3D ispis
3D ispis
3D ispis
3D ispis

Prvi pomisao koji mi je pao na pamet dok sam razmišljao o kućištu bio je 3D ispis. Budući da je moj tata ispisao nekoliko drugih predmeta i sam ih je dizajnirao. Zajedno smo stvorili ovaj dizajn i razmotrili svaki aspekt. Trebao bi biti dovoljno dobro ohlađen, sve se može zeznuti na svoje mjesto, a ako nije, može se gurnuti na mjesto.

Čak smo izvukli svaku komponentu kako bismo provjerili odgovara li sve. Datoteka je dostupna svima i voljeli bismo čuti neke povratne informacije. Bili smo jako zadovoljni rezultatom.

Korak 4: Kodirajte

Kôd za ovaj projekt možete pronaći na Githubu. Ako ste koristili druge pinove (na primjer drugi GPIO-pin za LED diode, morat ćete prilagoditi ove varijable. Bit će pokrenute dvije python skripte, web.py za web stranicu i sensor.py za čitanje senzora i ažuriranje Uvozit ćemo klasu LCD iz lcd.py.

S konfiguriranim pilom od maline možete započeti. Prije svega morate ažurirati i nadograditi sve pakete:

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

Nakon toga morate instalirati sljedeće pakete:

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

Sada stvorite virtualno okruženje:

me@my -rpi: ~ $ python3 -m pip install -nadogradnja pip setuptools kotač virtualenv

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

Budući da je to učinjeno, možete klonirati kôd s mog GitHub -a u svoje virtualno okruženje. To se može učiniti na više načina.

U direktoriju conf možete pronaći četiri datoteke koje ćete morati prilagoditi ako je potrebno. Svakako ćete morati promijeniti korisnički i početni direktorij u svakoj datoteci. UWSGI ini bi trebao biti u redu sve dok niste promijenili moj kôd, po potrebi promijenite korisnika i virtualenv.

Budući da je senzor CCS811 namjerno korišten za arduino, to ne može komunicirati putem i2c sabirnice brzinom malina pi. Morat ćete smanjiti brzinu na 10000 baudrate (koristio sam 9600) u konfiguracijskoj datoteci.

Također ćete morati nabaviti biblioteku adafruit senzora. Mogao bih ovo objasniti ovdje, ali postoji savršen adafruit vodič koji sve ovo vrlo dobro objašnjava.

Budući da želimo da se python skripte automatski pokreću kad je malina povezana, morat ćete koristiti usluge. Trebali bi biti u redu ako ste zadržali moj kôd. Sve što trebate učiniti da bi mogli pokrenuti je omogućiti im. Prije nego što to učinite, postoji još jedna posljednja stvar.

Budući da koristimo nginx web poslužitelj, morat ćemo deaktivirati zadanu postavku i zamijeniti je vlastitom konfiguracijom. Da biste to učinili, morate slijediti ove korake:

  • kopirajte conf/nginx na *web stranice dostupne *
  • Uklonite vezu na default-config
  • Dodajte vezu na novu konfiguraciju
  • Ponovo pokrenite nginx da biste spremili promjene

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

me@my-rpi: ~/project1 $ sudo systemctl daemon-ponovno učitaj me@my-rpi: ~/project1 $ sudo systemctl pokreni project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginx i mysql trebali bi biti pokrenuti cijelo vrijeme. Pokreću se zajedno s malinom pi. Web skripta i skripta senzora ne samo još.

Da biste to učinili, još uvijek morate omogućiti ove dvije usluge s ovim naredbama:

sudo systemctl omogućiti project1-flask.service

sudo systemctl omogućiti project1-sensor.service

Korak 5: Baza podataka

Baza podataka
Baza podataka

Moja baza podataka sastoji se od tri tablice. Korisnik nema veze s drugim tablicama. Ovo se koristi samo za prijavu i odobravanje pristupa web stranici. Kad je uređaj uključen, vrijednost CO2 i TVOC vrijednost upisivat će se u bazu podataka svakih 50 sekundi. Temperatura i vlaga svakih 5 minuta. Na ovaj način dobivamo jasan pregled prošlosti.

SQL datoteka može se pronaći ovdje, ali da biste dobili bazu podataka o malini pi, slijedite ove korake:

Nakon instalacije paketa u prethodnom koraku, mariadb/mysql trebao bi se odmah pokrenuti. To možete provjeriti ovom linijom:

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

Da biste stvorili bazu podataka i korisnike, jednostavno pokrenite sql-skripte u kodu s GitHub-a. Ako ste ovo učinili ispravno, trebali biste vidjeti svoje tablice pomoću ove naredbe:

me@my-rpi: ~ $ echo 'prikaži tablice;' | mysql project1 -t -u project1 -admin -p

Sada smo spremni, ovo možete testirati bez kućišta kako biste bili sigurni da sve radi. Osim ako niste spojeni na wifi, morat ćete ga povezati Ethernet kabelom i pokrenuti ručno.

Korak 6: Povežite se na Wi-Fi

Otvorite konfiguracijsku datoteku wpa-supplicant u nano (nije važno, samo provjerite možete li raditi s uređivačem teksta).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Idite na dno datoteke i dodajte sljedeće (zamijenite ssid-name i password-name vašim):

mreža = {

ssid = "ssid-name" psk = "name-lozinke"}

Da biste stvorili šifriranu lozinku, možete upotrijebiti wpa_passphrase i jednostavno je kopirati u psk wpa_supplicant.conf kako biste stvari učinili sigurnijima.

wpa_passphrase "ssid-name" "" password-name"

Ako želite da se automatski poveže s ovom Wi-Fi mrežom, a u konfiguracijskoj datoteci ima i drugih, svakako promijenite prioritet na višu razinu dodavanjem ove linije u mrežu u konfiguracijskoj datoteci:

prioritet = 2

Ne zaboravite ponovno konfigurirati sučelje s:

wpa_cli -i wlan0 ponovno konfigurirati

Sada ste spremni i povezani s WiFi mrežom.

Korak 7: Sve spojite

Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega
Spajanje svega

Budući da je sve ožičeno i lemljeno, možemo doći do kućišta. Ovo je dizajnirano tako da možete otvoriti kućište bez olabavljenih žica. To znači da je sve pričvršćeno za donji dio. Prvo što trebate učiniti je malo prilagoditi malinu. Na svakom uglu ima rupe, ali one nisu toliko velike koliko bi trebale biti. Promjer bi trebao biti dovoljan da unutra stane vijak od 3 mm. Morali smo ispolirati rupe tako da postanu malo šire.

Druga stvar koju trebate učiniti je izrezati navoj vijka u svaku rupu. Ovo može zvučati teško, ali se lako može učiniti odgovarajućim alatima. Preporučio bih da to učinite u lokalnoj trgovini hardvera, samo zatražite alat za rezanje niti. Budući da je moj tata zlatar, imao je alate za to na poslu. Možda bih prenio novu stl datoteku kako bi se kasnije ispisala, ali za to je potreban vrlo precizan pisač.

Treći korak je pričvrstiti pi na donji dio. Trebat će vam 4 vijka dugačka 7 7 mm promjera 3 mm. Nakon toga možete gurnuti PCD ploču na predviđeno mjesto na vrhu donjeg dijela. Senzor CCS811 može se ugurati na predviđeno mjesto s lijeve strane, a DHT11 se može pričvrstiti na desnu ploču. Obje su izolirane i dovoljno prozračene, no nakon toga smo primijetili da je unutra još vruće. Više o tome kasnije.

Zatim morate pričvrstiti LED diode na njihovu cijev. To smo učinili dvokomponentnim ljepilom, ali možete to učiniti kako želite. Uvjerite se da se tamo drže.

Sada možete priključiti LCD zaslon, trebat će vam vijci istog promjera kao i prethodni, ali malo dulji. Moji su bili 1 cm. Ako su četiri vijka uvijena, preostaje samo jedno učiniti. Pričvrstite gornji dio. Sve što trebate su četiri vijka, promjera 2 cm. Sada bi sve trebalo biti na svom mjestu i možete ga pokrenuti.

Korak 8: Pokrenite ga

Postupak pokretanja ovog projekta vrlo je jednostavan:

  1. Priključite kabel za napajanje u lijevu stranu kućišta. Nije jako vidljiv, ali možete vidjeti kroz otvore. Ako ste ga jednom dobili, to više neće biti problem.
  2. Dajte mu malo vremena za pokretanje.
  3. IP adresa će se pojaviti na zaslonu deset sekundi. Jedino što trebate učiniti je provjeriti jeste li povezani na istu mrežu i unijeti IP adresu u adresnu traku preglednika.
  4. Sada ste na web stranici. Još nemate račun pa ga stvorite.
  5. Ako ste registrirani, prijavite se.
  6. Gotovo! Sve podatke možete vidjeti na web stranici, a LCD zaslon prikazuje trenutnu kvalitetu zraka.

Budući da toplina raste, locirali smo senzore na dnu kućišta. Na taj način temperatura ne bi imala veliki utjecaj na registrirane vrijednosti. Zato za optimalna mjerenja postavite uređaj da stoji ili ga možete jednostavno objesiti na zid.

Preporučeni: