Sisällysluettelo:

AirPi - ilmanlaatuanturi: 8 vaihetta
AirPi - ilmanlaatuanturi: 8 vaihetta

Video: AirPi - ilmanlaatuanturi: 8 vaihetta

Video: AirPi - ilmanlaatuanturi: 8 vaihetta
Video: OpenHD 2.0.8 09.05.2021 2024, Marraskuu
Anonim
AirPi - ilmanlaatuanturi
AirPi - ilmanlaatuanturi

Oletko koskaan miettinyt, miksi sinulle tulee päänsärky? Ja jos tämä johtuu huonosta ilmanlaadusta? Tämän laitteen avulla voit tarkistaa, onko näin. Tämä laite mittaa CO2-arvon, TVOC-arvon, lämpötilan ja kosteuden. Näet ilmanlaadun suorana LCD-näytöstä ja näet selkeän ilmoituksen, jos siitä tulee vaarallista. Näin voit avata ikkunat ajoissa.

Jos syötät IP -osoitteen, joka näkyy laitteen käynnistyksen yhteydessä selaimessasi, verkkosivusto avautuu. Näet paljon tietoa sisäympäristöstä sekä viimeisten minuuttien / tuntien kaavioita. Kojelaudassa on myös live -indikaatio sekä tietoja ja vinkkejä.

Tämän projektin teki opiskelija Howest Kortrijkissa, NMCT: ssä (New Media and Communication Technology).

Vaihe 1: Materiaalit

Materiaalit
Materiaalit

Tämä on kaikki, mitä ostin tämän projektin luomiseksi. Tämä on suhteellisen halpa projekti, riippuen 3D-tulostuksen kustannuksista. Jos voit tulostaa sen koulussa, tämä voi olla erittäin halpaa. Muussa tapauksessa se riippuu siitä, missä tulostat sen ja mistä materiaalista tulostat sen. Huomaat, että ostin paljon irtotavarana yksinkertaisesti siksi, että yksittäisten vastusten tai ledien löytäminen on vaikeaa, mikä tekee siitä vielä halvemman. Jos sinulla on aikaa, voit tilata suurimman osan tuotteista aliexpress.com -sivustolta, toimitus voi kestää jonkin aikaa, mutta tällä tavalla voit rajoittaa kulujasi.

Ilman painatusta tähän projektiin käyttämäni raha on 81,80 euroa.

Nämä ovat tarvitsemasi materiaalit:

Piiri:

  • Raspberry Pi 3
  • SD -kortti 8 Gt (vähintään)
  • CCS811 ilmanlaadun anturi
  • DHT22 lämpötila- ja kosteusanturi
  • Potentiometri (kontrasti LCD)
  • LCD 16x2
  • Naaras -naarashyppyjohdot
  • Vihreä ja punainen LED
  • Vastukset (2x470ohm ja 1 4700ohm)

Kotelo:

  • 3D-tulostus
  • Ruuvit
  • 2 -komponenttinen liima (tai muu kuuma liima)
  • langankatkaisutyökalu

Vain sinä käytät piirilevyä:

  • Juotin
  • Flux (helpottaa)
  • Tina
  • Kokeile piirilevyä 2x4 cm

Vaihe 2: Liitännät

Liitännät
Liitännät

Liitä johdot kuten edellä. Näet sähköpiirin fritzing -tiedostossa. Se ei ole kovin monimutkainen piiri, mutta jos haluat tehdä siitä mahdollisimman pienen, haluat ehdottomasti saada kokeilupiirilevyn. Johdotus olisi sama, paitsi että GND ja Vin kytketään piirilevyyn. Anturit kytketään naarashyppyjohtimilla tai uroksilla, joissa on juotos. Älä unohda juottaa DHT22 -anturin vastusta.

Suosittelen myös lyhyiden kaapeleiden käyttöä, 10 cm pitäisi tehdä. Muuten laatikko täyttyisi vielä enemmän kaapelilla. Et tarvitse kovin pitkiä, koska tulosteen koko on tehty mahdollisimman pieneksi.

Vaihe 3: 3D-tulostus

3D-tulostus
3D-tulostus
3D-tulostus
3D-tulostus

Ensimmäinen ajatus, joka tuli mieleeni, kun ajattelin tapausta, oli 3D-tulostus. Koska isäni oli tulostanut useita muita esineitä ja hän suunnitteli ne itse. Yhdessä loimme tämän mallin ja mietimme kaikkia näkökohtia. Sen pitäisi olla riittävän hyvin jäähdytetty, kaikki voidaan ruuvata paikoilleen ja jos ei, se voidaan työntää paikalleen.

Piirsimme jopa kaikki komponentit tarkistaaksemme, sopivatko kaikki. Tiedosto on kaikkien saatavilla ja haluaisimme kuulla palautetta. Olimme erittäin tyytyväisiä tulokseen.

Vaihe 4: Koodi

Tämän projektin koodi löytyy Githubista. Jos olet käyttänyt muita nastoja (esimerkiksi toista GPIO-nastaa LED-valoja varten, sinun on säädettävä nämä muuttujat. Tulee kaksi python-skriptiä, web.py verkkosivustolle ja sensor.py lukemaan antureita ja päivittämään Tuomme luokan nestekidenäytön osoitteesta lcd.py.

Määritetyn vadelmapi: n avulla voit aloittaa. Ensinnäkin sinun on päivitettävä ja päivitettävä kaikki paketit:

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

Tämän jälkeen sinun on asennettava seuraavat paketit:

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

Luo nyt virtuaalinen ympäristö:

me@my -rpi: ~ $ python3 -m pip install -päivitä pip setuptools wheel virtualenv

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

Koska tämä on tehty, voit kloonata GitHub -koodini virtuaaliseen ympäristöön. Tämä voidaan tehdä useilla tavoilla.

Hakemistosta conf löydät neljä tiedostoa, jotka sinun on muutettava tarvittaessa. Sinun on ehdottomasti vaihdettava käyttäjä ja kotihakemisto jokaisessa tiedostossa. UWSGI -inin pitäisi olla kunnossa niin kauan kuin et ole muuttanut koodiani, muista vaihtaa käyttäjä ja virtualenv tarvittaessa.

Koska CCS811 -anturia käytettiin tarkoituksella arduinoa varten, tämä ei voi kommunikoida i2c -väylän yli vadelmapi: n nopeudella. Sinun on vähennettävä nopeus määritystiedoston 10000 baudin nopeuteen (käytin 9600).

Sinun on myös hankittava adafruit -anturin kirjasto. Voisin selittää tämän täällä, mutta siellä on täydellinen adafruit -opas, joka selittää kaiken tämän erittäin hyvin.

Koska haluamme, että python -komentosarjat suoritetaan automaattisesti, kun vadelma on yhdistetty, sinun on käytettävä palveluja. Niiden pitäisi olla kunnossa, jos pidät koodini. Sinun tarvitsee vain ottaa ne käyttöön, jotta ne toimivat. Ennen kuin teet sen, on viimeinen asia.

Koska käytämme nginx -verkkopalvelinta, meidän on deaktivoitava oletus ja korvattava se omalla kokoonpanollamme. Tätä varten on noudatettava seuraavia vaiheita:

  • kopioi conf/nginx *sites-available *
  • Poista linkki oletuskonfiguraatioon
  • Lisää linkki uuteen kokoonpanoon
  • Tallenna muutokset käynnistämällä nginx uudelleen

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

me@my-rpi: ~/project1 $ sudo systemctl daemon-lataa minut uudelleen@my-rpi: ~/project1 $ sudo systemctl aloita projekti1-* minä@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginxin ja mysqlin pitäisi olla käynnissä koko ajan. Ne alkavat yhdessä vadelmapi kanssa. Verkkoskripti ja anturiskripti eivät ole vielä.

Tätä varten sinun on silti otettava nämä kaksi palvelua käyttöön seuraavilla komennoilla:

sudo systemctl ota käyttöön projekti1-flask.service

sudo systemctl ota käyttöön project1-sensor.service

Vaihe 5: Tietokanta

Tietokanta
Tietokanta

Tietokanta koostuu kolmesta taulukosta. Käyttäjällä ei ole mitään yhteyttä muihin taulukoihin. Tätä käytetään vain sisäänkirjautumiseen ja sivuston käyttöoikeuden myöntämiseen. Kun laite käynnistetään, CO2-arvo ja TVOC-arvo kirjoitetaan tietokantaan 50 sekunnin välein. Lämpötila ja kosteus 5 minuutin välein. Näin saamme selkeän yleiskuvan menneisyydestä.

SQL-tiedosto löytyy täältä, mutta saadaksesi vadelman pi tietokannan, toimi seuraavasti:

Kun paketit on asennettu edellisessä vaiheessa, mariadb/mysql pitäisi olla käynnissä heti. Voit tarkistaa tämän tällä rivillä:

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

Voit luoda tietokannan ja käyttäjät yksinkertaisesti suorittamalla sql-komentosarjat GitHubin koodissa. Jos teit tämän oikein, sinun pitäisi nähdä taulukot käyttämällä tätä komentoa:

me@my-rpi: ~ $ echo 'näytä taulukot;' | mysql project1 -t -u project1 -admin -p

Nyt olemme valmiita, voit testata tämän ilman koteloa varmistaaksesi, että kaikki toimii. Jos et ole yhteydessä wifi -verkkoon, sinun on yhdistettävä se Ethernet -kaapelilla ja suoritettava se manuaalisesti.

Vaihe 6: Yhdistä Wi-Fi-verkkoon

Avaa wpa-rukoilijan määritystiedosto nanossa (sillä ei ole väliä, vain varmista, että voit työskennellä tekstieditorin kanssa).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Siirry tiedoston alaosaan ja lisää seuraava (korvaa ssid-name ja password-name omallasi):

verkko = {

ssid = "ssid-name" psk = "salasanan nimi"}

Voit luoda salatun salasanan käyttämällä wpa_passphrase -toimintoa ja yksinkertaisesti kopioimalla sen wpa_supplicant.conf psk -tiedostoon, jotta asiat olisivat turvallisempia.

wpa_passphrase "ssid-name" "password-name"

Jos haluat sen muodostavan yhteyden tähän Wi-Fi-verkkoon automaattisesti ja muita tiedostoja on määritystiedostossa, varmista, että muutat prioriteetin korkeammalle tasolle lisäämällä tämän rivin verkkoon määritystiedostossa:

prioriteetti = 2

Älä unohda määrittää käyttöliittymää uudelleen:

wpa_cli -i wlan0 määritä uudelleen

Nyt olet valmis ja muodostanut yhteyden wifi -verkkoon.

Vaihe 7: Yhdistä kaikki

Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen
Kaikki yhteen

Koska kaikki on kytketty ja juotettu, voimme päästä tapaukseen. Tämä on suunniteltu siten, että voit avata kotelon ilman löysiä johtoja. Tämä tarkoittaa, että kaikki on kiinnitetty alaosaan. Ensimmäinen asia on hieman säätää vadelmaa. Siinä on reikiä joka kulmassa, mutta ne eivät ole niin suuria kuin niiden pitäisi olla. Halkaisijan tulisi olla riittävä, jotta se mahtuu 3 mm: n ruuviin, ja meidän oli hiottava reiät niin, että ne olivat hieman leveämpiä.

Toinen asia on katkaista ruuvikierre jokaiseen reikään. Tämä saattaa kuulostaa vaikealta, mutta se voidaan tehdä helposti oikeilla työkaluilla. Suosittelen tekemään tämän paikallisessa rautakaupassa, kysy vain langankatkaisutyökalua. Koska isäni on kultaseppä, hänellä oli työkalut tämän tekemiseen töissä. Voisin ladata uuden stl-tiedoston niin, että se tulostetaan myöhemmin, mutta tämä vaatii erittäin tarkan tulostimen.

Kolmas vaihe on ruuvata pi pohjaosaan. Tarvitset 4 7 mm pitkiä ruuveja, joiden halkaisija on 3 mm. Tämän jälkeen voit työntää PCD -levyn alaosan yläosassa olevaan paikkaan. CCS811 -anturi voidaan työntää sisään vasemmalla puolella olevaan paikkaan ja DHT11 voidaan kiinnittää oikeaan levyyn. Molemmat ovat eristettyjä ja tuuletettuja riittävästi, mutta myöhemmin huomasimme, että sisällä oli vielä kuuma. Siitä lisää myöhemmin.

Sitten sinun on kiinnitettävä LEDit putkeen. Teimme tämän kaksikomponenttisella liimalla, mutta voit tehdä sen haluamallasi tavalla. Varmista, että ne pysyvät siellä.

Nyt voit kiinnittää nestekidenäytön, tarvitset ruuveja, joiden halkaisija on sama kuin edellisillä, mutta hieman pidempään. Omat olivat 1 cm. Jos neljä ruuvia on ruuvattu sisään, on jäljellä vain yksi asia. Kiinnitä yläosa. Tarvitset vain neljä ruuvia, joiden halkaisija on sama ja ne ovat 2 cm. Nyt kaiken pitäisi olla paikallaan ja voit aloittaa sen.

Vaihe 8: Käynnistä se

Tämän projektin käynnistäminen on erittäin helppoa:

  1. Kiinnitä virtajohto kotelon vasempaan reunaan. Se ei ole kovin näkyvissä, mutta näet tuuletusaukkojen läpi. Jos saat sen kerran, tämä ei ole ongelma uudelleen.
  2. Anna sille aikaa käynnistyä.
  3. IP-osoite näkyy näytössä kymmenen sekunnin ajan. Sinun tarvitsee vain varmistaa, että olet yhteydessä samaan verkkoon ja kirjoittaa IP-osoite selaimesi osoiteriville.
  4. Olet nyt verkkosivustolla. Sinulla ei ole vielä tiliä, joten luo tili.
  5. Jos olet rekisteröitynyt, kirjaudu sisään.
  6. Tehty! Näet kaikki tiedot verkkosivulla ja LCD-näyttö näyttää nykyisen ilmanlaadun.

Koska lämpö nousee, olemme sijoittaneet anturit kotelon alaosaan. Tällä tavalla lämpötilalla ei olisi suurta vaikutusta rekisteröityihin arvoihin. Joten optimaaliset mittaukset saat laitteen seisomaan tai voit yksinkertaisesti ripustaa sen seinälle.

Suositeltava: