Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pag-setup ng Raspberry Pi
- Hakbang 2: Paggawa ng isang Koneksyon at Pagkonekta ng Rpi Wireless sa Iyong Lokal na Network
- Hakbang 3: Sensor DS18B20 (temperatura) - 1-wire
- Hakbang 4: MCP3008 - Sensing ng Analog
- Hakbang 5: Hardware
- Hakbang 6: Lumilikha ng isang Mariadb Datbase
- Hakbang 7: Github Code at Pagsubok
- Hakbang 8: Patakbuhin ang Code sa Boot Up
- Hakbang 9: Pag-setup ng Website
- Hakbang 10: Opsyonal - Miniature Prototype
Video: TheAir - Gas Sensor Project: 10 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ang carbon monoxide at carbon dioxide, na kilala rin bilang CO at CO2. Ang mga gas na walang kulay, walang amoy, walang lasa at lantaran na mapanganib kapag nasa mataas na konsentrasyon sa isang saradong silid. Kung nakatira ka sabihin mo halimbawa sa isang silid ng mag-aaral na masama ang pagkakahiwalay, walang magandang daloy ng hangin at sa ilang kadahilanan, ang toaster ay gumagawa ng isang kakaibang ingay habang gumagawa ng toast. Pagkatapos ay maaari kang makipag-ugnay sa mga gas na ito at kapag nangyari iyon, hinahayaan na magtatapos lamang ito sa isang maliit na sakit ng ulo, sanhi ng mataas na konsentrasyon na maaari itong makapag-incapacitate o mapatay ka rin (bagaman napakabihirang).
Kaya't napagpasyahan kong alamin ang proyektong ito. Ang aking ideya ay simple, gumamit ng mga tagahanga upang makagawa ng isang airflow. Magandang hangin sa loob at masamang hangin sa labas upang magsalita. Para sa labis na paggamit, nagdagdag ako ng isang karagdagang sensor ng temperatura, pindutan para sa mga tagahanga ng manu-manong pag-aktibo at isang website din para sa mga nais na makita ang mga istatistika at / o buhayin ang mga tagahanga mula sa kanilang computer.
Bilang isang mag-aaral, magulang, solong tao o nabubuhay na nilalang. Ito ay isang bagay na karaniwang nais mong iwasan kapag nakatira sa ginhawa ng iyong sariling bahay. Tinutulungan nito ang mga nais na gawing mas madali ang kanilang buhay.
Mga gamit
- Raspberry Pi 3+
- Mini-usb charger 5V / 2.5A
- Micro-sd card
-
Mga sensor
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 x 12V DC fan
- 2 x 2n2222 transistors
- LCD 16 * 2 display
- Pushbutton
- MCP3008
- Converter ng antas ng Logi
- Ethernet cable (para sa mga kadahilanang pag-setup)
Hakbang 1: Pag-setup ng Raspberry Pi
Bago magtrabaho kasama ang Rpi, kakailanganin namin ng ilang software.
- WinSCP o FilleZilla (opsyonal kung nais mong ilipat ang mga file mula sa iyong computer sa Rpi)
- Win32 disc o Etcher (na mas gusto mo pa)
- Putty o MobaXterm (na mas gusto mo)
- Larawan ng raspbian na may desktop
Bago ako magsimula nais kong banggitin na kapag ginagawa ang tutorial na ito, kapag pumili ako ng isang programa kaysa sa iba pa, ay HINDI nangangahulugan na inirerekumenda ko ito. Halimbawa gusto kong gumamit ng etcher dahil mas user friendly ngunit ang Win32 ay may pagpipilian na gumawa ng mga pag-backup. Ngayon wala na sa aking system, magsisimula na.
Kung mayroon ka nang isang Rpi na konektado sa iyong wifi network, laktawan ang hakbang 3.
Gagamitin muna namin ang Etcher upang ilagay ang Raspbian na imahe sa iyong sd card. Ngayon bago namin hilahin ang sd card, papalitan namin ang ilang "bagay" sa cmdline.txt file, na matatagpuan sa imahe. Buksan ang.txt file -> Idagdag ang linyang ito "ip = 169.254.10.1" (walang mga marka ng panipi) sa dulo ng linya (lahat sa 1 linya) -> I-save ang file
Pangalawa gumawa ng isang walang laman na folder na tinatawag na "ssh" sa boot-partition (nang walang mga marka ng panipi).
Pagkatapos nito maaari mong ligtas na palabasin ang Mikrosd at ilagay ito sa Rpi.
Ang dahilan para sa matigas na naka-code na static IP ay upang gawing mas madali para sa pagkonekta sa Rpi. Kung sa ilang kadahilanan ang Rpi ay walang ip sa DHCP madali mong gamitin ang static ip.
Hakbang 2: Paggawa ng isang Koneksyon at Pagkonekta ng Rpi Wireless sa Iyong Lokal na Network
Kami ay mag-boot up ang Rpi -> ikonekta ang ethernet cable sa pagitan ng computer at Rpi.
-
Simulan ang Putty at punan ito:
- Pangalan ng Host (o IP address): 169.254.10.1
- Port: 22
-
Isang terminal ang pop up at nai-type mo ang default na username at password:
- Username: pi
- Password: raspberry
Ngayon na nakakonekta kami nang lokal sa rpi, nais naming magkaroon ng isang koneksyon ang Rpi sa iyong wifi.
- Dagdag: i-type ang "sudo raspi-config"
- Dito kakailanganin mong baguhin ang password para sa pi user (mga kadahilanang pangkaligtasan)
- Pagkatapos ay pumunta sa Mga Pagpipilian sa Lokalisasyon -> Baguhin ang Oras (piliin ang tamang isa) -> Pagkatapos ay pumunta sa Wifi Country -> pumili ng bansa.
- Isara ang raspi-config at i-reboot.
- Kapag naka-log in, pansamantalang gawin mong root ang iyong sarili -> sudo -i
-
Isulat ang utos na ito upang idagdag ang iyong network sa Rpi (code sa ibaba ng listahan)
- password = "password" (na may mga panipi)
- Pangalan ng network = "SSID"
- Tandaan na gumamit ng doble >>! Mahalaga!
echo "password" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ngayon muling i-reboot
Kapag kumonekta muli, suriin ang iyong ip sa pamamagitan ng pagta-type:
ifconfig
at suriin ang wlan0, sa tabi ng inet.
Ngayon na mayroon kaming koneksyon sa internet, hinahayaan na gumawa ng isang "mabilis" na pag-update.
sudo apt update
sudo apt dist-upgrade -y
Maaaring magtagal ito.
Hakbang 3: Sensor DS18B20 (temperatura) - 1-wire
Sa bawat proyekto, palaging magkakaroon ng isang bagay na espesyal na dapat gawin o kung hindi man ay hindi ito gagana sandali.
Sa oras na ito mayroon kami nito sa sensor ng temperatura ng DS18B20 na nangangailangan ng 1-wire na hindi ko ipaliwanag kung bakit ngunit ipapaliwanag ko kung paano ito gagana nang hindi bababa sa.
Para sa mga ito kailangan nating bumalik sa raspi-config sa Rpi, ang magandang asul na screen.
- Pumunta sa mga pagpipilian sa Interfacing
- Piliin ang 1-Wire at piliin ang paganahin.
Tapos na…
Biro lang.
Ngayon kailangan naming ayusin /boot/config.txt
sudo nano /boot/config.txt
Idagdag ang linyang ito sa ibaba.
# Paganahin ang onewire
dtoverlay = w1-gpio
Ngayon sudo i-reboot ang bagay na iyon at ngayon tapos na kami.
Upang suriin kung gumagana ito, ikonekta ang sensor sa Rpi pagkatapos ay bumalik sa terminal at i-type ang code na ito (Tingnan ang susunod na hakbang na Hardware sa kung paano ikonekta ang sensor ng temperatura).
cd / sys / bus / w1 / aparato / w1_bus_master1
ls
Dapat kang makakita ng isang bagay na may mga numero at titik sa maitim na asul sa kaliwang tuktok, siguraduhing isulat ang piraso ng impormasyon na ito sa paglaon kapag nagtatrabaho kami kasama ang code mula sa github.
Kung sa ilang kadahilanan hindi ito gumana, suriin ang link na ito na mas malalim pa rito.
Hakbang 4: MCP3008 - Sensing ng Analog
Tulad ng ginawa naming pagbabago para sa sensor ng temperatura, kailangan din naming gumawa ng ilang mga pagbabago para sa iba pang mga sensor dahil kailangan nilang basahin sa analog data. Ito kung saan ang MCP3008 ay madaling gamitin, kailangan din nating baguhin ang interface ng SPI.
sudo raspi-config
Pumunta sa Mga Pagpipilian sa Interfacing -> Piliin ang SPI -> paganahin.
Pagkatapos Tapusin.
Hakbang 5: Hardware
Hindi namin ganap na nagawa ang Rpi ngunit sapat upang masimulan namin ang pagbuo at pagsama-samahin ang hardware.
Ang ilang payo ay upang suriin nang mabuti ang iyong mga koneksyon kapag nagtatayo upang matiyak na hindi mo … pumutok ang Rpi.
Gayundin, sa Skematika mapapansin mo ang ilang mga bahagi ay narito lamang ito kahit na nagtatrabaho kami sa higit sa 1 ng parehong sangkap. Nangangahulugan lamang ito na kailangan mong ulitin ang parehong proseso ng pagbuo ng 1 sangkap na iyon. Mayroong 1 maliit na pagbubukod, ang mga mq-x sensor ay hindi nangangailangan ng dagdag na antas ng converter o MCP3008. Magdagdag lamang ng isang labis na berdeng cable (sa pdf) sa antas ng converter at MCP3008.
Dagdag na pag-edit: Ang mga tagahanga ay kailangang gumamit ng transistor bilang isang switch. Gumagamit ako ng isang 2n2222A transistor para sa 1 fan, dahil ang 2 tagahanga ay maaaring isang mabibigat na pagkarga.
Kung mayroon kang isang transistor na maaaring hawakan ang isang mas malaking kasalukuyang pagkatapos ay mabuti, laktawan ang huling bahagi ng hakbang na ito.
Kung wala kang katulad ko, kailangan mong gawin ito tulad nito, 1 fan = 1 transistor, 2 fans = 2 transistors, at iba pa (bawat fan ay sariling transistor + diode tulad ng sa pdf).
Kakailanganin mo ring magdagdag ng ilang code sa app.py sa backend_project mamaya sa Hakbang 7: Git code….
Hakbang 6: Lumilikha ng isang Mariadb Datbase
Tulad ng ipinahihiwatig ng pamagat, lilikha kami ng isang database upang magkaroon kami ng lugar upang maiimbak ang aming data ng sensor.
Una muna, i-download ang Mariadb sa Rpi.
sudo apt-get install mariadb-server
Pagkatapos ng pag-install, gamitin natin ito.
MySQL -u root
Blangko ang password, kaya walang mai-type. Pindutin ang enter.
Hinahayaan nating lumikha ng isang gumagamit ngayon.
GUMAWA NG USER 'gumagamit' @ '%' NAILANG NG 'userdb';
IPAGBIGAY ANG LAHAT NG PRIVILEGES SA *. * SA 'gumagamit' @ '%' MAY GRANT OPSYON;
FLUSH PRIVILEGES;
Pindutin ang Ctrl + C upang lumabas at gumawa ng mabilis na pag-restart ng serbisyo:
sudo serbisyo ng MySQL restart
Pag-login gamit ang username: user at password: userdb:
MySQL -u gumagamit -p
Oras upang lumikha ng database ngayon.
GUMAWA NG DATABASE proyekto_db DEFAULT CHARACTER SET utf8;
GAMITIN ang proyekto_db
Lumikha ng isang talahanayan na "historiek" (nangangahulugang kasaysayan).
GUMAWA NG TABLE KUNG HINDI MAY Umiiral na `historiek` (` id` INT HINDI NUL AUTO_INCREMENT, `sensorID` VARCHAR (5) HINDI NULL,` datum` DATETIME HINDI NUL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;
At voila, ang database ay ginawa.
Hakbang 7: Github Code at Pagsubok
Malapit na kami sa pagtatapos ng aming proyekto.
Bago makuha ang code, kakailanganin naming mag-import ng ilang mga module sa Rpi:
pip3 i-install ang Flask_MySQL
pip3 i-install ang flask-socketio
i-install ang pip3 -U flask-cors
pip3 install spidev
Ngayon kailangan namin ang code upang ito ay gumana, mag-type sa terminal:
git clone
Suriin kung ang folder ay naroroon sa:
ls
Ngayon kakailanganin mo ng 2 mga terminal kaya madaling gamitin ang pag-right click sa terminal at i-click ang Mga duplicate na session:
Pumunta sa backend_project at temperatura gamit ang cd command.
Ngayon bago namin simulan ang mga programa para sa mga layunin sa pagsubok. Naaalala mo pa ba ang Hakbang 3 sa 1-wire sensor kung saan kailangan mong magsulat ng ilang mga numero? Walang alalahanin kung mayroon ka, tingnan lamang muli ang hakbang 3.
Idaragdag namin ang mga numerong ito sa code sanhi na kakailanganin nitong malaman ang tamang sensor kapag ginagamit ito.
Ang terminal na may temperatura na folder, mahahanap mo ang app.py. Bubuksan namin ito.
sudo nano app.py
Hanapin ang pagpapaandar na tinatawag na "def temperatuur ():", doon mo papalitan ang "**" ng mga numero na iyong isinulat. Sa aking kaso kukuha ako ng linyang ito ng code (ang bawat numero ay natatangi).
sensor_file_name = '/ sys / device / w1_bus_master1 / 28-0316a4be59ff / w1_slave
Oras ng pagsubok. Parehong mga terminal sa parehong backend_project at temperatura folder, uri:
python3 app.py
Tandaan ngayon ang hakbang 5: hardware kung saan kailangan mong magdagdag ng code kung gumagamit ka ng maraming mga tagahanga at transistor?
Mabuti, kung hindi bumalik sa hakbang 5.
Ngayon kailangan naming magdagdag ng code tulad ng nabanggit ko sa app.py sa backend_project. Upang gawing mas madali, gumawa ako ng isang halimbawa nito sa code. Ang bawat linya ng code ng komento na mayroong "fan1" dito, i-uncment ang mga linya at voila, maaari mo nang gamitin ang 2 mga tagahanga.
Kung nais mong gumamit ng higit pa sa 2 mga tagahanga lamang, kopyahin at i-paste ang parehong code sa ilalim nito ngunit may ibang numero. Ang kawalan nito ay mas personal na trabaho para sa iyo at mas mababa sa mga magagamit na gpio.pins. Walang pakinabang dito na alam ko.
Hakbang 8: Patakbuhin ang Code sa Boot Up
Nais naming patakbuhin ng 2 script na ito sa sandali ang aming Rpi boots at kung sakaling mabagsak ang isang script, dapat itong muling simulan nang mag-isa. Upang magawa ito, gagawa kami ng 2 serbisyo.
Upang magawa ito, i-type ang:
sudo nano /etc/systemd/system/temperature.service
Kopyahin at i-paste ito para sa isang temperatura. Serbisyo:
[Yunit] Paglalarawan = Serbisyo sa Temperatura Pagkatapos = multi-user.target
[Serbisyo] Uri = simple
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput = tty-force
I-restart = on-pagkabigo
RestartSec = 60s
[I-install]
WantedBy = multi-user.target
Isara at gawin ulit ngunit pagkatapos ay para sa isang backend_project.service:
Unang bukas na teksto:
sudo nano /etc/systemd/system/backend_project.service
Pagkatapos muli kopyahin at i-paste:
[Unit] Paglalarawan = backend_project Service
Pagkatapos = multi-user.target
[Serbisyo]
Type = simple
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
I-restart = on-pagkabigo
RestartSec = 60s
[I-install]
WantedBy = multi-user.target
Makatipid at isara.
Ang huling bahagi ay nagta-type nito:
sudo systemctl daemon-reload
sudo systemctl paganahin ang temperatura.service sudo reboot
Ngayon ang aming 2 mga script sa python ay dapat na awtomatikong tumakbo sa boot.
Hakbang 9: Pag-setup ng Website
Kapag na-download mo ang imbakan, dapat mo ring makuha ang isang folder na tinatawag na harap. Dito ang nilalaman ay para sa website.
Una kailangan namin ng apache bago namin magamit ang folder. Sundin ang gabay sa link na ito para sa apache.
Kapag handa ka na. Pumunta sa kung saan matatagpuan ang front folder:
cd / Documents / nmct-s2-project-1-TheryBrian
Pagkatapos i-type:
sudo mv harap / var / www / html
Kapag tapos na iyon, pumunta sa folder na html, maghanda para sa ilang nakakapagod na trabaho (kasalanan ko).
cd / var / www / html /
pagkatapos ay pumunta sa harap na folder at simulang ilipat ang lahat sa folder na html.
halimbawa:
sudo mv css / var / www / html
Pagkatapos tanggalin ang front folder.
At tapos na tayo sa lahat.
Good luck:).
Hakbang 10: Opsyonal - Miniature Prototype
Para sa mga kadahilanang pagsubok ay gumawa ako ng isang prototype ng isang kahon lamang kasama ang lahat ng mga hardware sa loob upang makita ko kung gumagana ang mga bagay upang mag-order.
Karaniwan ang proyektong ito ay magagawa sa isang mas malaking sukat. Halimbawa: isang silid, bahay, pabrika, tindahan at iba pa…
Ngunit malinaw naman bago tayo magsimulang gumawa ng mga butas sa mga dingding (magandang tula). Una naming nais na makita kung ito ay gumagana lamang. Hindi mo talaga kailangang gumawa ng isang kahon para sa pagsubok, ngunit palaging masaya na gumawa ng crafting.
Narito ang aking halimbawa.
Inirerekumendang:
Arduino DHT22 Sensor at Soil Moisture Project Na May Menu: 4 Mga Hakbang
Project ng Arduino DHT22 Sensor at Soil Moisture Project Sa Menu: Kamusta mga tao ngayon Ipinakita ko sa iyo ang aking pangalawang proyekto sa mga itinuturo. Ipinapakita ng proyektong ito ang halo ng aking unang proyekto kung saan ginamit ko ang Soil Moisture sensor at DHT22 sensor na ginagamit para sa pagsukat ng temperatura at halumigmig . Ang proyektong ito ay
Paano Mag-wire at Gumamit ng GY-30 BH1750 Light Sensor (GY30 / GY302) - Madali - Arduino Project !: 7 Hakbang
Paano Mag-Wire at Gumamit ng GY-30 BH1750 Light Sensor (GY30 / GY302) - Madali - Arduino Project !: Sa tutorial na ito matututunan natin kung paano mabilis at madaling gamitin ang GY-30 BH1750 light intensity sensor kasama ang Arduino. Panoorin ang isang video ng demonstrasyon
Project ng RFID + Color Sensor IoT: 7 Mga Hakbang
Project ng RFID + Color Sensor IoT: Ang ideya ng proyektong ito ay upang gantimpalaan ang mga taong umiinom ng mga tasa ng kape at maayos na itinapon ang mga ito. Kumuha ng isang kumpanya tulad ng Tim Hortons halimbawa; noong 2014, naitala nila ang paghahatid ng 2 bilyong tasa ng kape taun-taon. Kahit na ang kanilang mga tasa ay maaaring i-recycle
Sino ang nasa Aking Pinto? PIR Motion Sensor / Range Sensor Project: 5 Hakbang
Sino ang nasa Aking Pinto? PIR Motion Sensor / Range Sensor Project: Nilalayon ng aming proyekto na makilala ang paggalaw sa pamamagitan ng PIR at mga distansya na sensor. Ang Arduino code ay maglalabas ng isang visual at audio signal upang sabihin sa gumagamit ang isang tao na malapit. Ang MATLAB code ay magpapadala sa am ng signal ng email upang alertuhan ang gumagamit na mayroong malapit. Ang aparatong ito
Kumuha ng isang Hanging Weight Sensor Mula sa isang Skala sa Labahe para sa Iyong Arduino Project: 4 na Hakbang
Kumuha ng isang Hanging Weight Sensor Mula sa isang Lale scale para sa Iyong Arduino Project: Sa tutorial na ito ipinapakita ko sa iyo kung paano makakuha ng isang hanging weight sensor para sa isang proyekto ng Arduino mula sa isang murang, karaniwang sukat ng bagahe / pangingisda at ang madalas na ginagamit na module ng HX711 ADC. Background: Para sa isang proyekto kailangan ko ng isang sensor upang masukat ang isang tiyak na bigat na