Turinys:

„AirPi“- oro kokybės jutiklis: 8 žingsniai
„AirPi“- oro kokybės jutiklis: 8 žingsniai

Video: „AirPi“- oro kokybės jutiklis: 8 žingsniai

Video: „AirPi“- oro kokybės jutiklis: 8 žingsniai
Video: EZ-WifiBroadcast , AirPi 1-я часть 2024, Lapkritis
Anonim
„AirPi“- oro kokybės jutiklis
„AirPi“- oro kokybės jutiklis

Ar kada susimąstėte, kodėl jums skauda galvą? O jei taip yra dėl prastos oro kokybės? Naudodami šį įrenginį galite patikrinti, ar taip yra. Šis prietaisas matuoja CO2 vertę, TVOC vertę, temperatūrą ir drėgmę. Skystųjų kristalų ekrane galite matyti tiesioginę oro kokybę ir aiškiai matyti, ar tai tampa pavojinga. Tokiu būdu galite laiku atidaryti langus.

Jei naršyklėje įvesite IP adresą, rodomą paleidžiant įrenginį, svetainė bus atidaryta. Galite pamatyti daug informacijos apie patalpų aplinką, taip pat pastarųjų minučių / valandų grafikus. Prietaisų skydelyje taip pat yra tiesioginė nuoroda ir tam tikra informacija bei patarimai.

Šį projektą atliko Howest Kortrijk, NMCT (Naujosios žiniasklaidos ir komunikacijos technologijų) studentas.

1 žingsnis: medžiagos

Medžiagos
Medžiagos

Tai viskas, ką nusipirkau kurdama šį projektą. Tai gana pigus projektas, atsižvelgiant į 3D spausdinimo kainą. Jei galite spausdinti jį mokykloje, tai gali būti labai pigu. Priešingu atveju tai priklauso nuo to, kur spausdinate, ir nuo medžiagos, kurioje spausdinate. Pastebėsite, kad daug pirkau urmu, vien todėl, kad sunku rasti atskirų rezistorių ar lempučių, todėl tai dar pigiau. Jei turite laiko, daugumą prekių galite užsisakyti aliexpress.com, pristatymas gali užtrukti, tačiau tokiu būdu galite apriboti savo išlaidas.

Be spaudinio pinigai, kuriuos išleidau šiam projektui, yra 81, 80 eurų.

Tai yra medžiagos, kurių jums reikia:

Grandinė:

  • Raspberry Pi 3
  • SD kortelė 8 GB (mažiausiai)
  • CCS811 oro kokybės jutiklis
  • DHT22 temperatūros ir drėgmės jutiklis
  • Potenciometras (kontrastinis LCD)
  • LCD 16x2
  • Sujungimo laidai nuo moterų iki moterų
  • Žalia ir raudona šviesos diodas
  • Rezistoriai (2x 470 omų ir 1 4700 omų)

Byla:

  • 3D spausdinimas
  • Varžtai
  • 2 komponentų klijai (arba kiti karšti klijai)
  • siūlų pjovimo įrankis

Tik jūs naudojate PCB:

  • Lituoklis
  • Flux (palengvina)
  • Alavas
  • Eksperimento PCB 2x4cm

2 žingsnis: jungtys

Sujungimai
Sujungimai

Prijunkite laidus, kaip aprašyta aukščiau. Šaldymo faile galite pamatyti elektros grandinę. Tai nėra labai sudėtinga grandinė, bet jei norite, kad ji būtų kuo mažesnė, tikrai norite gauti eksperimentinę PCB plokštę. Laidai būtų tie patys, išskyrus tai, kad GND ir Vin bus prijungti prie PCB plokštės. Jutikliai bus prijungti moteriškais jungiamaisiais laidais arba patinais su litavimu. Nepamirškite lituoti rezistoriaus ant DHT22 jutiklio.

Taip pat rekomenduoju naudoti trumpus kabelius, 10 cm turėtų būti. Priešingu atveju dėžutė bus dar labiau užpildyta kabeliu. Jums nereikia labai ilgų, nes spaudinio dydis yra kuo mažesnis.

3 žingsnis: 3D spausdinimas

3D spausdinimas
3D spausdinimas
3D spausdinimas
3D spausdinimas

Pirma mintis, šovusi į galvą, kai galvojau apie dėklą, buvo 3D spausdinimas. Kadangi mano tėtis buvo išspausdinęs daugybę kitų daiktų ir pats juos sukūrė. Kartu sukūrėme šį dizainą ir apgalvojome visus aspektus. Jis turėtų būti pakankamai gerai atvėsęs, viską galima užsukti į vietą, o jei ne, galima įstumti į vietą.

Mes net nupiešėme kiekvieną komponentą, kad patikrintume, ar viskas tinka. Failas yra prieinamas visiems ir norėtume išgirsti atsiliepimų. Likome labai patenkinti rezultatu.

4 žingsnis: kodas

Šio projekto kodą rasite „Github“. Jei naudojote kitus kaiščius (pvz., Kitą GPIO kaištį šviesos diodams, turėsite pakoreguoti šiuos kintamuosius. Bus vykdomi du „python“scenarijai, „web.py“svetainei ir „sensor.py“, kad skaitytų jutiklius ir atnaujintų Mes importuosime klasės LCD iš lcd.py.

Naudodami sukonfigūruotą aviečių pi galite pradėti. Pirmiausia turite atnaujinti ir atnaujinti visus paketus:

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

Po to turėsite įdiegti šiuos paketus:

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

Dabar sukurkite virtualią aplinką:

me@my -rpi: ~ $ python3 -m pip install -atnaujinti pip setuptools ratą virtualenv

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

Kadangi tai padaryta, galite klonuoti kodą iš mano „GitHub“į savo virtualią aplinką. Tai galima padaryti keliais būdais.

Kataloge conf galite rasti keturis failus, kuriuos prireikus turėsite pakoreguoti. Jūs tikrai turėsite pakeisti vartotoją ir namų katalogą kiekviename faile. „UWSGI ini“turėtų būti gerai, jei nepakeitėte mano kodo, būtinai pakeiskite vartotoją ir „virtualenv“, jei reikia.

Kadangi CCS811 jutiklis buvo sąmoningai naudojamas arduino, tai negali susisiekti per i2c magistralę aviečių pi greičiu. Konfigūracijos faile turėsite sumažinti greitį iki 10000 (naudoju 9600).

Taip pat turėsite gauti adafruit jutiklio biblioteką. Galėčiau tai paaiškinti čia, bet yra puikus adafruit vadovas, kuris visa tai labai gerai paaiškina.

Kadangi norime, kad „Python“scenarijai būtų paleisti automatiškai, kai avietės yra prijungtos, turėsite naudotis paslaugomis. Jie turėtų būti gerai, jei išsaugotumėte mano kodą. Viskas, ką jums reikia padaryti, kad jie veiktų, yra juos įgalinti. Prieš tai darant, yra paskutinis dalykas.

Kadangi mes naudojame „nginx“žiniatinklio serverį, turėsime išjungti numatytąją ir pakeisti ją savo konfigūracija. Norėdami tai padaryti, turite atlikti šiuos veiksmus:

  • nukopijuokite conf/nginx į *svetaines-prieinamas *
  • Pašalinkite nuorodą į numatytąją konfigūraciją
  • Pridėkite nuorodą prie naujos konfigūracijos
  • Iš naujo paleiskite „nginx“, kad išsaugotumėte pakeitimus

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

aš@mano-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

„Nginx“ir „mysql“turėtų veikti visą laiką. Jie prasideda kartu su aviečių pi. Žiniatinklio scenarijus ir jutiklio scenarijus dar ne tik.

Norėdami tai padaryti, vis tiek turite įgalinti šias dvi paslaugas naudodami šias komandas:

sudo systemctl įgalinti project1-flask.service

sudo systemctl įgalinti project1-sensor.service

5 veiksmas: duomenų bazė

Duomenų bazė
Duomenų bazė

Mano duomenų bazę sudaro trys lentelės. Vartotojas neturi ryšio su kitomis lentelėmis. Tai naudojama tik norint prisijungti ir suteikti prieigą prie svetainės. Įjungus prietaisą, CO2 ir TVOC vertė bus įrašoma į duomenų bazę kas 50 sekundžių. Temperatūra ir drėgmė kas 5 minutes. Taip gauname aiškią praeities apžvalgą.

SQL failą rasite čia, tačiau norėdami gauti „Raspberry pi“duomenų bazę, atlikite šiuos veiksmus:

Įdiegus paketus ankstesniame žingsnyje, „mariadb/mysql“turėtų būti paleistas nedelsiant. Tai galite patikrinti naudodami šią eilutę:

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

Norėdami sukurti duomenų bazę ir vartotojus, galite tiesiog paleisti „SQL“scenarijus, pateiktus „GitHub“kode. Jei tai padarėte teisingai, turėtumėte pamatyti lenteles naudodami šią komandą:

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

Dabar esame pasiruošę, galite tai išbandyti be dėklo, kad įsitikintumėte, jog viskas veikia. Jei nesate prisijungę prie „Wi -Fi“, turėsite jį prijungti eterneto kabeliu ir paleisti rankiniu būdu.

6 veiksmas: prisijunkite prie „Wi-Fi“

„Nano“atidarykite „wpa-supplicant“konfigūracijos failą (nesvarbu, tiesiog įsitikinkite, kad galite dirbti su teksto redaktoriumi).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Eikite į failo apačią ir pridėkite:

tinklas = {

ssid = "ssid-name" psk = "slaptažodžio vardas"}

Norėdami sukurti užšifruotą slaptažodį, galite naudoti wpa_passphrase ir tiesiog nukopijuoti jį į wpa_supplicant.conf psk, kad viskas būtų saugiau.

wpa_passphrase "ssid-name" "slaptažodžio vardas"

Jei norite, kad jis automatiškai prisijungtų prie šio „Wi-Fi“tinklo, o konfigūracijos faile yra ir kitų, būtinai pakeiskite prioritetą į aukštesnį lygį, pridėdami šią eilutę prie tinklo konfigūracijos faile:

prioritetas = 2

Nepamirškite iš naujo sukonfigūruoti sąsajos:

wpa_cli -i wlan0 perkonfigūruoti

Dabar esate pasiruošę ir prisijungę prie „Wi -Fi“tinklo.

7 žingsnis: viską sudėkite

Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti

Kadangi viskas yra prijungta ir prilituota, galime patekti į korpusą. Tai buvo sukurta taip, kad galėtumėte atidaryti dėklą be laisvų laidų. Tai reiškia, kad viskas pritvirtinta prie apatinės dalies. Pirmas dalykas, kurį reikia padaryti, yra šiek tiek pakoreguoti avietę. Kiekviename kampe yra skylių, tačiau jos nėra tokios didelės, kaip turėtų būti. Skersmuo turėtų būti pakankamas, kad viduje tilptų 3 mm varžtas. Turėjome poliruoti skyles, kad jos būtų šiek tiek platesnės.

Antras dalykas, kurį reikia padaryti, yra įsukti varžtą į kiekvieną skylę. Tai gali atrodyti sunku, bet tai galima lengvai padaryti naudojant tinkamus įrankius. Aš rekomenduočiau tai padaryti vietinėje techninės įrangos parduotuvėje, tiesiog paprašykite siūlų pjovimo įrankio. Kadangi mano tėtis yra auksakalis, jis turėjo įrankių tai padaryti darbe. Galėčiau įkelti naują stl failą, kad vėliau jis būtų atspausdintas, tačiau tam reikia labai tikslaus spausdintuvo.

Trečias žingsnis yra prisukti pi ant apatinės dalies. Jums reikės 4 7 mm ilgio varžtų, kurių skersmuo yra 3 mm. Po to PCD plokštę galite įstumti į numatytą vietą apatinės dalies viršuje. CCS811 jutiklį galima įstumti į numatytą vietą kairėje pusėje, o DHT11 - pritvirtinti prie dešinės plokštės. Abu yra izoliuoti ir pakankamai vėdinami, tačiau vėliau pastebėjome, kad viduje vis dar karšta. Daugiau apie tai vėliau.

Tada turite prijungti šviesos diodus prie jų vamzdžio. Mes tai padarėme su 2 komponentų klijais, bet jūs galite tai padaryti, kaip jums patinka. Įsitikinkite, kad jie ten prilimpa.

Dabar galite pritvirtinti LCD ekraną, jums reikės varžtų, kurių skersmuo yra toks pat kaip ir ankstesnių, bet šiek tiek ilgesnis. Mano buvo 1 cm. Jei keturi varžtai yra įsukti, belieka tik vienas dalykas. Pritvirtinkite viršutinę dalį. Jums reikia tik keturių varžtų, kurių skersmuo yra 2 cm. Dabar viskas turėtų būti savo vietose ir galite pradėti.

8 žingsnis: paleiskite

Šio projekto pradinis procesas yra labai lengvas:

  1. Prijunkite maitinimo kabelį kairėje dėklo pusėje. Jis nelabai matomas, bet pro angas matosi. Jei jį gausite vieną kartą, tai vėl nebus problema.
  2. Skirkite šiek tiek laiko pradėti.
  3. IP adresas ekrane bus rodomas dešimt sekundžių. Vienintelis dalykas, kurį turite padaryti, yra įsitikinti, kad esate prisijungę prie to paties tinklo, ir įveskite IP adresą į savo naršyklės adreso juostą.
  4. Dabar esate svetainėje. Jūs dar neturite paskyros, todėl susikurkite paskyrą.
  5. Jei esate užsiregistravęs, prisijunkite.
  6. Padaryta! Visus duomenis galite pamatyti tinklalapyje, o LCD ekranas rodo esamą oro kokybę.

Pakilus šilumai, jutiklius pastatėme korpuso apačioje. Tokiu būdu temperatūra neturės didelės įtakos registruotoms vertėms. Taigi, norėdami atlikti optimalius matavimus, priverskite prietaisą atsistoti arba galite tiesiog pakabinti ant sienos.

Rekomenduojamas: