Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Opsætning af Raspberry Pi
- Trin 2: Opret en forbindelse og tilslutning af Rpi trådløst til dit lokale netværk
- Trin 3: Sensor DS18B20 (temperatur)-1-leder
- Trin 4: MCP3008 - Analog sensing
- Trin 5: Hardware
- Trin 6: Oprettelse af en Mariadb -database
- Trin 7: Github -kode og test
- Trin 8: Kør kode ved opstart
- Trin 9: Opsætning af websted
- Trin 10: Valgfri - Miniatureprototype
Video: TheAir - Gas Sensor Project: 10 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Kulilte og kuldioxid, også kendt som CO og CO2. Gasser, der er farveløse, lugtløse, smagløse og ærligt talt farlige, når de er i høje koncentrationer i et lukket rum. Hvis du bor, siger f.eks. I et studieværelse, der er dårligt isoleret, ingen god luftstrøm og af en eller anden grund laver brødristeren en underlig støj, mens du laver toast. Så kan du komme i kontakt med disse gasser, og når det sker, lader vi håbe, at det kun ender med en lille hovedpine, fordi det i høj koncentration kan invalidere eller endda dræbe dig (selvom det meget sjældent er).
Så jeg besluttede at komme med dette projekt. Min idé er enkel, brug ventilatorer til at lave en luftstrøm. God luft ind og dårlig luft ud så at sige. For ekstra hjælp tilføjede jeg en ekstra temperatursensor, knap til manuelle aktiveringsventilatorer og også et websted for dem, der kan lide at se statistik og/eller aktivere fans fra deres computer.
Som elev, forælder, enlig person eller levende væsen. Dette er noget, du normalt gerne vil undgå, når du bor i dit eget hus. Dette hjælper dem, der kan lide at gøre deres liv lidt lettere.
Forbrugsvarer
- Raspberry Pi 3+
- Mini-usb oplader 5V/2,5A
- Micro-sd-kort
-
Sensorer
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatur)
- 2 x 12V DC blæser
- 2 x 2n2222 transistorer
- LCD 16*2 display
- Trykknap
- MCP3008
- Logi -niveauomformer
- Ethernet -kabel (af opsætningsgrunde)
Trin 1: Opsætning af Raspberry Pi
Inden vi arbejder med Rpi, skal vi bruge noget software.
- WinSCP eller FilleZilla (valgfrit, hvis du vil overføre filer fra din computer til Rpi)
- Win32 -disk eller Etcher (som du foretrækker mere)
- Kitt eller MobaXterm (som du foretrækker mere)
- Raspbian -billede med skrivebordet
Inden jeg begynder vil jeg gerne nævne, at når jeg laver denne tutorial, når jeg vælger et program frem for det andet, betyder det IKKE, at jeg anbefaler det. For eksempel kan jeg godt lide at bruge ætser, fordi mere brugervenligt, men Win32 har mulighed for at lave sikkerhedskopier. Nu er det ude af mit system, lad os begynde.
Hvis du allerede har en Rpi, der er forbundet til dit wifi -netværk, skal du springe til trin 3.
Først skal vi bruge Etcher til at sætte Raspbian -billedet på dit sd -kort. Nu før vi trækker sd -kortet ud, skal vi ændre nogle "ting" i cmdline.txt -filen, som kan findes i billedet. Åbn.txt -filen -> Tilføj denne linje "ip = 169.254.10.1" (ingen anførselstegn) i slutningen af linjen (alle på 1 linje) -> Gem fil
For det andet skal du lave en tom mappe kaldet "ssh" i boot-partitionen (uden anførselstegn).
Derefter kan du sikkert skubbe Microsd ud og sætte den i Rpi.
Grunden til den hårdt kodede statiske IP er at gøre det lettere at oprette forbindelse til Rpi. Hvis Rpi af en eller anden grund ikke har en ip med DHCP, kan du nemt bruge den statiske ip.
Trin 2: Opret en forbindelse og tilslutning af Rpi trådløst til dit lokale netværk
Vi vil starte Rpi -> tilslut ethernet -kablet mellem computer og Rpi.
-
Start Kitt og udfyld dette:
- Værtsnavn (eller IP -adresse): 169.254.10.1
- Havn: 22
-
En terminal dukker op, og du indtaster standardbrugernavn og adgangskode:
- Brugernavn: pi
- Adgangskode: hindbær
Nu hvor vi er forbundet lokalt til rpi, ønsker vi, at Rpi har forbindelse til din wifi.
- Ekstra: indtast "sudo raspi-config"
- Her skal du ændre adgangskode af pi -bruger (sikkerhedsmæssige årsager)
- Gå derefter til Lokaliseringsindstillinger -> Skift tid (vælg den korrekte) -> Gå derefter til Wifi -land -> vælg land.
- Luk raspi-config og genstart.
- Når du er logget ind, skal du midlertidigt gøre dig selv root -bruger -> sudo -i
-
Skriv denne kommando for at føje dit netværk til Rpi (kode nedenfor liste)
- password = "password" (med anførselstegn)
- Navn netværk = "SSID"
- Husk at bruge dobbelt >>! Vigtigt!
ekko "adgangskode" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Genstart nu igen
Når du opretter forbindelse igen, skal du kontrollere din ip ved at skrive:
ifconfig
og tjek wlan0, ved siden af inet.
Nu hvor vi har internetforbindelse, kan vi lave en "hurtig" opdatering.
sudo apt opdatering
sudo apt dist -upgrade -y
Dette kan tage noget tid.
Trin 3: Sensor DS18B20 (temperatur)-1-leder
Med hvert projekt vil der altid være noget særligt, der skal gøres, ellers fungerer det ikke øjeblikket.
Denne gang har vi det med DS18B20 temperatursensor, der kræver 1-leder, som jeg ikke vil forklare hvorfor, men jeg vil forklare, hvordan det får det til at fungere i det mindste.
Til dette skal vi gå tilbage til raspi-config på Rpi, den flotte blå skærm.
- Gå til grænsefladeindstillinger
- Vælg 1-Wire, og vælg aktiver.
Færdig…
Bare for sjov.
Nu skal vi justere /boot/config.txt
sudo nano /boot/config.txt
Tilføj denne linje nederst.
# Aktiver onewire
dtoverlay = w1-gpio
Nu genstart sudo den ting, og nu er vi færdige.
For at kontrollere, om det virker, skal du slutte sensoren til Rpi og derefter gå tilbage til terminalen og indtaste denne kode (Se næste trin Hardware om tilslutning af temperatursensor).
cd/sys/bus/w1/devices/w1_bus_master1
ls
Du skulle se noget med tal og bogstaver i mørkeblåt øverst til venstre. Sørg for at skrive dette stykke information til senere, når vi arbejder med koden fra github.
Hvis det af en eller anden grund ikke virker, skal du kontrollere dette link, der går dybere ind i det.
Trin 4: MCP3008 - Analog sensing
Da vi foretog en ændring for temperatursensoren, skal vi også foretage nogle ændringer for de andre sensorer, da de skal læses i analoge data. Det er her, MCP3008 er praktisk, vi skal også ændre SPI -interface.
sudo raspi-config
Gå til grænsefladeindstillinger -> Vælg SPI -> aktiver.
Så afslut.
Trin 5: Hardware
Vi er ikke helt færdige med Rpi, men nok til, at vi kan begynde at bygge og sammensætte hardwaren.
Nogle råd er at tjekke dine forbindelser grundigt, når du bygger, for at sikre, at du ikke … sprænger Rpi.
I skematikken vil du også bemærke, at nogle komponenter kun er på den én gang, selvom vi arbejder med mere end 1 af den samme komponent. Det betyder bare, at du skal gentage den samme proces med at bygge den 1 komponent. Der er 1 lille undtagelse, mq-x sensorerne behøver ikke en ekstra niveauomformer eller MCP3008. Tilføj bare et ekstra grønt kabel (i pdf) til niveauomformeren og MCP3008.
Ekstra redigering: Ventilatorerne skal bruge en transistor som switch. Jeg bruger en 2n2222A transistor til 1 blæser, fordi 2 blæsere kan være en til tung belastning.
Hvis du har en transistor, der kan klare en større strøm, så god, spring den sidste del af dette trin over.
Hvis du ikke har en som mig, skal du gøre det sådan, 1 blæser = 1 transistor, 2 blæsere = 2 transistorer og så videre (hver blæser har sin egen transistor + diode som i pdf).
Du skal også tilføje noget kode til app.py i backend_project senere i trin 7: Git -kode ….
Trin 6: Oprettelse af en Mariadb -database
Som titlen antyder, vil vi oprette en database, så vi har plads til at gemme vores sensordata.
Første ting først, download Mariadb på Rpi.
sudo apt-get install mariadb-server
Efter installationen, lad os bruge det.
mysql -u root
Adgangskoden er tom, så intet at skrive. Tryk på enter.
Lad os oprette en bruger nu.
Opret BRUGER 'bruger'@'%' IDENTIFICERET MED 'userdb';
TILDELE ALLE PRIVILEGER TIL *. * TIL 'bruger'@'%' MED GRANT -MULIGHED;
FLUSH -PRIVILEGER;
Tryk på Ctrl + C for at afslutte og genstarte tjenesten hurtigt:
sudo service mysql genstart
Login med brugernavn: bruger & adgangskode: userdb:
mysql -u bruger -p
Tid til at oprette databasen nu.
Opret DATABASE project_db STANDARDKARAKTER SÆT utf8;
BRUG projekt_db
Opret et bord "historiek" (betyder historie).
Opret tabel, hvis den ikke eksisterer 'historiek' ('id' INT IKKE NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;
Og voila, databasen er lavet.
Trin 7: Github -kode og test
Vi nærmer os slutningen af vores projekt.
Inden vi får koden, skal vi importere nogle moduler til Rpi:
pip3 installer Flask_MySQL
pip3 installer kolbe-socketio
pip3 installere -U kolbe -kors
pip3 installer spidev
Nu har vi brug for koden for at få den til at fungere, indtast terminalen:
git-klon
Kontroller, om mappen er der med:
ls
Nu skal du bruge 2 terminaler, så det er praktisk at højreklikke på terminalen og klikke på Duplicate sessions:
Gå til backend_project og temperatur ved hjælp af cd -kommandoen.
Nu før vi starter programmerne til testformål. Kan du stadig huske trin 3 med 1-leder sensoren, hvor du skal skrive nogle tal ned? Ingen bekymringer, hvis du har, bare tag et hurtigt kig på trin 3 igen.
Vi vil tilføje disse tal til koden, fordi den skal kende den korrekte sensor, når du bruger den.
Terminalen med temperaturmappen finder du app.py. Vi vil åbne den.
sudo nano app.py
Kig efter funktionen, der kaldes "def temperatur ():", der bliver du nødt til at erstatte "**" med de tal, du har skrevet. I mit tilfælde ville jeg få det denne kodelinje (hvert nummer er unikt).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Testtid. Begge terminaler i både backend_project og temperaturmappe, skriv:
python3 app.py
Husk nu trin 5: hardware, hvor du skal tilføje kode, hvis du bruger flere fans og transistorer?
Godt, hvis ikke gå tilbage til trin 5.
Nu skal vi tilføje kode, som jeg nævnte til app.py i backend_project. For at gøre det lettere lavede jeg et eksempel på dette i koden. Hver linje med kommentarkode, der har "fan1" i den, kommenter disse linjer og voila, nu kan du bruge 2 fans.
Hvis du vil bruge mere end bare 2 fans, skal du kopiere og indsætte den samme kode under den, men med et andet nummer. Ulempen ved dette er mere personligt arbejde for dig og færre gpio.pins til rådighed. Der er ingen fordele ved dette, som jeg kender.
Trin 8: Kør kode ved opstart
Vi vil have disse 2 python -scripts til at køre i det øjeblik, vores Rpi starter op, og hvis et script skulle gå ned, skulle det genstarte af sig selv. For at gøre dette skal vi lave 2 tjenester.
For at gøre dette skal du skrive:
sudo nano /etc/systemd/system/temperature.service
Kopier og indsæt dette for en temperatur. Service:
[Enhed] Beskrivelse = Temperatur Service Efter = multi-user.target
[Service] Type = enkel
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput = tty-force
Genstart = ved fejl
RestartSec = 60s
[Installere]
WantedBy = multi-user.target
Luk og gør igen, men derefter for en backend_project.service:
Første åbne tekst:
sudo nano /etc/systemd/system/backend_project.service
Kopier og indsæt derefter igen:
[Enhed] Beskrivelse = backend_project Service
Efter = multi-user.target
[Service]
Type = enkel
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
Genstart = ved fejl
RestartSec = 60s
[Installere]
WantedBy = multi-user.target
Gem og luk.
Sidste del er at skrive dette:
sudo systemctl daemon-reload
sudo systemctl aktiver temperatur.service sudo genstart
Nu skulle vores 2 python -scripts køre automatisk ved opstart.
Trin 9: Opsætning af websted
Da du downloadede depotet, skulle du også have fået en mappe kaldet front. Det er her indholdet er for webstedet.
Først skal vi bruge apache, før vi kan bruge mappen. Følg guiden på dette link for apache.
Når du er klar. Gå til, hvor den forreste mappe er placeret:
cd /Documents /nmct-s2-project-1-TheryBrian
Skriv derefter:
sudo mv front/var/www/html
Når det er gjort, skal du gå til html -mappen og forberede dig på noget kedeligt arbejde (min skyld).
cd/var/www/html/
gå derefter ind i den forreste mappe og begynd at flytte alt til html -mappen.
eksempel:
sudo mv css/var/www/html
Slet derefter den forreste mappe.
Og vi er færdige med alt.
Held og lykke:).
Trin 10: Valgfri - Miniatureprototype
Af test årsager lavede jeg en prototype af bare en kasse med al hardware indeni, så jeg kan se, om alt fungerer til at bestille.
Normalt ville dette projekt blive udført i større skala. For eksempel: et værelse, et hus, en fabrik, en butik og så videre …
Men selvfølgelig inden vi begynder at lave huller i væggene (flot rim). Vi vil først se, om det bare virker. Du behøver faktisk ikke at lave en æske til test, men det er altid sjovt at lave noget.
Her er mit eksempel.
Anbefalede:
Gimbal Stabilizer Project: 9 trin (med billeder)
Gimbal Stabilizer Project: Sådan laver du en GimbalLær hvordan du laver en 2-akset gimbal til dit actionkamera I dagens kultur elsker vi alle at optage video og fange øjeblikke, især når du er en indholdsskaber som mig, har du sikkert stået over for spørgsmålet om sådan rystende vide
DIY Breath Sensor With Arduino (Conductive Knitted Stretch Sensor): 7 trin (med billeder)
DIY Breath Sensor With Arduino (Conductive Knitted Stretch Sensor): Denne DIY sensor har form af en ledende strikket strækningssensor. Det vil vikle rundt om dit bryst/din mave, og når dit bryst/din mave udvider sig og trækker sig sammen, så vil sensoren og følgelig de inputdata, der fødes til Arduino. Så
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
RaspberryPi 3 Magnet Sensor Med Mini Reed Sensor: 6 trin
RaspberryPi 3 Magnet Sensor Med Mini Reed Sensor: I denne Instructable vil vi oprette en IoT magnet sensor ved hjælp af en RaspberryPi 3. Sensoren består af en LED og en summer, som begge tændes, når en magnet registreres af mini reed sensoren
Hvem er ved min dør? PIR Motion Sensor/Range Sensor Project: 5 trin
Hvem er ved min dør? PIR Motion Sensor/Range Sensor Project: Vores projekt har til formål at registrere bevægelse via PIR og afstandssensorer. Arduino -koden udsender et visuelt og lydsignal for at fortælle brugeren, at nogen er i nærheden. MATLAB -koden sender et e -mailsignal for at advare brugeren om, at nogen er i nærheden. Denne enhed