Përmbajtje:

Projekti TheAir - Sensori i Gazit: 10 Hapa
Projekti TheAir - Sensori i Gazit: 10 Hapa

Video: Projekti TheAir - Sensori i Gazit: 10 Hapa

Video: Projekti TheAir - Sensori i Gazit: 10 Hapa
Video: FULL BUILD | Rebuilding A DESTROYED Porsche 911 Turbo! 2024, Nëntor
Anonim
Projekti TheAir - Sensori i Gazit
Projekti TheAir - Sensori i Gazit

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

Konfigurimi i Raspberry Pi
Konfigurimi i Raspberry Pi
Konfigurimi i Raspberry Pi
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

Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
Krijimi i një lidhjeje dhe lidhja e Rpi pa tel me rrjetin tuaj lokal
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.

  1. Filloni stuko dhe plotësoni këtë:

    • Emri i hostit (ose adresa IP): 169.254.10.1
    • Porti: 22
  2. 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.

  1. Extra: shkruani "sudo raspi-config"
  2. Këtu do t'ju duhet të ndryshoni fjalëkalimin për përdoruesin pi (arsye sigurie)
  3. Më pas shkoni te Opsionet e Lokalizimit -> Koha e Ndryshimit (zgjidhni atë të duhurin) -> Pastaj shkoni te Wifi Country -> zgjidhni vendin.
  4. Mbyllni konfigurimin raspi dhe ristartoni.
  5. Kur të regjistroheni, bëni përkohësisht përdorues rrënjë -> sudo -i
  6. 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

Sensori DS18B20 (temperatura)-1-tela
Sensori DS18B20 (temperatura)-1-tela
Sensori DS18B20 (temperatura)-1-tela
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.

  1. Shkoni te Opsionet e Ndërfaqes
  2. 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

MCP3008 - Ndjenja analoge
MCP3008 - Ndjenja analoge
MCP3008 - Ndjenja analoge
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

Krijimi i një baze të dhënash Mariadb
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

Kodi Github dhe Testimi
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

Drejtoni kodin në nisjen
Drejtoni kodin në nisjen

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ë

Opsionale - Prototip miniaturë
Opsionale - Prototip miniaturë
Opsionale - Prototip miniaturë
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: