Përmbajtje:
- Furnizimet
- Hapi 1: Konfigurimi i Raspberry Pi
- Hapi 2: Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
- Hapi 3: Sensori DS18B20 (temperatura)-1-tela
- Hapi 4: MCP3008 - Ndjenja analoge
- Hapi 5: Pajisje kompjuterike
- Hapi 6: Krijimi i një baze të dhënash Mariadb
- Hapi 7: Kodi Github dhe Testimi
- Hapi 8: Drejtoni kodin në Boot Up
- Hapi 9: Konfigurimi i faqes në internet
- Hapi 10: Opsionale - Prototip Miniaturë
Video: Projekti TheAir - Sensori i Gazit: 10 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Monoksidi i karbonit dhe dioksidi i karbonit, i njohur gjithashtu si CO dhe CO2. Gazra që janë pa ngjyrë, pa erë, pa shije dhe sinqerisht të rrezikshme kur janë në përqëndrime të larta në një dhomë të mbyllur. Nëse jeni duke jetuar thoni për shembull në një dhomë studentore që është e izoluar keq, nuk ka ajër të mirë dhe për ndonjë arsye, thotë dolli bën një zhurmë të çuditshme gjatë bërjes së dolli. Atëherë mund të bini në kontakt me këto gazra dhe kur kjo të ndodhë, le të shpresojmë që të përfundojë vetëm me një dhimbje koke të vogël, të shkaktojë në përqendrim të lartë mund t'ju paaftësojë apo edhe t'ju vrasë (edhe pse shumë rrallë).
Kështu që vendosa të dal me këtë projekt. Ideja ime është e thjeshtë, përdorni tifozët për të bërë një rrjedhë ajri. Ajër i mirë brenda dhe ajër i keq jashtë për të thënë kështu. Për përdorim shtesë, shtova një sensor shtesë të temperaturës, butonin për tifozët e aktivizimit manual dhe gjithashtu një faqe në internet për ata që duan të shohin statistika dhe/ose aktivizojnë tifozët nga kompjuteri i tyre.
Si student, prind, person i vetëm ose qenie e gjallë. Kjo është diçka që normalisht dëshironi të shmangni kur jetoni në komoditetin e shtëpisë tuaj. Kjo i ndihmon ata që duan ta bëjnë jetën e tyre pak më të lehtë.
Furnizimet
- Raspberry Pi 3+
- Mini-USB karikues 5V/2.5A
- Kartë mikro-sd
-
Sensorë
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 x 12V tifoz DC
- 2 transistorë 2 x 2n2222
- Ekran LCD 16*2
- Butoni i butonit
- MCP3008
- Konvertuesi i nivelit logi
- Kabllo Ethernet (për arsye konfigurimi)
Hapi 1: Konfigurimi i Raspberry Pi
Para se të punojmë me Rpi, do të kemi nevojë për ndonjë softuer.
- WinSCP ose FilleZilla (opsionale nëse doni të transferoni skedarë nga kompjuteri juaj në Rpi)
- Disku Win32 ose Etcher (që ju preferoni më shumë)
- Stuko ose MobaXterm (që preferoni më shumë)
- Imazh Raspbian me desktop
Para se të filloj do të doja të përmendja se kur bëj këtë tutorial, kur zgjedh një program mbi tjetrin, NUK do të thotë që unë e rekomandoj atë. Për shembull, më pëlqen të përdor etcher sepse është më miqësor ndaj përdoruesit, por Win32 ka mundësinë të bëjë kopje rezervë. Tani kjo është jashtë sistemit tim, le të fillojmë.
Nëse tashmë keni një Rpi që është i lidhur me rrjetin tuaj wifi, kaloni në hapin 3.
Së pari ne do të përdorim Etcher për të vendosur imazhin Raspbian në kartën tuaj sd. Tani para se të nxjerrim kartën sd, ne do të ndryshojmë disa "gjëra" në skedarin cmdline.txt, të cilat mund të gjenden në imazh. Hapni skedarin.txt -> Shtoni këtë rresht "ip = 169.254.10.1" (pa thonjëza) në fund të rreshtit (të gjitha në 1 rresht) -> Ruaj skedarin
Së dyti, bëni një dosje të zbrazët të quajtur "ssh" në ndarjen e nisjes (pa thonjëza).
Pas kësaj ju mund ta hiqni me siguri Microsd dhe ta vendosni në Rpi.
Arsyeja për IP -në statike të koduar vështirë është që ta bëjë më të lehtë lidhjen me Rpi. Nëse për ndonjë arsye Rpi nuk ka një ip me DHCP atëherë ju lehtë përdorni ip statik.
Hapi 2: Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Ne do të fillojmë Rpi -> lidhni kabllon ethernet midis kompjuterit dhe Rpi.
-
Filloni stuko dhe plotësoni këtë:
- Emri i hostit (ose adresa IP): 169.254.10.1
- Porti: 22
-
Një terminal shfaqet dhe ju shkruani emrin e përdoruesit dhe fjalëkalimin e paracaktuar:
- Emri i përdoruesit: pi
- Fjalëkalimi: mjedër
Tani që jemi lidhur në vend me rpi, ne duam që Rpi të ketë një lidhje me wifi -n tuaj.
- Extra: shkruani "sudo raspi-config"
- Këtu do t'ju duhet të ndryshoni fjalëkalimin për përdoruesin pi (arsye sigurie)
- Më pas shkoni te Opsionet e Lokalizimit -> Koha e Ndryshimit (zgjidhni atë të duhurin) -> Pastaj shkoni te Wifi Country -> zgjidhni vendin.
- Mbyllni konfigurimin raspi dhe ristartoni.
- Kur të regjistroheni, bëni përkohësisht përdorues rrënjë -> sudo -i
-
Shkruani këtë komandë për të shtuar rrjetin tuaj në Rpi (kodi më poshtë në listë)
- fjalëkalim = "fjalëkalim" (me thonjëza)
- Emri i rrjetit = "SSID"
- Mos harroni të përdorni dyfish >>! E rëndësishme!
jehonë "fjalëkalimi" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Tani rindizni përsëri
Kur rilidheni, kontrolloni IP -në tuaj duke shtypur:
ifconfig
dhe kontrolloni wlan0, pranë inet.
Tani që kemi lidhje interneti, le të bëjmë një përditësim "të shpejtë".
sudo apt përditësim
sudo apt dist -upgrade -y
Kjo mund të marrë ca kohë.
Hapi 3: Sensori DS18B20 (temperatura)-1-tela
Me çdo projekt, gjithmonë do të ketë diçka të veçantë që duhet bërë ose përndryshe nuk do të funksionojë momenti.
Këtë herë e kemi me sensorin e temperaturës DS18B20 i cili kërkon 1-tela të cilin nuk do ta shpjegoj pse por do të shpjegoj se si ta bëj atë të funksionojë të paktën.
Për këtë ne duhet të kthehemi te konfigurimi raspi në Rpi, ekrani i bukur blu.
- Shkoni te Opsionet e Ndërfaqes
- Zgjidhni 1-Wire dhe zgjidhni aktivizoni.
U krye…
Vetëm shaka.
Tani do të na duhet të rregullojmë /boot/config.txt
sudo nano /boot/config.txt
Shtoni këtë rresht në fund.
# Aktivizo me tela
dtoverlay = w1-gpio
Tani sudo rindizeni atë gjë dhe tani kemi mbaruar.
Për të kontrolluar nëse funksionon, lidhni sensorin me Rpi pastaj kthehuni në terminal dhe shkruani këtë kod (Shih hapin tjetër Pajisje kompjuterike se si të lidhni sensorin e temperaturës).
cd/sys/bus/w1/pajisje/w1_bus_master1
ls
Ju duhet të shihni diçka me numra dhe shkronja me blu të errët në të majtë, sigurohuni që ta shkruani këtë pjesë të informacionit për më vonë kur të punojmë me kodin nga github.
Nëse për ndonjë arsye nuk funksionon, kontrolloni këtë lidhje që shkon më thellë në të.
Hapi 4: MCP3008 - Ndjenja analoge
Ndërsa bëmë një ndryshim për sensorin e temperaturës, ne gjithashtu duhet të bëjmë disa ndryshime për sensorët e tjerë pasi ato duhet të lexojmë në të dhëna analoge. Këtu ku vjen mirë MCP3008, ne gjithashtu duhet të ndryshojmë ndërfaqen SPI.
sudo raspi-config
Shkoni te Opsionet e Ndërfaqes -> Zgjidhni SPI -> aktivizoni.
Pastaj Mbaro.
Hapi 5: Pajisje kompjuterike
Ne nuk jemi bërë plotësisht me Rpi, por mjaftueshëm në mënyrë që të fillojmë të ndërtojmë dhe vendosim pajisjet së bashku.
Disa këshilla janë që të kontrolloni plotësisht lidhjet tuaja kur ndërtoni për t'u siguruar që nuk do të … hidhni në erë Rpi.
Gjithashtu, në Skemën do të vini re se disa përbërës janë në të vetëm një herë edhe pse ne do të punojmë me më shumë se 1 të të njëjtit komponent. Thjesht do të thotë që ju duhet të përsërisni të njëjtin proces të ndërtimit të atij 1 përbërësi. Ekziston një përjashtim i vogël, sensorët mq-x nuk kanë nevojë për një konvertues të nivelit shtesë ose MCP3008. Thjesht shtoni një kabllo jeshile shtesë (në pdf) në konvertorin e nivelit dhe MCP3008.
Ndryshim shtesë: Tifozët duhet të përdorin një tranzistor si ndërprerës. Unë përdor një transistor 2n2222A për 1 tifoz, sepse 2 tifozë mund të jenë një ngarkesë e rëndë.
Nëse keni një transistor që mund të përballojë një rrymë më të madhe, atëherë kaloni pjesën e fundit të këtij hapi.
Nëse nuk keni një si unë, atëherë do t'ju duhet ta bëni kështu, 1 ventilator = 1 transistor, 2 tifozë = 2 transistorë, e kështu me radhë (çdo tifoz është transistori i tij + dioda si në pdf).
Ju gjithashtu do të duhet të shtoni një kod tek app.py në backend_project më vonë në Hapin 7: Kodi Git….
Hapi 6: Krijimi i një baze të dhënash Mariadb
Siç nënkupton edhe titulli, ne do të krijojmë një bazë të dhënash në mënyrë që të kemi vend për të ruajtur të dhënat tona të sensorit.
Gjërat e para së pari, shkarkoni Mariadb në Rpi.
sudo apt-get install mariadb-server
Pas instalimit, le ta përdorim atë.
rrënjë mysql -u
Fjalëkalimi është bosh, kështu që asgjë për të shtypur. Shtypni enter.
Le të krijojmë një përdorues tani.
CREATE USER 'user'@'%' IDENTIFIKUAR NGA 'userdb';
DH GRNI T ALL GJITHA PRIVILEGJET N ON *. * N '' përdorues '@'%'ME OPSION GRANT;
PRIVILEGJET E PARASHIKUAR;
Shtypni Ctrl + C për të dalë dhe për të bërë një rinisje të shpejtë të shërbimit:
rifillo shërbimin sudo mysql
Identifikohu me emrin e përdoruesit: përdoruesi dhe fjalëkalimi: userdb:
mysql -u përdorues -p
Koha për të krijuar bazën e të dhënave tani.
KRIJONI BAZA TAT DHATNAVE project_db KARAKTERI PEFRFUNDIM SET utf8;
USE project_db
Krijoni një tabelë "historiek" (do të thotë histori).
KRIJONI TABELN NFSE NUK KA `historiek` (` id` N NOT NUK P ARFSHIRJE AUTO_INKREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, KRYESORE PRIMARE (` id`)) ENGINE = InnoDB;
Dhe voila, baza e të dhënave është bërë.
Hapi 7: Kodi Github dhe Testimi
Po i afrohemi fundit të projektit tonë.
Para se të marrim kodin, do të na duhet të importojmë disa module në Rpi:
pip3 instaloni Flask_MySQL
pip3 instaloni flaks-socketio
pip3 install -U balonë -cors
pip3 instaloni spidev
Tani na duhet kodi për ta bërë atë të funksionojë, shkruani terminalin:
git klon
Kontrolloni nëse dosja është atje me:
ls
Tani do t'ju duhen 2 terminale, kështu që është i dobishëm të klikoni me të djathtën në terminal dhe të klikoni në Duplicate session:
Shkoni te backend_project dhe temperature duke përdorur komandën cd.
Tani para se të fillojmë programet për qëllime testimi. A ju kujtohet akoma Hapi 3 me sensorin me 1 tela ku duhet të shkruani disa numra? Mos u shqetësoni nëse keni, thjesht hidhni një vështrim të shpejtë në hapin 3 përsëri.
Ne do t'i shtojmë këta numra në kod, sepse do të duhet të dijë sensorin e duhur kur e përdor.
Terminali me dosjen e temperaturës, do të gjeni app.py. Ne do ta hapim atë.
sudo nano app.py
Shikoni për funksionin që quhet "def temperatuur ():", aty do t'ju duhet të zëvendësoni "**" me numrat që keni shkruar. Në rastin tim, do ta merrja këtë linjë kodi (secili numër është unik).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Koha e testimit. Të dy terminalet në dosjen backend_project dhe temperature, shkruani:
aplikacioni python3.py
Tani mbani mend hapin 5: pajisjet ku duhet të shtoni kod nëse përdorni tifozë dhe transistorë të shumtë?
Mirë, nëse jo kthehuni në hapin 5.
Tani duhet të shtojmë kodin siç e përmenda tek app.py në backend_project. Për ta bërë më të lehtë, kam bërë një shembull të kësaj në kod. Çdo rresht i kodit të komentit që ka "fan1" në të, mos i komentoni ato rreshta dhe voila, tani mund të përdorni 2 tifozë.
Nëse dëshironi të përdorni më shumë se vetëm 2 tifozë, kopjoni dhe ngjisni të njëjtin kod nën të, por me një numër të ndryshëm. Disavantazhi i kësaj është puna më personale për ju dhe më pak gpio.pins në dispozicion. Nuk ka përparësi për këtë që unë di.
Hapi 8: Drejtoni kodin në Boot Up
Ne duam që këto 2 shkrime python të funksionojnë në momentin kur Rpi -ja jonë fillon dhe në rast se një shkrim do të rrëzohet, ai duhet të riniset vetë. Për ta bërë këtë ne do të bëjmë 2 shërbime.
Për ta bërë këtë, shkruani:
sudo nano /etc/systemd/system/temperature.service
Kopjoni dhe ngjisni këtë për një temperature.service:
[Njësia] Përshkrimi = Shërbimi i Temperaturës Pas = multi-user.target
Konfliktet = [email protected]
[Shërbimi] Lloji = i thjeshtë
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput = tty-force
Rinis = në dështim
RestartSec = 60s
[Instalo]
WantedBy = multi-user.target
Mbyllni dhe bëni përsëri, por pastaj për një shërbim backend_project.service:
Teksti i parë i hapur:
sudo nano /etc/systemd/system/backend_project.service
Pastaj përsëri kopjoni dhe ngjisni:
[Njësia] Përshkrimi = Shërbimi backend_project
After = multi-user.target
Konfliktet = [email protected]
[Shërbimi]
Lloji = i thjeshtë
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
Rinis = në dështim
RestartSec = 60s
[Instalo]
WantedBy = multi-user.target
Ruani dhe mbyllni.
Pjesa e fundit është duke shkruar këtë:
sudo systemctl daemon-ringarkoni
sudo systemctl aktivizoni temperaturën.shërbimi sudo rindezje
Tani 2 skriptet tona python duhet të funksionojnë automatikisht në boot.
Hapi 9: Konfigurimi i faqes në internet
Kur keni shkarkuar depon, duhet të keni marrë edhe një dosje të quajtur front. Kjo është ajo ku përmbajtja është për faqen e internetit.
Së pari ne kemi nevojë për apache para se të mund të përdorim dosjen. Ndiqni udhëzuesin në këtë lidhje për apache.
Kur të jeni gati. Shkoni atje ku ndodhet dosja e përparme:
cd /Documents /nmct-s2-project-1-TheryBrian
Pastaj shkruani:
sudo mv front/var/www/html
Kur të bëhet kjo, shkoni te dosja html, përgatituni për ndonjë punë të lodhshme (faji im).
cd/var/www/html/
pastaj shkoni në dosjen e përparme dhe filloni të zhvendosni gjithçka në dosjen html.
shembull:
sudo mv css/var/www/html
Pastaj fshini dosjen e përparme.
Dhe ne kemi mbaruar me gjithçka.
Paç fat:).
Hapi 10: Opsionale - Prototip Miniaturë
Për arsye testimi, unë bëra një prototip të vetëm një kutie me të gjithë pajisjet brenda, kështu që mund të shoh nëse gjithçka funksionon sipas porosisë.
Normalisht ky projekt do të bëhej në një shkallë më të madhe. Për shembull: një dhomë, një shtëpi, një fabrikë, një dyqan etj.…
Por padyshim para se të fillojmë të bëjmë vrima në mure (rimë e bukur). Ne së pari duam të shohim nëse thjesht funksionon. Në fakt nuk keni nevojë të bëni një kuti për testim, por është gjithmonë argëtuese të bëni disa punime.
Këtu është shembulli im.
Recommended:
Ndërfaqja e sensorit të gazit me Arduino: 4 hapa
Ndërfaqja e sensorit të gazit me Arduino: Sensori i tymit MQ-2 është i ndjeshëm ndaj tymit dhe ndaj gazeve të mëposhtëm të ndezshëm: LPG, Butan, Propan, Metan, Alkool, Hidrogjen. Rezistenca e sensorit është e ndryshme në varësi të llojit të gazit. Sensori i tymit ka një potenciometër të integruar
Stacioni i gazit për zbulimin e CO: 5 hapa
Stacioni i gazit për zbulimin e CO: Monoksidi i karbonit (CO) është gaz shumë i rrezikshëm, sepse nuk ka erë, nuk ka shije. Ju nuk mund ta shihni, ose ta zbuloni me hundë. Qëllimi im është të ndërtoj një detektor të thjeshtë të CO. Së pari, unë zbuloj sasi shumë të vogla të atij gazi në shtëpinë time. Kjo është arsyeja,
Lexoni njehsorin e energjisë elektrike dhe gazit (belg/holandez) dhe ngarkoni në Thingspeak: 5 hapa
Lexoni Matësin e Energjisë Elektrike dhe Gazit (Belgjike/Holandeze) dhe Ngarko në Thingspeak: Nëse jeni të shqetësuar për konsumin tuaj të energjisë ose thjesht për një çmenduri, me siguri dëshironi të shihni të dhënat nga njehsori juaj i ri dixhital i zgjuar në smartphone tuaj. Në këtë projekt do të marrim të dhënat aktuale nga një elektrik dixhital belg ose holandez
Visuino Breathalyzer Si të përdorni Sensorin e Gazit Alkool MQ-3: 8 Hapa
Visuino Breathalyzer Si të përdorni sensorin e gazit të alkoolit MQ-3: Në këtë tutorial ne do të përdorim modulin Arduino UNO, OLED Lcd, MQ-3 Alcohol Gas Sensor dhe Visuino për të shfaqur nivelet e alkoolit në LCD dhe për të vendosur zbulimin e kufirit. Shikoni një video demonstruese
Parandalimi i rrjedhjes së gazit në shtëpi duke përdorur Arduino .: 3 hapa
Parandalimi i rrjedhjes së gazit në shtëpi duke përdorur Arduino .: Në këtë udhëzues kam bërë një prototip që mbyll automatikisht çelësin e gazit të cilindrit të GLN -së kur ka një rrjedhje gazi. LPG është pa erë dhe një agjent i quajtur Ethyl Mercaptan shtohet për erën e tij, në mënyrë që të vërehet kur ka një rrjedhje.