Talaan ng mga Nilalaman:

TheAir - Gas Sensor Project: 10 Hakbang
TheAir - Gas Sensor Project: 10 Hakbang

Video: TheAir - Gas Sensor Project: 10 Hakbang

Video: TheAir - Gas Sensor Project: 10 Hakbang
Video: ✨Swallowed Star EP 91 - 100 Full Version [MULTI SUB] 2024, Hulyo
Anonim
TheAir - Gas Sensor Project
TheAir - Gas Sensor Project

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

Pag-setup ng Raspberry Pi
Pag-setup ng Raspberry Pi
Pag-setup ng Raspberry Pi
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

Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network
Paggawa ng isang Koneksyon at Pagkonekta sa Rpi Wireless sa Iyong Lokal na Network

Kami ay mag-boot up ang Rpi -> ikonekta ang ethernet cable sa pagitan ng computer at Rpi.

  1. Simulan ang Putty at punan ito:

    • Pangalan ng Host (o IP address): 169.254.10.1
    • Port: 22
  2. 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.

  1. Dagdag: i-type ang "sudo raspi-config"
  2. Dito kakailanganin mong baguhin ang password para sa pi user (mga kadahilanang pangkaligtasan)
  3. Pagkatapos ay pumunta sa Mga Pagpipilian sa Lokalisasyon -> Baguhin ang Oras (piliin ang tamang isa) -> Pagkatapos ay pumunta sa Wifi Country -> pumili ng bansa.
  4. Isara ang raspi-config at i-reboot.
  5. Kapag naka-log in, pansamantalang gawin mong root ang iyong sarili -> sudo -i
  6. 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

Sensor DS18B20 (temperatura) - 1-wire
Sensor DS18B20 (temperatura) - 1-wire
Sensor DS18B20 (temperatura) - 1-wire
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.

  1. Pumunta sa mga pagpipilian sa Interfacing
  2. 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

MCP3008 - Sensing ng Analog
MCP3008 - Sensing ng Analog
MCP3008 - Sensing ng Analog
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

Lumilikha ng isang Mariadb Datbase
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

Github Code at Pagsubok
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

Run Code sa Boot Up
Run 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

Mga [email protected]

[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

Mga [email protected]

[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

Opsyonal - Miniature Prototype
Opsyonal - Miniature Prototype
Opsyonal - Miniature Prototype
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: