Orodha ya maudhui:

Mradi wa Sensorer ya Gesi ya TheAir: Hatua 10
Mradi wa Sensorer ya Gesi ya TheAir: Hatua 10

Video: Mradi wa Sensorer ya Gesi ya TheAir: Hatua 10

Video: Mradi wa Sensorer ya Gesi ya TheAir: Hatua 10
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Julai
Anonim
Mradi wa Sensorer ya Gesi
Mradi wa Sensorer ya Gesi

Monoxide ya kaboni na dioksidi kaboni, pia inajulikana kama CO na CO2. Mkaa ambao hauna rangi, hauna harufu, hauna ladha na ukweli ni hatari wakati uko kwenye viwango vya juu kwenye chumba kilichofungwa. Ikiwa unaishi sema kwa mfano katika chumba cha wanafunzi ambacho kimetengwa vibaya, hakuna mtiririko mzuri wa hewa na kwa sababu fulani, kibaniko hufanya kelele ya kushangaza wakati wa kufanya toast. Basi unaweza kuwasiliana na gesi hizi na wakati hiyo itatokea, lets hope inaisha tu na maumivu ya kichwa kidogo, kwa sababu katika mkusanyiko mkubwa inaweza kudhoofisha au hata kukuua (ingawa ni nadra sana).

Kwa hivyo niliamua kuja na mradi huu. Wazo langu ni rahisi, tumia mashabiki kufanya mtiririko wa hewa. Hewa nzuri na mbaya kutoka kwa kusema. Kwa matumizi ya ziada, niliongeza sensorer ya ziada ya joto, kitufe cha mashabiki wa uanzishaji wa mwongozo na pia wavuti ya wale ambao wanapenda kuona takwimu na / au kuamsha mashabiki kutoka kwa kompyuta zao.

Kama mwanafunzi, mzazi, mtu mmoja au kiumbe hai. Hili ni jambo ambalo kwa kawaida ungependa kuepuka wakati unakaa katika raha ya nyumba yako mwenyewe. Hii husaidia wale ambao wanapenda kufanya maisha yao iwe rahisi.

Vifaa

  • Raspberry Pi 3+
  • Chaja mini-usb 5V / 2.5A
  • Kadi ya Micro-sd
  • Sensorer

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (joto)
  • Shabiki wa 2 x 12V DC
  • 2 x 2n2222 transistors
  • Maonyesho ya LCD 16 * 2
  • Pushbutton
  • MCP3008
  • Kigeugeu cha kiwango cha Logi
  • Cable ya Ethernet (kwa sababu za usanidi)

Hatua ya 1: Usanidi wa Pi ya Raspberry

Usanidi wa Pi Raspberry
Usanidi wa Pi Raspberry
Usanidi wa Pi Raspberry
Usanidi wa Pi Raspberry

Kabla ya kufanya kazi na Rpi, tutahitaji programu.

  • WinSCP au FilleZilla (hiari ikiwa unataka kuhamisha faili kutoka kwa kompyuta yako kwenda Rpi)
  • Diski ya Win32 au Etcher (ambayo unapendelea zaidi)
  • Putty au MobaXterm (ambayo unapendelea zaidi)
  • Picha ya Raspbian na desktop

Kabla sijaanza ningependa kutaja kwamba wakati wa kufanya mafunzo haya, wakati ninachagua programu juu ya nyingine, haimaanishi kwamba ninapendekeza. Kwa mfano napenda kutumia etcher kwa sababu ni rahisi kutumia lakini Win32 ina chaguo la kutengeneza nakala rudufu. Sasa hiyo iko nje ya mfumo wangu, hebu tuanze.

Ikiwa tayari unayo Rpi ambayo imeunganishwa na mtandao wako wa wifi, ruka hadi hatua ya 3.

Kwanza tutatumia Etcher kuweka picha ya Raspbian kwenye kadi yako ya sd. Sasa kabla hatujatoa kadi ya sd, tutabadilisha "vitu" kadhaa kwenye faili ya cmdline.txt, ambayo inaweza kupatikana kwenye picha. Fungua faili ya.txt -> Ongeza mstari huu "ip = 169.254.10.1" (hakuna alama za nukuu) mwisho wa mstari (yote kwenye laini 1) -> Hifadhi faili

Pili fanya folda tupu iitwayo "ssh" katika kizigeu cha boot (bila alama za nukuu).

Baada ya hapo unaweza kutoa salama kwa Microsd na kuiweka kwenye Rpi.

Sababu ya IP tuli iliyowekwa ngumu ni kuifanya iwe rahisi kuungana na Rpi. Ikiwa kwa sababu fulani Rpi haina ip na DHCP basi unatumia static ip.

Hatua ya 2: Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao wako wa Karibu

Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu
Kufanya Uunganisho na Kuunganisha Rpi Wireless kwa Mtandao Wako wa Karibu

Tutazima Rpi -> unganisha kebo ya ethernet kati ya kompyuta na Rpi.

  1. Anza Putty na ujaze hii:

    • Jina la Mwenyeji (au anwani ya IP): 169.254.10.1
    • Bandari: 22
  2. Kituo kinaibuka na unachapa jina la mtumiaji na nywila chaguomsingi:

    • Jina la mtumiaji: pi
    • Nenosiri: rasipberry

Sasa kwa kuwa tumeunganishwa kijijini kwa rpi, tunataka Rpi iwe na muunganisho na wifi yako.

  1. Ziada: andika katika "sudo raspi-config"
  2. Hapa utahitaji kubadilisha nywila kwa mtumiaji wa pi (sababu za usalama)
  3. Baadaye nenda kwenye Chaguzi za Ujanibishaji -> Badilisha Wakati (chagua sahihi) -> Kisha nenda kwa Wifi Country -> chagua nchi.
  4. Funga raspi-config na uwashe upya.
  5. Unapoingia, fanya mtumiaji wa mizizi kwa muda mfupi -> sudo -i
  6. Andika amri hii ili kuongeza mtandao wako kwa Rpi (nambari hapa chini orodha)

    • nywila = "nywila" (na alama za nukuu)
    • Mtandao wa jina = "SSID"
    • Kumbuka kutumia mara mbili >>! Muhimu!

echo "nywila" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Sasa reboot tena

Wakati wa kuunganisha tena, angalia ip yako kwa kuandika:

ifconfig

na angalia wlan0, karibu na inet.

Sasa kwa kuwa tuna unganisho la mtandao, hebu fanya sasisho la "haraka".

sasisho la sudo apt

Sudo apt dist-upgrade -y

Hii inaweza kuchukua muda.

Hatua ya 3: Sensor DS18B20 (joto) - 1-waya

Sensor DS18B20 (joto) - 1-waya
Sensor DS18B20 (joto) - 1-waya
Sensor DS18B20 (joto) - 1-waya
Sensor DS18B20 (joto) - 1-waya

Kwa kila mradi, kutakuwa na kitu maalum ambacho lazima kifanyike ama sivyo haifanyi kazi wakati huu.

Wakati huu tunayo na sensorer ya joto ya DS18B20 ambayo inahitaji waya 1 ambayo sitaelezea kwanini lakini nitaelezea jinsi ya kuifanya ifanye kazi angalau.

Kwa hili lazima turudi kwenye raspi-config kwenye Rpi, skrini nzuri ya samawati.

  1. Nenda kwenye chaguzi za Interfacing
  2. Chagua 1-Waya na uchague kuwezesha.

Nimemaliza…

Ninatania tu.

Sasa tutahitaji kurekebisha / boot/config.txt

Sudo nano / boot/config.txt

Ongeza mstari huu chini.

# Wezesha moja kwa moja

dtoverlay = w1-gpio

Sasa Sudo reboot kitu hicho na sasa tumemaliza.

Kuangalia ikiwa inafanya kazi, unganisha sensa kwa Rpi kisha urudi kwenye kituo na uandike nambari hii (Tazama hatua inayofuata vifaa vya jinsi ya kuunganisha sensor ya joto).

cd / sys / basi / w1 / vifaa / w1_bus_master1

ls

Unapaswa kuona kitu kilicho na nambari na herufi zilizo na hudhurungi nyeusi kushoto juu, hakikisha kuandika kipande hiki cha habari baadaye wakati tutafanya kazi na nambari kutoka kwa github.

Ikiwa kwa sababu fulani haifanyi kazi, angalia kiunga hiki ambacho kinaingia ndani zaidi.

Hatua ya 4: MCP3008 - Analog Sensing

MCP3008 - Utaftaji wa Analog
MCP3008 - Utaftaji wa Analog
MCP3008 - Utaftaji wa Analog
MCP3008 - Utaftaji wa Analog

Kama tulifanya mabadiliko kwa sensorer ya joto, tunahitaji pia kufanya mabadiliko kwa sensorer zingine kwani zinahitaji kusoma katika data ya analog. Hapa ambapo MCP3008 inakuja vizuri, tunahitaji pia kubadilisha kiolesura cha SPI.

Sudo raspi-config

Nenda kwenye Chaguzi za Kuingiliana -> Chagua SPI -> wezesha.

Kisha Maliza.

Hatua ya 5: Vifaa

Hatujafanya kabisa na Rpi lakini ya kutosha ili tuweze kuanza kujenga na kuweka vifaa pamoja.

Ushauri mwingine ni kuangalia vizuri miunganisho yako wakati wa kujenga ili uhakikishe… hailipuki Rpi.

Pia, katika Mpangilio utaona baadhi ya vifaa viko juu yake mara moja tu ingawa tutafanya kazi na zaidi ya 1 ya sehemu moja. Inamaanisha tu kwamba lazima urudie mchakato ule ule wa kujenga kipengee 1. Kuna ubaguzi 1 mdogo, sensorer za mq-x haziitaji kibadilishaji cha kiwango cha ziada au MCP3008. Ongeza tu kebo ya ziada ya kijani kibichi (katika pdf) kwa ubadilishaji wa kiwango na MCP3008.

Hariri ya ziada: Mashabiki wanahitaji kutumia transistor kama swichi. Ninatumia transistor ya 2n2222A kwa shabiki 1, kwa sababu mashabiki 2 wanaweza kuwa mzigo mzito.

Ikiwa una transistor inayoweza kushughulikia mkondo mkubwa basi mzuri, ruka sehemu ya mwisho ya hatua hii.

Ikiwa hauna mmoja kama mimi, basi utahitaji kuifanya kama hii, shabiki 1 = 1 transistor, mashabiki 2 = transistors 2, na kadhalika (kila shabiki ni diode ya transistor + yake mwenyewe kama vile pdf).

Utahitaji pia kuongeza nambari fulani kwenye programu.py katika backend_project baadaye kwenye Hatua ya 7: Msimbo wa Git….

Hatua ya 6: Kuunda Datbase ya Mariadb

Kuunda Datbase ya Mariadb
Kuunda Datbase ya Mariadb

Kama kichwa kinamaanisha, tutaunda hifadhidata ili tuwe na mahali pa kuhifadhi data zetu za sensa.

Kwanza fanya vitu vya kwanza, pakua Mariadb kwenye Rpi.

Sudo apt-get kufunga mariadb-server

Baada ya usanikishaji, wacha tuitumie.

mysql -u mzizi

Nenosiri ni tupu, kwa hivyo hakuna kitu cha kuchapa. Bonyeza kuingia.

Wacha tuunde mtumiaji sasa.

Unda Mtumiaji 'Mtumiaji' @ '%' IDEDIFIED BY 'userdb';

TOA MAHAKAMA YOTE KWA *. * KWA 'mtumiaji' @ '%' KWA UCHAGUZI WA RUZUKU;

HAKI ZA FLUSH;

Bonyeza Ctrl + C ili kutoka na kuanza upya huduma kwa haraka:

huduma ya sudo kuanza tena mysql

Ingia na jina la mtumiaji: mtumiaji na nywila: userdb:

mysql -u mtumiaji -p

Wakati wa kuunda hifadhidata sasa.

Unda mradi wa dabati_db SETA YA UFAFANUZI SET utf8;

TUMIA mradi_db

Unda meza "historiek" (inamaanisha historia).

Unda JEDWALI IKIWA HAIKO `historiek` (` id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) SI NULL,` datum` TAREHE YA SIKU SIYO YOTE UFAFANUZI CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, KEY YA MSINGI (` id`)) ENGINE = InnoDB;

Na voila, hifadhidata imetengenezwa.

Hatua ya 7: Nambari ya Github na Upimaji

Nambari ya Github na Upimaji
Nambari ya Github na Upimaji

Tunakaribia mwisho wa mradi wetu.

Kabla ya kupata nambari, tutahitaji kuagiza moduli kadhaa kwenye Rpi:

pip3 kufunga Flask_MySQL

pip3 kufunga chupa-socketio

pip3 kufunga -U chupa-cors

pip3 kufunga spidev

Sasa tunahitaji nambari kuifanya ifanye kazi, andika kwenye terminal:

clone ya git

Angalia ikiwa folda iko na:

ls

Sasa utahitaji vituo 2 kwa hivyo ni rahisi kubofya kulia kwenye kituo na bonyeza vipindi vya Nakala:

Nenda kwa backend_project na joto ukitumia amri ya cd.

Sasa kabla ya kuanzisha programu kwa madhumuni ya upimaji. Bado unakumbuka Hatua ya 3 na sensa ya waya 1 ambapo unahitaji kuandika nambari kadhaa? Hakuna wasiwasi ikiwa unayo, angalia tu hatua haraka 3.

Tutaongeza nambari hizi kwa nambari hiyo kwa sababu itahitaji kujua sensa sahihi wakati wa kuitumia.

Kituo na folda ya joto, utapata app.py. Tutaifungua.

Sudo nano app.py

Tafuta kazi inayoitwa "def temperatuur ():", hapo itabidi ubadilishe "**" na nambari ulizoandika. Katika kesi yangu ningeipata laini hii ya nambari (kila nambari ni ya kipekee).

sensor_file_name = '/ sys / vifaa / w1_bus_master1 / 28-0316a4be59ff / w1_slave

Wakati wa kupima. Vituo vyote katika folda ya backend_project na joto, andika:

python3 app.py

Sasa kumbuka hatua ya 5: vifaa ambapo unahitaji kuongeza nambari ikiwa unatumia mashabiki na transistors nyingi?

Nzuri, ikiwa sio kurudi hatua ya 5.

Sasa tunahitaji kuongeza nambari kama nilivyosema kwa app.py katika backend_project. Ili kurahisisha, nilifanya mfano wa hii katika nambari. Kila mstari wa nambari ya maoni ambayo ina "fan1" ndani yake, ondoa mistari hiyo na voila, sasa unaweza kutumia mashabiki 2.

Ikiwa unataka kutumia zaidi basi mashabiki 2 tu, nakili na ubandike nambari sawa chini yake lakini na nambari tofauti. Ubaya wa hii ni kazi ya kibinafsi kwako na pini ndogo za gpio zinapatikana. Hakuna faida kwa hii ambayo najua.

Hatua ya 8: Run Code on Boot Up

Run Code kwenye Boot Up
Run Code kwenye Boot Up

Tunataka hati hizi za chatu 2 ziendeshe wakati buti zetu za Rpi zikiibuka na ikiwa hati itaanguka, inapaswa kuanza yenyewe. Ili kufanya hivyo tutafanya huduma 2.

Ili kufanya hivyo, andika:

sudo nano /etc/systemd/system/temperature.service

Nakili na ubandike hii kwa huduma ya joto:

[Kitengo] Maelezo = Huduma ya Joto Baada ya = multi-user.target

[email protected]

[Huduma] Aina = rahisi

ExecStart = / usr / bin / python3 / nyumba /pi / Nyaraka / nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = nguvu ndogo

Anzisha upya = kutofaulu

Anzisha upyaSec = 60s

[Sakinisha]

InayotarajiwaBy = multi-user.target

Funga na ufanye tena lakini kisha kwa huduma ya backend_project:

Maandishi ya kwanza wazi:

sudo nano /etc/systemd/system/backend_project.service

Kisha tena nakili na ubandike:

[Kitengo] Maelezo = Huduma ya mradi wa backend_project

Baada ya = multi-user.target

[Huduma]

Aina = rahisi

ExecStart = / usr / bin / python3 / nyumba / pi / Nyaraka / nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = nguvu ndogo

Anzisha upya = kutofaulu

Anzisha upyaSec = 60s

[Sakinisha]

InayotarajiwaBy = multi-user.target

Okoa na funga.

Sehemu ya mwisho ni kuandika hii:

Sudo systemctl daemon-reload

Sudo systemctl wezesha hali ya joto. huduma sudo reboot

Sasa hati zetu 2 za chatu zinapaswa kukimbia kiatomati kwenye boot.

Hatua ya 9: Sanidi Tovuti

Wakati unapakua hazina, unapaswa pia kupata folda inayoitwa mbele. Hapa ndipo yaliyomo ni ya wavuti.

Kwanza tunahitaji apache kabla ya kutumia folda. Fuata mwongozo kwenye kiunga hiki cha apache.

Wakati uko tayari. Nenda ambapo folda ya mbele iko:

cd / Nyaraka / nmct-s2-mradi-1-TheryBrian

Kisha andika:

sudo mv mbele / var / www / html

Wakati hiyo imekwisha, nenda kwenye folda ya html, jiandae kwa kazi fulani ya kuchosha (kosa langu).

cd / var / www / html /

kisha nenda kwenye folda ya mbele na anza kusogeza kila kitu kwenye folda ya html.

mfano:

sudo mv css / var / www / html

Kisha futa folda ya mbele.

Na tumemaliza na kila kitu.

Bahati njema:).

Hatua ya 10: Hiari - Mfano mdogo

Hiari - Mfano mdogo
Hiari - Mfano mdogo
Hiari - Mfano mdogo
Hiari - Mfano mdogo

Kwa sababu za kujaribu nilitengeneza mfano wa sanduku tu na vifaa vyote ndani ili niweze kuona ikiwa kila kitu hufanya kazi kuagiza.

Kwa kawaida mradi huu ungefanywa kwa kiwango kikubwa. Kwa mfano: chumba, nyumba, kiwanda, duka na kadhalika…

Lakini ni wazi kabla ya kuanza kutengeneza mashimo kwenye kuta (wimbo mzuri). Kwanza tunataka kuona ikiwa inafanya kazi tu. Huna haja ya kutengeneza sanduku la kujaribu, lakini kila wakati ni raha kufanya ufundi.

Hapa ni mfano wangu.

Ilipendekeza: