Indholdsfortegnelse:

AirPi - luftkvalitetssensor: 8 trin
AirPi - luftkvalitetssensor: 8 trin

Video: AirPi - luftkvalitetssensor: 8 trin

Video: AirPi - luftkvalitetssensor: 8 trin
Video: Raspberry Pi 8-way power relay test 2024, December
Anonim
AirPi - luftkvalitetssensor
AirPi - luftkvalitetssensor

Har du nogensinde undret dig over, hvorfor du får hovedpine? Og hvis det skyldes en dårlig luftkvalitet? Med denne enhed kan du kontrollere, om dette er tilfældet. Denne enhed måler CO2-værdien, TVOC-værdien, temperaturen og fugtigheden. Du kan se luftkvaliteten live på LCD-displayet og se en klar indikation, hvis det bliver farligt. På denne måde kan du åbne dine vinduer i tide.

Hvis du indtaster IP -adressen - vist når du starter enheden i din browser - åbner webstedet sig. Du kan se en masse oplysninger om indendørsmiljøet sammen med grafer over de sidste minutter / timer. Der er også en live indikation og nogle oplysninger og tips på instrumentbrættet.

Dette projekt blev lavet af en studerende på Howest Kortrijk, NMCT (New Media and Communication Technology).

Trin 1: Materialer

Materialer
Materialer

Dette er alt, hvad jeg købte for at oprette dette projekt. Dette er et relativt billigt projekt, afhængigt af omkostningerne ved 3D-print. Hvis du er i stand til at udskrive det i skolen, kan det være meget billigt. Ellers afhænger det af, hvor du udskriver det og det materiale, du udskriver det i. Du vil bemærke, at jeg har købt meget i bulk, simpelthen fordi det er svært at finde individuelle modstande eller lysdioder, og det gør det endnu billigere. Hvis du har tid, kan du bestille de fleste varer på aliexpress.com, leveringen kan tage et stykke tid, men på denne måde kan du begrænse dine udgifter.

Uden trykket er de penge, jeg brugte på dette projekt, 81,80 €.

Disse materialer har du brug for:

Kredsløb:

  • Raspberry Pi 3
  • SD -kort 8 GB (minimum)
  • Luftkvalitetssensor CCS811
  • DHT22 temperatur- og fugtighedsføler
  • Potentiometer (kontrast LCD)
  • LCD 16x2
  • Jumper til hun til hun
  • Grøn og rød LED
  • Modstande (2x470ohm og 1 4700ohm)

Sag:

  • 3D-print
  • Skruer
  • 2 -komponent lim (eller anden varm lim)
  • gevindskæringsværktøj

Kun hvis du bruger et printkort:

  • Loddekolbe
  • Flux (gør det lettere)
  • Tin
  • Eksperiment pcb 2x4cm

Trin 2: Forbindelser

Forbindelser
Forbindelser

Tilslut ledningerne som ovenfor. Du kan se et elektrisk kredsløb i fritzing -filen. Det er ikke et meget kompliceret kredsløb, men hvis du vil gøre det så lille som mit muligt, vil du helt sikkert få et eksperiment -printkort. Ledningerne ville være de samme, bortset fra at GND og Vin vil blive forbundet til printkortet. Sensorerne vil blive forbundet med hunkabletråde eller hanner med lodning. Glem ikke at lodde modstanden på DHT22 -sensoren.

Jeg anbefaler også at bruge korte kabler, 10 cm burde gøre. Ellers ville kassen blive fyldt med kabel endnu mere. Du behøver ikke meget lange, da printets størrelse er lavet så lille som muligt.

Trin 3: 3D-print

3D-print
3D-print
3D-print
3D-print

Den første tanke, der dukkede op i mit hoved, da jeg tænkte på en sag, var et 3D-print. Da min far havde udskrevet flere andre ting, og han designede dem selv. Sammen skabte vi dette design og tænkte på alle aspekter. Det skal være godt nok afkølet, alt kan skrues på plads, og hvis ikke, kan det skubbes på plads.

Vi tegnede endda hver komponent for at kontrollere, om alt passer ind. Filen er tilgængelig for alle, og vi vil meget gerne høre lidt feedback. Vi var meget tilfredse med resultatet.

Trin 4: Kode

Koden til dette projekt kan findes på Github. Hvis du har brugt andre pins (f.eks. En anden GPIO-pin til LED'erne, bliver du nødt til at justere disse variabler. Der kommer to python-scripts til at køre, web.py for webstedet og sensor.py for at læse sensorerne og opdatere databasen. Vi importerer klassens LCD fra lcd.py.

Med en konfigureret hindbær pi kan du komme i gang. Først og fremmest skal du opdatere og opgradere alle pakker:

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

Derefter skal du installere følgende pakker:

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

Opret nu et virtuelt miljø:

mig@my -rpi: ~ $ python3 -m pip installation -opgrader pip setuptools hjul virtualenv

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

Da dette er gjort, kan du klone koden fra min GitHub til dit virtuelle miljø. Dette kan gøres på flere måder.

I telefonbogen conf kan du finde fire filer, du skal justere, hvis det er nødvendigt. Du bliver helt sikkert nødt til at ændre bruger og hjemmekatalog i hver fil. UWSGI ini skulle være fint, så længe du ikke ændrede min kode, skal du sørge for at ændre brugeren og virtualenv, hvis det er nødvendigt.

Da CCS811 -sensoren forsætligt blev brugt til arduinoen, kan denne ikke kommunikere over i2c -bussen med raspberry pi's hastighed. Du bliver nødt til at reducere hastigheden til en baudrate på 10000 (jeg brugte 9600) i konfigurationsfilen.

Du skal også få biblioteket til adafruit -sensoren. Jeg kunne forklare dette her, men der er en perfekt adafruit -guide, der forklarer alt dette meget godt.

Fordi vi vil have python -scripts til at køre automatisk, når hindbæret er tilsluttet, skal du bruge tjenesterne. De burde være fine, hvis du beholdt min kode. Alt du skal gøre for at de kan køre er at aktivere dem. Inden du gør det, er der en sidste ting.

Da vi bruger en nginx webserver, bliver vi nødt til at deaktivere standarden og erstatte den med vores egen konfiguration. For at gøre dette skal disse trin følges:

  • kopiér conf/nginx til *tilgængelige websteder *
  • Fjern linket til standardkonfigurationen
  • Tilføj et link til den nye konfiguration
  • Genstart nginx for at gemme ændringerne

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

mig@min-rpi: ~/projekt1 $ sudo systemctl daemon-genindlæs mig@min-rpi: ~/projekt1 $ sudo systemctl start projekt1-* mig@min-rpi: ~/projekt1 $ sudo systemctl status projekt1-*

Nginx og mysql skal køre hele tiden. De starter sammen med hindbær pi. Webscriptet og sensorscriptet ikke lige endnu.

For at gøre dette skal du stadig aktivere disse to tjenester med disse kommandoer:

sudo systemctl aktiver projekt1-flask.service

sudo systemctl aktiver projekt1-sensor.service

Trin 5: Database

Database
Database

Min database består af tre tabeller. Bruger har ingen relation til andre tabeller. Dette bruges kun til at logge ind og give adgang til webstedet. Når enheden tændes, skrives CO2-værdien og TVOC-værdien til databasen hvert 50. sekund. Temperatur og luftfugtighed hvert 5. minut. På den måde får vi et klart overblik over fortiden.

SQL-filen kan findes her, men for at få databasen på hindbær pi, skal du følge disse trin:

Efter installationen af pakkerne i det foregående trin skulle mariadb/mysql køre med det samme. Du kan kontrollere dette med denne linje:

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

For at oprette databasen og brugere kan du simpelthen køre sql-scripts i koden fra GitHub. Hvis du gjorde dette korrekt, skulle du se dine tabeller ved hjælp af denne kommando:

mig@my-rpi: ~ $ echo 'vis tabeller;' | mysql projekt1 -t -u projekt1 -admin -p

Nu er vi klar, du kan teste dette uden sagen for at sikre, at alt fungerer. Medmindre du er tilsluttet wifi, skal du tilslutte det med et ethernet -kabel og køre det manuelt.

Trin 6: Opret forbindelse til Wi-Fi

Åbn konfigurationsfilen wpa-supplicant i nano (er ikke ligegyldigt, bare sørg for at du kan arbejde med teksteditoren).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Gå til bunden af filen, og tilføj følgende (erstat ssid-navn og password-navn med dit):

netværk = {

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

For at oprette en krypteret adgangskode kan du bruge wpa_passphrase og simpelthen kopiere den til wpa_supplicant.conf psk for at gøre tingene mere sikre.

wpa_passphrase "ssid-name" "password-name"

Hvis du vil have den til at oprette forbindelse til dette Wi-Fi-netværk automatisk, og der er andre i konfigurationsfilen, skal du sørge for at ændre prioriteten til et højere niveau ved at tilføje denne linje til netværket i konfigurationsfilen:

prioritet = 2

Glem ikke at omkonfigurere grænsefladen med:

wpa_cli -i wlan0 omkonfigurer

Nu er du klar og forbundet til et wifi -netværk.

Trin 7: Sæt alt sammen

Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen

Da alt er kablet op og loddet, kan vi komme til sagen. Dette var designet, så du kunne åbne sagen uden løse ledninger. Det betyder, at alt er fastgjort til den nederste del. Den første ting at gøre er en lille justering af hindbær. Det har huller i det på hvert hjørne, men disse er ikke så store, som de burde være. Diameteren skulle være nok til at passe til en 3 mm skrue indeni. Vi måtte polere hullerne, så de blev lidt bredere.

Den anden ting at gøre er at skære en skruegevind i hvert hul. Dette lyder måske hårdt, men kan let gøres med de rigtige værktøjer. Jeg vil anbefale at gøre dette i en lokal isenkræmmer, bare spørg om et gevindskæringsværktøj. Da min far er guldsmed, havde han værktøjerne til at gøre dette på arbejdet. Jeg vil muligvis uploade en ny stl-fil, så denne udskrives senere, men det kræver en meget præcis printer.

Det tredje trin er at skrue pi'en på den nederste del. Du skal bruge 4 4 mm lange skruer med en diameter på 3 mm. Herefter kan du skubbe PCD -kortet ind på det medfølgende sted øverst på den nederste del. CCS811 -sensoren kan skubbes ind på det medfølgende sted i venstre side, og DHT11 kan fastgøres til den højre plade. Begge er isoleret og ventileret tilstrækkeligt, men bagefter bemærkede vi, at det stadig blev varmt indeni. Mere om det senere.

Derefter skal du vedhæfte LED'erne til deres rør. Vi gjorde dette med 2 -komponent lim, men du kan gøre det, som du vil. Sørg for, at de sidder fast der.

Nu kan du montere LCD-displayet, du skal bruge skruer med samme diameter som de tidligere, men lidt længere. Mine var 1 cm. Hvis de fire skruer er skruet ind, er der kun én ting tilbage. Fastgør den øverste del. Det eneste du skal bruge er fire skruer med samme diameter, og disse er 2 cm. Nu skal alt være på plads, og du kan starte det op.

Trin 8: Start det

Startprocessen for dette projekt er meget let:

  1. Sæt strømkablet i den venstre side af kabinettet. Det er ikke særlig synligt, men du kan se gennem ventilationsåbningerne. Hvis du fik det en gang, vil det ikke være et problem igen.
  2. Giv det lidt tid til at starte op.
  3. IP-adressen vises på displayet i ti sekunder. Det eneste du skal gøre er at sikre, at du er forbundet til det samme netværk og indtaste IP-adressen i adresselinjen i din browser.
  4. Du er nu på hjemmesiden. Du har ikke en konto endnu, så opret en konto.
  5. Hvis du er registreret, skal du logge ind.
  6. Færdig! Du kan se alle data på websiden, og LCD-displayet viser den aktuelle luftkvalitet.

Siden varmen stiger, har vi placeret sensorerne i bunden af sagen. På denne måde ville temperaturen ikke have en stor indvirkning på de registrerede værdier. Så få optimale målinger ved at få enheden til at stå op, eller du kan simpelthen hænge den på væggen.

Anbefalede: