Sisukord:
- Tarvikud
- Samm: Raspberry Pi seadistamine
- 2. samm: ühenduse loomine ja Rpi traadita ühenduse loomine kohaliku võrguga
- 3. samm: andur DS18B20 (temperatuur)-1-juhtmeline
- 4. samm: MCP3008 - analoogtundmine
- Samm: riistvara
- 6. samm: Mariadb andmebaasi loomine
- Samm: Githubi kood ja testimine
- Samm: käivitage käivitamisel kood
- 9. samm: veebisaidi seadistamine
- 10. samm: valikuline - miniatuurne prototüüp
Video: TheAir - gaasianduri projekt: 10 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Süsinikmonooksiid ja süsinikdioksiid, tuntud ka kui CO ja CO2. Gaasid, mis on suletud ruumis suurtes kontsentratsioonides värvitu, lõhnatu, maitsetu ja ausalt öeldes ohtlikud. Kui elate, öelge näiteks üliõpilaste toas, et see on halvasti isoleeritud, puudub hea õhuvool ja mingil põhjusel teeb röster röstsaia tegemise ajal imelikku häält. Siis võite nende gaasidega kokku puutuda ja kui see juhtub, siis loodame, et see lõpeb ainult väikese peavaluga, sest suure kontsentratsiooniga võib see muuta teid töövõimetuks või isegi tappa (kuigi väga harva).
Seega otsustasin selle projektiga välja tulla. Minu idee on lihtne, kasutage õhuvoolu tekitamiseks ventilaatoreid. Hea õhk sisse ja halb õhk välja. Lisakasu jaoks lisasin täiendava temperatuurianduri, nupu käsitsi aktiveeritavatele ventilaatoritele ja ka veebisaidi neile, kellele meeldib statistikat vaadata ja/või ventilaatoreid oma arvutist aktiveerida.
Õpilase, lapsevanema, üksiku või elusolendina. Seda soovite tavaliselt oma kodus mugavalt elades vältida. See aitab neid, kellele meeldib oma elu natuke lihtsamaks muuta.
Tarvikud
- Vaarika Pi 3+
- Mini-USB laadija 5V/2.5A
- Micro-sd kaart
-
Andurid
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatuur)
- 2 x 12V alalisvoolu ventilaator
- 2 x 2n2222 transistorit
- LCD 16*2 ekraan
- Nupp
- MCP3008
- Logi taseme muundur
- Etherneti kaabel (seadistamise põhjustel)
Samm: Raspberry Pi seadistamine
Enne Rpi -ga töötamist vajame tarkvara.
- WinSCP või FilleZilla (valikuline, kui soovite faile arvutist Rpi -sse üle kanda)
- Win32 ketas või Etcher (mida eelistate rohkem)
- Putty või MobaXterm (mida eelistate rohkem)
- Raspian pilt töölauaga
Enne alustamist tahaksin mainida, et selle õpetuse tegemisel, kui ma valin programmi teise asemel, EI tähenda, et ma seda soovitan. Näiteks mulle meeldib kasutada etcherit, kuna see on kasutajasõbralikum, kuid Win32 -l on võimalus varukoopiaid teha. Nüüd on see minu süsteemist väljas, alustame.
Kui teil on juba WiFi -võrguga ühendatud Rpi, jätkake 3. sammuga.
Esiteks kasutame Etcherit Raspbiani pildi lisamiseks teie SD -kaardile. Enne sd -kaardi väljatõmbamist muudame failis cmdline.txt mõningaid "asju", mille leiate pildilt. Avage.txt -fail -> Lisage see rida "ip = 169.254.10.1" (jutumärke pole) rea lõpus (kõik ühel real) -> Salvesta fail
Teiseks tehke alglaadimispartitsiooni tühi kaust nimega "ssh" (ilma jutumärkideta).
Pärast seda võite Microsd'i turvaliselt väljutada ja selle Rpi -sse panna.
Kodeeritud staatilise IP põhjus on see, et lihtsustada ühenduse loomist Rpi -ga. Kui Rpi -l pole mingil põhjusel DHCP -ga ip -d, saate hõlpsalt kasutada staatilist IP -d.
2. samm: ühenduse loomine ja Rpi traadita ühenduse loomine kohaliku võrguga
Käivitame Rpi -> ühendage Etherneti kaabel arvuti ja Rpi vahel.
-
Käivitage Putty ja täitke see:
- Hosti nimi (või IP -aadress): 169.254.10.1
- Sadam: 22
-
Ilmub terminal ja sisestate vaikimisi kasutajanime ja parooli:
- Kasutajanimi: pi
- Parool: vaarikas
Nüüd, kui oleme rpi -ga lokaalselt ühendatud, soovime, et RPI -l oleks ühendus teie WiFi -ga.
- Lisa: tippige "sudo raspi-config"
- Siin peate pi kasutaja jaoks parooli muutma (ohutuse huvides)
- Seejärel minge jaotisse Lokaliseerimise valikud -> Muuda aega (valige õige) -> Seejärel minge Wifi riiki -> valige riik.
- Sulgege raspi-config ja taaskäivitage.
- Sisselogimisel tehke end ajutiselt juurkasutajaks -> sudo -i
-
Kirjutage see käsk oma võrgu lisamiseks Rpi -le (kood allpool loendis)
- parool = "parool" (jutumärkidega)
- Nimevõrk = "SSID"
- Ärge unustage kasutada topelt >>! Tähtis!
kaja "parool" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Nüüd taaskäivitage uuesti
Uuesti ühenduse loomisel kontrollige oma ip -i, tippides:
ifconfig
ja kontrollige inet kõrval olevat wlan0.
Nüüd, kui meil on Interneti -ühendus, teeme "kiire" värskenduse.
sudo apt värskendus
sudo apt dist -upgrade -y
See võib võtta aega.
3. samm: andur DS18B20 (temperatuur)-1-juhtmeline
Iga projektiga kaasneb alati midagi erilist, mis tuleb ära teha, muidu see ei tööta.
Seekord on meil see koos DS18B20 temperatuurianduriga, mis nõuab 1-juhtmelist, kuid ma ei selgita, miks, aga ma selgitan, kuidas see vähemalt tööle panna.
Selleks peame naasma Rpi raspi-configi juurde, kena sinisele ekraanile.
- Avage liidese valikud
- Valige 1-juhe ja lubage.
Valmis…
Tegin nalja.
Nüüd peame kohandama faili /boot/config.txt
sudo nano /boot/config.txt
Lisage see rida allosas.
# Luba onewire
dtoverlay = w1-gpio
Nüüd taaskäivitage see asi ja nüüd oleme valmis.
Et kontrollida, kas see töötab, ühendage andur Rpi -ga, seejärel minge tagasi terminali ja tippige see kood (vt järgmist sammu Riistvara, kuidas temperatuuriandurit ühendada).
cd/sys/bus/w1/devices/w1_bus_master1
ls
Peaksite nägema midagi, mille ülaosas vasakul on tumesinised numbrid ja tähed. Kirjutage see teave kindlasti hiljem, kui töötame githubi koodiga.
Kui see mingil põhjusel ei tööta, kontrollige seda linki, mis sellesse süveneb.
4. samm: MCP3008 - analoogtundmine
Kuna tegime temperatuurianduri osas muudatusi, peame tegema muudatusi ka teiste andurite puhul, kuna neid tuleb lugeda analoogandmetest. Siin tuleb MCP3008 kasuks, peame muutma ka SPI liidest.
sudo raspi-config
Avage liidese valikud -> Valige SPI -> lubage.
Seejärel Lõpeta.
Samm: riistvara
Me pole Rpi -ga täielikult valmis, kuid piisavalt, et saaksime hakata riistvara ehitama ja kokku panema.
Mõned nõuanded on ehitamisel oma ühendused põhjalikult kontrollida, et mitte … õhutada Rpi.
Samuti märkate skeemil, et mõned komponendid on sellel ainult üks kord, kuigi töötame rohkem kui ühe sama komponendiga. See tähendab lihtsalt seda, et peate kordama sama komponendi loomise protsessi. On üks väike erand, mq-x andurid ei vaja lisataseme muundurit ega MCP3008. Lihtsalt lisage taseme muundurile ja MCP3008 täiendav roheline kaabel (pdf -vormingus).
Lisatöötlus: ventilaatorid peavad lülitina kasutama transistorit. Ma kasutan 1 ventilaatori jaoks 2n2222A transistorit, sest 2 ventilaatorit võivad olla liiga suured koormused.
Kui teil on transistor, mis saab hakkama suurema vooluga, jätke see samm vahele.
Kui teil pole minusugust, peate seda tegema nii: 1 ventilaator = 1 transistor, 2 ventilaatorit = 2 transistorit ja nii edasi (igal ventilaatoril on oma transistor + diood nagu pdf -is).
Hiljem, 7. sammus: Git -kood…, peate lisama ka koodi back._project saidile app.py.
6. samm: Mariadb andmebaasi loomine
Nagu pealkiri osutab, loome andmebaasi, et meil oleks koht andurite andmete salvestamiseks.
Kõigepealt laadige alla Riadist Mariadb.
sudo apt-get install mariadb-server
Pärast installimist kasutame seda.
mysql -u juur
Parool on tühi, seega pole midagi trükkida. Vajutage sisestusklahvi.
Loome nüüd kasutaja.
CREATE USER 'kasutaja'@'%' TUNNISTAB 'userdb';
TOETAGE KÕIK PRIILID SEES *. * TO 'GRAND OPTION'iga kasutajale@'%';
FLUSHI privileegid;
Väljumiseks ja teenuse kiireks taaskäivitamiseks vajutage Ctrl + C:
sudo teenuse mysql taaskäivitamine
Logige sisse kasutajanimega: kasutaja ja parool: userdb:
mysql -u kasutaja -p
Nüüd on aeg andmebaas luua.
CREATE DATABASE project_db DEFAULT CHARACTER SET utf8;
USE project_db
Looge tabel "historiek" (tähendab ajalugu).
CREATE TABLE IF NOT NOTISTS "historiek" ("id" INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id ')) MOOTOR = InnoDB;
Ja voila, andmebaas on tehtud.
Samm: Githubi kood ja testimine
Oleme jõudmas oma projekti lõpule.
Enne koodi saamist peame importima mõned moodulid Rpi -sse:
pip3 installige Flask_MySQL
pip3 paigaldage kolb-pistikupesa
pip3 paigaldada -U kolb -cors
pip3 install spidev
Nüüd vajame selle toimimiseks koodi, tippige terminal:
git kloon
Kontrollige, kas kaust on seal:
ls
Nüüd vajate kahte terminali, nii et on mugav terminalil paremklõpsata ja klõpsata Duplicate seansid:
Avage käsk cd käsk backend_project ja temperatuur.
Nüüd enne programmide käivitamist testimiseks. Kas mäletate veel 1-juhtmelise anduriga 3. sammu, kus peate mõned numbrid üles kirjutama? Ärge muretsege, kui teil on, vaadake lihtsalt uuesti 3. sammu.
Lisame need numbrid koodile, kuna see peab selle kasutamisel teadma õiget andurit.
Temperatuuri kaustaga terminalist leiate rakenduse app.py. Me avame selle.
sudo nano app.py
Otsige üles funktsioon, mida nimetatakse "def temperatuur ():", seal peate "**" asendama numbritega, mille olete üles kirjutanud. Minu puhul saaksin selle koodirida (iga number on kordumatu).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Testimise aeg. Mõlemad terminalid nii backend_project kui ka temperatuuri kaustas tippige:
python3 app.py
Pidage nüüd meeles 5. sammu: riistvara, kuhu peate koodi lisama, kui kasutate mitut ventilaatorit ja transistorit?
Hea, kui mitte tagasi minna 5. sammu juurde.
Nüüd peame lisama koodi, nagu ma mainisin saidile app.py failis backend_project. Lihtsamaks muutmiseks tegin koodis selle näite. Iga kommentaarikoodi rida, millel on "fan1", tühistage need read ja voila, nüüd saate kasutada 2 fänni.
Kui soovite kasutada rohkem kui 2 ventilaatorit, kopeerige ja kleepige sama kood selle alla, kuid erineva numbriga. Selle puuduseks on teie jaoks isiklikum töö ja vähem gpio.pine. Sellel pole mingeid eeliseid, mida ma tean.
Samm: käivitage käivitamisel kood
Soovime, et need kaks pythoni skripti käivituksid kohe, kui meie Rpi käivitub, ja juhul, kui skript kokku jookseb, peaks see taaskäivituma. Selleks teeme 2 teenust.
Selleks tippige:
sudo nano /etc/systemd/system/temperature.service
Kopeerige ja kleepige see temperatuuri jaoks. Teenus:
[Ühik] Kirjeldus = Temperatuuriteenus Pärast = mitme kasutaja sihtmärk
[Teenus] Tüüp = lihtne
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
Standardsisend = tty-jõud
Taaskäivitamine = ebaõnnestumine
RestartSec = 60s
[Installi]
WantedBy = mitme kasutaja sihtmärk
Sulgege ja tehke uuesti, kuid siis backend_project.service jaoks:
Esimene avatud tekst:
sudo nano /etc/systemd/system/backend_project.service
Seejärel kopeerige ja kleepige uuesti:
[Ühik] Kirjeldus = taustaprogrammi teenus
Pärast = mitme kasutaja.siht
[Teenus]
Tüüp = lihtne
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
Standardsisend = tty-jõud
Taaskäivitamine = ebaõnnestumine
RestartSec = 60s
[Installi]
WantedBy = mitme kasutaja sihtmärk
Salvesta ja sulge.
Viimane osa kirjutab selle:
sudo systemctl deemon-reload
sudo systemctl lubab temperatuuri. teenus sudo taaskäivitamine
Nüüd peaksid meie 2 pythoni skripti käivitamisel automaatselt töötama.
9. samm: veebisaidi seadistamine
Hoidla alla laadides oleksite pidanud hankima ka kausta nimega front. See on koht, kus veebisaidi sisu on.
Esiteks vajame enne kausta kasutamist apache'i. Järgige apache jaoks sellel lingil olevat juhendit.
Kui olete valmis. Minge esikausta asukohta:
cd /Dokumendid /nmct-s2-project-1-TheryBrian
Seejärel tippige:
sudo mv ees/var/www/html
Kui see on tehtud, minge kausta html, valmistuge tüütuks tööks (minu viga).
cd/var/www/html/
seejärel minge esikausta ja hakake kõike html -kausta teisaldama.
näide:
sudo mv css/var/www/html
Seejärel kustutage esikaust.
Ja oleme kõigega lõpetanud.
Edu:).
10. samm: valikuline - miniatuurne prototüüp
Testimise eesmärgil tegin prototüübi lihtsalt karbist, kus oli kogu riistvara sees, et saaksin näha, kas kõik töötab tellimuse alusel.
Tavaliselt viiakse see projekt läbi suuremas mahus. Näiteks: tuba, maja, tehas, kauplus ja nii edasi…
Aga ilmselgelt enne, kui hakkame seintesse auke tegema (kena riim). Esiteks tahame näha, kas see lihtsalt töötab. Testimiseks pole tegelikult vaja kasti teha, kuid meisterdamist on alati lõbus teha.
Siin on minu näide.
Soovitan:
Gimbal stabilisaatori projekt: 9 sammu (piltidega)
Gimbal Stabilizer Project: Kuidas teha Gimbal Õpi, kuidas teha oma tegevuskaamerale 2-teljelist kardaani. Tänapäeva kultuuris armastame me kõik videoid ja jäädvustame hetki, eriti kui olete minusugune sisulooja, olete kindlasti silmitsi seisnud järgmise probleemiga: nii värisev video
Automatiseeritud lemmikloomatoidu kausi projekt: 13 sammu
Automatiseeritud lemmikloomatoidu kausiprojekt: see juhend juhendab ja selgitab, kuidas ehitada automatiseeritud, programmeeritav lemmikloomade söötja koos kinnitatud toidunõudega. Lisasin siia video, mis kirjeldab toodete toimimist ja väljanägemist
(IOT projekt) Ilmateabe hankimine ESP8266 ja Openweather API abil: 5 sammu
(IOT -projekt) Hankige ilmaandmeid, kasutades ESP8266 ja Openweatheri API -d: Selles juhendis koostame lihtsa IOT -projekti, mille abil saate meie linna ilmaandmed saidilt openweather.com/api ja kuvame selle töötlemistarkvara abil
Dopamiinikarp - Mike Boydiga sarnane projekt - mitte olla Mike Boyd: 9 sammu
Dopamiinikarp | Mike Boydiga sarnane projekt - mitte Mike Boydi oma: ma tahan seda! Ma vajan ühte! Ma olen viivitaja! Ma tahan dopamiini kasti … ilma programmeerimiseta. Ei mingeid helisid, vaid puhas tahe
USB -toitega põleti! See projekt võib põleda läbi plasti / puidu / paberi (lõbus projekt peab olema ka väga peen puit): 3 sammu
USB -toitega põleti! See projekt võib põleda läbi plasti / puidu / paberi (lõbus projekt peab olema ka väga peen puit): ÄRGE TEE SEDA USB -KASUTAMISEGA !!!! avastasin kõikidest kommentaaridest, et see võib teie arvutit kahjustada. mu arvutiga on kõik korras. Kasutage 600m 5v telefonilaadijat. Ma kasutasin seda ja see töötab hästi ning midagi ei saa kahjustada, kui kasutate toite peatamiseks turvakork