Innholdsfortegnelse:
- Trinn 1: Materialer
- Trinn 2: Tilkoblinger
- Trinn 3: 3D-utskrift
- Trinn 4: Kode
- Trinn 5: Database
- Trinn 6: Koble til Wi-Fi
- Trinn 7: Sett alt sammen
- Trinn 8: Start den opp
Video: AirPi - luftkvalitetssensor: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Har du noen gang lurt på hvorfor du får hodepine? Og hvis dette skyldes en dårlig luftkvalitet? Med denne enheten kan du sjekke om dette er tilfelle. Denne enheten måler CO2-verdien, TVOC-verdien, temperatur og fuktighet. Du kan se luftkvaliteten live på LCD-displayet og se en klar indikasjon om det blir farlig. På denne måten kan du åpne vinduene dine i tide.
Hvis du skriver inn IP -adressen - som vises når du starter enheten i nettleseren din - åpnes nettstedet. Du kan se mye informasjon om innemiljøet, sammen med grafer over de siste minuttene / timene. Det er også en live indikasjon og litt informasjon og tips på dashbordet.
Dette prosjektet ble laget av en student ved Howest Kortrijk, NMCT (New Media and Communication Technology).
Trinn 1: Materialer
Dette er alt jeg kjøpte for å lage dette prosjektet. Dette er et relativt billig prosjekt, avhengig av kostnaden for 3D-utskrift. Hvis du kan skrive den ut på skolen, kan dette være veldig billig. Ellers avhenger det av hvor du skriver det ut og materialet du skriver det ut i. Du vil legge merke til at jeg kjøpte mye i bulk, rett og slett fordi det er vanskelig å finne individuelle motstander eller lysdioder, og dette gjør det enda billigere. Hvis du har tid, kan du bestille de fleste varene på aliexpress.com, leveringstiden kan ta en stund, men på denne måten kan du begrense utgiftene.
Uten trykket er pengene jeg brukte på dette prosjektet € 81, 80.
Dette er materialene du trenger:
Krets:
- Raspberry Pi 3
- SD -kort 8 GB (minimum)
- Luftkvalitetssensor CCS811
- DHT22 temperatur- og fuktighetssensor
- Potensiometer (LCD -kontrast)
- LCD 16x2
- Kvinnelige til kvinnelige hoppetråder
- Grønn og rød LED
- Motstander (2x470ohm og 1 4700ohm)
Sak:
- 3D-print
- Skruer
- 2 -komponent lim (eller annet varmt lim)
- trådskjæringsverktøy
Bare hvis du bruker en PCB:
- Loddejern
- Flux (gjør det lettere)
- Tinn
- Eksperiment PCB 2x4cm
Trinn 2: Tilkoblinger
Koble ledningene som ovenfor. Du kan se en elektrisk krets i fritzing -filen. Det er ikke en veldig komplisert krets, men hvis du vil gjøre den så liten som mulig, vil du definitivt få et eksperiment PCB -kort. Kablingene vil være de samme, bortsett fra at GND og Vin blir koblet til PCB -kortet. Sensorene blir koblet sammen med hunkabler eller hanner med lodding. Ikke glem å lodde motstanden på DHT22 -sensoren.
Jeg anbefaler også å bruke korte kabler, 10 cm burde gjøre. Ellers ville esken blitt fylt med kabel enda mer. Du trenger ikke veldig lange siden størrelsen på utskriften er laget så liten som mulig.
Trinn 3: 3D-utskrift
Den første tanken som dukket opp i hodet mitt da jeg tenkte på en sak var en 3D-utskrift. Siden min far hadde skrevet ut flere andre ting, og han designet dem selv. Sammen skapte vi dette designet, og tenkte på alle aspekter. Det skal være godt nok avkjølt, alt kan skrues på plass og hvis ikke kan det skyves på plass.
Vi har til og med tegnet hver komponent for å sjekke om alt passer inn. Filen er tilgjengelig for alle, og vi vil gjerne høre noen tilbakemeldinger. Vi var veldig fornøyd med resultatet.
Trinn 4: Kode
Koden for dette prosjektet finner du på Github. Hvis du har brukt andre pins (for eksempel en annen GPIO-pin for LED-ene, må du justere disse variablene. Det blir to python-skript som kjøres, web.py for nettstedet og sensor.py for å lese sensorene og oppdatere databasen. Vi importerer klassen LCD fra lcd.py.
Med en konfigurert bringebær pi kan du komme i gang. Først av alt må du oppdatere og oppgradere alle pakkene:
sudo apt-get update && sudo apt-get upgrade
Etter det må du installere følgende pakker:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Lag nå et virtuelt miljø:
me@my -rpi: ~ $ python3 -m pip install -oppgrader pip setuptools hjul 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/ aktiver (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Siden dette er gjort, kan du klone koden fra min GitHub til ditt virtuelle miljø. Dette kan gjøres på flere måter.
I katalogen conf finner du fire filer du må justere om nødvendig. Du må definitivt endre bruker og hjemmekatalog i hver fil. UWSGI ini skal være bra så lenge du ikke endret koden min. Sørg for å endre brukeren og virtualenv om nødvendig.
Siden CCS811 -sensoren ble brukt med vilje for arduinoen, kan ikke denne kommunisere over i2c -bussen med raspberry pi -hastigheten. Du må redusere hastigheten til en baudrate på 10000 (jeg brukte 9600) i konfigurasjonsfilen.
Du må også få biblioteket til adafruit -sensoren. Jeg kan forklare dette her, men det er en perfekt adafruit -guide som forklarer alt dette veldig bra.
Fordi vi vil at python -skriptene skal kjøres automatisk når bringebæret er tilkoblet, må du bruke tjenestene. De burde være fine hvis du beholdt koden min. Alt du trenger å gjøre for at de skal kjøre, er å aktivere dem. Før du gjør det er det en siste ting.
Siden vi bruker en nginx webserver, må vi deaktivere standarden og erstatte den med vår egen konfigurasjon. For å gjøre dette bør disse trinnene følges:
- kopier conf/nginx til *tilgjengelige nettsteder *
- Fjern lenken til standardkonfigurasjonen
- Legg til en lenke til den nye konfigurasjonen
- Start nginx på nytt for å lagre endringene
me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-lad meg på nytt@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*
Nginx og mysql skal kjøre hele tiden. De starter opp sammen med bringebærpi. Nettskriptet og sensorscriptet ikke akkurat ennå.
For å gjøre dette må du fortsatt aktivere disse to tjenestene med disse kommandoene:
sudo systemctl aktivere project1-flask.service
sudo systemctl aktivere project1-sensor.service
Trinn 5: Database
Min database består av tre tabeller. Brukeren har ikke noe forhold til andre tabeller. Dette brukes bare for å logge inn og gi tilgang til nettstedet. Når enheten slås på, blir CO2-verdien og TVOC-verdien skrevet til databasen hvert 50. sekund. Temperatur og fuktighet hvert 5. minutt. På denne måten får vi en klar oversikt over fortiden.
SQL-filen finnes her, men for å få databasen på bringebær pi, bør du følge disse trinnene:
Etter installasjonen av pakkene i forrige trinn, skulle mariadb/mysql kjøre umiddelbart. Du kan sjekke dette med denne linjen:
meg@my-rpi: ~ $ sudo systemctl status mysql
For å opprette databasen og brukerne kan du ganske enkelt kjøre sql-skriptene i koden fra GitHub. Hvis du gjorde dette riktig, bør du se tabellene dine med denne kommandoen:
me@my-rpi: ~ $ echo 'vis tabeller;' | mysql project1 -t -u prosjekt1 -admin -p
Nå er vi klare, du kan teste dette uten saken for å sikre at alt fungerer. Med mindre du er koblet til wifi, må du koble den til med en ethernet -kabel og kjøre den manuelt.
Trinn 6: Koble til Wi-Fi
Åpne konfigurasjonsfilen wpa-supplicant i nano (spiller ingen rolle, bare sørg for at du kan jobbe med tekstredigereren).
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Gå til bunnen av filen og legg til følgende (erstatt ssid-navn og passordnavn med ditt):
nettverk = {
ssid = "ssid-name" psk = "password-name"}
For å opprette et kryptert passord kan du bruke wpa_passphrase og ganske enkelt kopiere det til wpa_supplicant.conf psk for å gjøre ting sikrere.
wpa_passphrase "ssid-name" "password-name"
Hvis du vil at den skal koble til dette Wi-Fi-nettverket automatisk, og det er andre i konfigurasjonsfilen, må du endre prioriteten til et høyere nivå ved å legge denne linjen til nettverket i konfigurasjonsfilen:
prioritet = 2
Ikke glem å konfigurere grensesnittet på nytt med:
wpa_cli -i wlan0 omkonfigurere
Nå er du klar og koblet til et wifi -nettverk.
Trinn 7: Sett alt sammen
Siden alt er kablet og loddet, kan vi komme til saken. Dette var designet slik at du kunne åpne saken uten løse ledninger. Dette betyr at alt er festet til den nedre delen. Det første du må gjøre er en liten tilpasning til bringebæret. Den har hull i det på hvert hjørne, men disse er ikke så store som de burde være. Diameteren bør være nok til å passe til en 3 mm skrue inni. Vi måtte polere hullene slik at de ble litt bredere.
Den andre tingen å gjøre er å kutte en skruegjeng i hvert hull. Dette kan høres vanskelig ut, men kan enkelt gjøres med de riktige verktøyene. Jeg vil anbefale å gjøre dette på en lokal maskinvarebutikk, bare be om et trådskjæringsverktøy. Siden min far er gullsmed, hadde han verktøyene til å gjøre dette på jobben. Jeg kan laste opp en ny stl-fil slik at denne skrives ut senere, men dette trenger en veldig nøyaktig skriver.
Det tredje trinnet er å skru pi på den nederste delen. Du trenger 4 7 mm lange skruer med en diameter på 3 mm. Etter dette kan du skyve PCD -kortet inn på det medfølgende stedet øverst på den nedre delen. CCS811 -sensoren kan skyves inn på det angitte stedet på venstre side, og DHT11 kan festes til høyre plate. Begge er isolert og ventilert tilstrekkelig, men etterpå la vi merke til at det fortsatt ble varmt inne. Mer om det senere.
Deretter må du feste lysdiodene til røret. Vi gjorde dette med 2 -komponent lim, men du kan gjøre det som du vil. Pass på at de sitter fast der.
Nå kan du feste LCD-skjermen, du trenger skruer med samme diameter som de forrige, men litt lenger. Mine var 1 cm. Hvis de fire skruene er skrudd inn, er det bare en ting å gjøre. Fest den øvre delen. Alt du trenger er fire skruer, med samme diameter og disse er 2 cm. Nå skal alt være på plass, og du kan starte det opp.
Trinn 8: Start den opp
Oppstartsprosessen for dette prosjektet er veldig enkel:
- Fest strømkabelen til venstre side av saken. Det er ikke veldig synlig, men du kan se gjennom ventilasjonsåpningene. Hvis du fikk det en gang, vil dette ikke være et problem igjen.
- Gi det litt tid til å starte opp.
- IP-adressen vises på displayet i ti sekunder. Det eneste du trenger å gjøre er å kontrollere at du er koblet til det samme nettverket og angi IP-adressen i adressefeltet i nettleseren din.
- Du er nå på nettstedet. Du har ikke en konto ennå, så opprett en konto.
- Logg inn hvis du er registrert.
- Ferdig! Du kan se alle dataene på nettsiden og LCD-displayet viser gjeldende luftkvalitet.
Siden varmen stiger, har vi lokalisert sensorene i bunnen av saken. På denne måten vil temperaturen ikke ha stor innvirkning på de registrerte verdiene. Så for å få optimale målinger, få enheten til å stå opp, eller du kan bare henge den på veggen.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte