Turinys:
- Prekės
- 1 veiksmas: „Raspberry Pi“sąranka
- 2 veiksmas: prijunkite ir prijunkite „Rpi Wireless“prie vietinio tinklo
- 3 žingsnis: jutiklis DS18B20 (temperatūra)-1 laidas
- 4 žingsnis: MCP3008 - analoginis jutimas
- 5 žingsnis: Aparatūra
- 6 veiksmas: sukurkite „Mariadb“duomenų bazę
- 7 veiksmas: „Github“kodas ir testavimas
- 8 veiksmas: paleiskite kodą įkrovos metu
- 9 veiksmas: nustatykite svetainę
- 10 žingsnis: pasirinktinai - miniatiūrinis prototipas
Video: „TheAir“- dujų jutiklio projektas: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Anglies monoksidas ir anglies dioksidas, taip pat žinomi kaip CO ir CO2. Dujos, kurios yra bespalvės, bekvapės, beskonės ir atvirai pavojingos esant didelėms koncentracijoms uždaroje patalpoje. Jei gyvenate, sakykite, pavyzdžiui, studentų kambaryje, kuris yra blogai izoliuotas, nėra gero oro srauto ir dėl kokių nors priežasčių skrudintuvas skleidžia skrudintą duoną. Tuomet galite susidurti su šiomis dujomis ir, kai tai atsitiks, tikėkimės, kad tai baigsis tik nedideliu galvos skausmu, nes didelėje koncentracijoje jis gali tapti neveiksnus arba net nužudyti (nors ir labai retai).
Taigi nusprendžiau sugalvoti šį projektą. Mano idėja paprasta, naudokite ventiliatorius, kad sukurtumėte oro srautą. Geras oras ir blogas oras, taip sakant. Dėl papildomos naudos pridėjau papildomą temperatūros jutiklį, mygtuką rankinio įjungimo ventiliatoriams ir svetainę tiems, kurie mėgsta matyti statistiką ir (arba) aktyvuoti ventiliatorius iš savo kompiuterio.
Kaip studentas, tėvas, vienišas asmuo ar gyva būtybė. To paprastai norėtumėte vengti, kai gyvenate patogiai savo namuose. Tai padeda tiems, kurie mėgsta šiek tiek palengvinti savo gyvenimą.
Prekės
- Raspberry Pi 3+
- Mini usb įkroviklis 5V/2.5A
- „Micro-sd“kortelė
-
Jutikliai
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatūra)
- 2 x 12 V nuolatinės srovės ventiliatorius
- 2 x 2n2222 tranzistoriai
- 16*2 LCD ekranas
- Mygtukas
- MCP3008
- „Logi“lygio keitiklis
- Ethernet kabelis (dėl sąrankos priežasčių)
1 veiksmas: „Raspberry Pi“sąranka
Prieš pradėdami dirbti su Rpi, mums reikės tam tikros programinės įrangos.
- „WinSCP“arba „FilleZilla“(neprivaloma, jei norite perkelti failus iš kompiuterio į RPI)
- „Win32“diskas arba „Etcher“(kuriam labiau patinka)
- „Putty“arba „MobaXterm“(jums labiau patinka)
- Raspbian vaizdas su darbalaukiu
Prieš pradėdamas norėčiau paminėti, kad kurdamas šią pamoką, kai renkuosi programą, tai nereiškia, kad aš ją rekomenduoju. Pavyzdžiui, man patinka naudoti etcher, nes jis yra patogesnis vartotojui, tačiau „Win32“turi galimybę kurti atsargines kopijas. Dabar tai išeina iš mano sistemos, pradėkime.
Jei jau turite „Rpi“, prijungtą prie „Wi -Fi“tinklo, pereikite prie 3 veiksmo.
Pirmiausia mes naudosime „Etcher“, norėdami įdėti „Raspbian“vaizdą į jūsų SD kortelę. Dabar, prieš ištraukdami SD kortelę, pakeisime „cmdline.txt“failo „daiktus“, kuriuos galima rasti paveikslėlyje. Atidarykite.txt failą -> Pridėkite šią eilutę „ip = 169.254.10.1“(be kabučių) eilutės pabaigoje (viskas 1 eilutėje) -> Išsaugoti failą
Antra, įkrovos skaidinyje sukurkite tuščią aplanką „ssh“(be kabučių).
Po to galite saugiai išstumti „Microsd“ir įdėti jį į RPI.
Sunkiai koduoto statinio IP priežastis yra palengvinti prisijungimą prie Rpi. Jei dėl kokių nors priežasčių Rpi neturi IP su DHCP, galite lengvai naudoti statinį IP.
2 veiksmas: prijunkite ir prijunkite „Rpi Wireless“prie vietinio tinklo
Mes paleisime Rpi -> prijunkite Ethernet kabelį tarp kompiuterio ir Rpi.
-
Pradėkite glaistyti ir užpildykite:
- Pagrindinio kompiuterio pavadinimas (arba IP adresas): 169.254.10.1
- Uostas: 22
-
Pasirodo terminalas ir įvedate numatytąjį vartotojo vardą ir slaptažodį:
- Vartotojo vardas: pi
- Slaptažodis: avietė
Dabar, kai esame prisijungę prie rpi, norime, kad RPI būtų prijungtas prie jūsų „Wi -Fi“.
- Papildomai: įveskite „sudo raspi-config“
- Čia turėsite pakeisti pi vartotojo slaptažodį (saugumo sumetimais)
- Tada eikite į Lokalizavimo parinktys -> Keisti laiką (pasirinkite tinkamą) -> Tada eikite į „Wifi“šalį -> pasirinkite šalį.
- Uždarykite raspi-config ir paleiskite iš naujo.
- Prisijungę laikinai padarykite save root vartotoju -> sudo -i
-
Parašykite šią komandą, kad pridėtumėte savo tinklą prie Rpi (kodas žemiau sąraše)
- slaptažodis = "slaptažodis" (su kabutėmis)
- Pavadinimas tinklas = "SSID"
- Nepamirškite naudoti dvigubo >>! Svarbu!
echo "slaptažodis" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Dabar paleiskite iš naujo
Prisijungdami iš naujo patikrinkite savo IP įvesdami:
ifconfig
ir patikrinkite wlan0, šalia inet.
Dabar, kai turime interneto ryšį, galime „greitai“atnaujinti.
sudo apt atnaujinimas
sudo apt dist -upgrade -y
Tai gali užtrukti.
3 žingsnis: jutiklis DS18B20 (temperatūra)-1 laidas
Su kiekvienu projektu visada turi būti kažkas ypatingo, ką reikia padaryti, kitaip jis neveiks.
Šį kartą mes jį turime su DS18B20 temperatūros jutikliu, kuriam reikalingas 1 laidas. Aš nepaaiškinsiu, kodėl, bet paaiškinsiu, kaip tai padaryti.
Norėdami tai padaryti, turime grįžti į rasio konfigūraciją Rpi, gražų mėlyną ekraną.
- Eikite į sąsajos parinktis
- Pasirinkite 1 laidą ir įjunkite.
Padaryta…
Juokauju.
Dabar turėsime pakoreguoti /boot/config.txt
sudo nano /boot/config.txt
Pridėkite šią eilutę apačioje.
# Įgalinti „onewire“
dtoverlay = w1-gpio
Dabar sudo iš naujo paleiskite tą dalyką ir dabar mes baigėme.
Norėdami patikrinti, ar jis veikia, prijunkite jutiklį prie Rpi, tada grįžkite į terminalą ir įveskite šį kodą (žr. Kitą žingsnį Aparatūra, kaip prijungti temperatūros jutiklį).
cd/sys/bus/w1/devices/w1_bus_master1
ls
Turėtumėte pamatyti kažką su skaičiais ir raidėmis tamsiai mėlyna spalva viršuje kairėje. Būtinai parašykite šią informaciją vėliau, kai dirbsime su „github“kodu.
Jei dėl kokių nors priežasčių jis neveikia, patikrinkite šią nuorodą, kuri yra gilesnė.
4 žingsnis: MCP3008 - analoginis jutimas
Pakeitę temperatūros jutiklį, turime atlikti ir kitų jutiklių pakeitimus, nes juos reikia skaityti analoginiuose duomenyse. Čia MCP3008 praverčia, mes taip pat turime pakeisti SPI sąsają.
sudo raspi-config
Eikite į sąsajos parinktis -> Pasirinkite SPI -> įjungti.
Tada Baigti.
5 žingsnis: Aparatūra
Mes dar nesame visiškai baigę Rpi, bet pakankamai, kad galėtume pradėti kurti ir sudėti aparatūrą.
Kai kurie patarimai yra kruopščiai patikrinti savo ryšius statant, kad įsitikintumėte, jog… nesusprogdinsite Rpi.
Be to, schemoje pastebėsite, kad kai kurie komponentai yra tik vieną kartą, nors dirbsime su daugiau nei 1 to paties komponento. Tai tiesiog reiškia, kad jūs turite pakartoti tą patį 1 komponento kūrimo procesą. Yra viena nedidelė išimtis, mq-x jutikliams nereikia papildomo lygio keitiklio ar MCP3008. Tiesiog pridėkite papildomą žalią kabelį (pdf formatu) prie lygio keitiklio ir MCP3008.
Papildomas redagavimas: ventiliatoriai kaip jungiklį turi naudoti tranzistorių. Vienam ventiliatoriui naudoju 2n2222A tranzistorių, nes 2 ventiliatoriai gali būti per didelė apkrova.
Jei turite tranzistorių, galintį valdyti didesnę srovę, praleiskite paskutinę šio veiksmo dalį.
Jei neturite tokio kaip aš, turėsite tai padaryti taip: 1 ventiliatorius = 1 tranzistorius, 2 ventiliatoriai = 2 tranzistoriai ir pan. (Kiekvienas ventiliatorius yra savo tranzistorius + diodas, kaip pdf).
Vėliau, atlikdami 7 veiksmą: „Git“kodas, taip pat turėsite pridėti kodą prie „app.py“programoje „backend_project“.
6 veiksmas: sukurkite „Mariadb“duomenų bazę
Kaip rodo pavadinimas, mes sukursime duomenų bazę, kad turėtume kur saugoti jutiklių duomenis.
Pirmiausia atsisiųskite „Mariadb“į Rpi.
sudo apt-get install mariadb-server
Įdiegę naudokime.
mysql -u šaknis
Slaptažodis tuščias, todėl nieko nereikia įvesti. Paspausk Enter.
Dabar leiskite sukurti vartotoją.
CREATE USER 'user'@'%' IDENTIFIED by 'userdb';
SUTEIKITE VISAS PRIVILIEGIJAS *. * „Vartotojui“@'%“SU GRANT OPTION;
PLŪŠIMO PRIVILEGIJOS;
Paspauskite Ctrl + C, kad išeitumėte ir greitai paleistumėte paslaugą iš naujo:
sudo paslauga mysql iš naujo
Prisijunkite naudodami vartotojo vardą: vartotojas ir slaptažodis: userdb:
mysql -u vartotojas -p
Laikas sukurti duomenų bazę dabar.
CREATE DATABASE project_db Numatytasis simbolių rinkinys utf8;
USE project_db
Sukurkite lentelę „historiek“(reiškia istoriją).
KURTI LENTELĘ, JEI NĖRA „istoriek“(„id“INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PIRMINIS RAKTAS („ id “)) VARIKLIS = InnoDB;
Ir voila, sukurta duomenų bazė.
7 veiksmas: „Github“kodas ir testavimas
Artėjame prie projekto pabaigos.
Prieš gaudami kodą, turėsime importuoti kai kuriuos modulius į Rpi:
pip3 įdiegti „Flask_MySQL“
pip3 įdiegti kolbą-lizdą
pip3 įdiegti -U kolba -cors
pip3 įdiegti spidev
Dabar mums reikia kodo, kad jis veiktų, įveskite terminalą:
git klonas
Patikrinkite, ar aplanke yra:
ls
Dabar jums reikės 2 terminalų, todėl patogu dešiniuoju pelės mygtuku spustelėti terminalą ir spustelėti Dubliuoti seansus:
Eikite į backend_project ir temperatūrą naudodami komandą cd.
Prieš pradėdami programas bandymams. Ar vis dar prisimenate 3 žingsnį su 1 laido jutikliu, kur reikia užrašyti kai kuriuos skaičius? Nesijaudinkite, jei turite, tiesiog dar kartą greitai pažvelkite į 3 veiksmą.
Šiuos skaičius pridėsime prie kodo, nes jį naudojant reikės žinoti teisingą jutiklį.
Terminale su temperatūros aplanku rasite app.py. Mes ketiname jį atidaryti.
sudo nano app.py
Ieškokite funkcijos, vadinamos „def temperatūra ():“, ten turėsite pakeisti „**“skaičiais, kuriuos parašėte. Mano atveju gaučiau šią kodo eilutę (kiekvienas skaičius yra unikalus).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Bandymo laikas. Abu terminalai aplanke „backend_project“ir „Temperature“įveskite:
python3 app.py
Dabar prisiminkite 5 veiksmą: aparatinė įranga, kur reikia pridėti kodą, jei naudojate kelis ventiliatorius ir tranzistorius?
Gerai, jei ne grįžti prie 5 veiksmo.
Dabar turime pridėti kodą, kaip jau minėjau, „app.py“programoje „backend_project“. Kad būtų lengviau, pateikiau to pavyzdį kode. Kiekvienoje komentaro kodo eilutėje, kurioje yra „fan1“, nekomentuokite tų eilučių ir voila, dabar galite naudoti 2 gerbėjus.
Jei norite naudoti daugiau nei 2 ventiliatorius, nukopijuokite ir įklijuokite tą patį kodą po juo, bet su kitu numeriu. Trūkumas yra asmeniškesnis darbas ir mažiau „gpio.pins“. Aš neturiu jokių pranašumų, kuriuos žinau.
8 veiksmas: paleiskite kodą įkrovos metu
Mes norime, kad šie 2 „Python“scenarijai būtų paleisti tuo metu, kai mūsų „Rpi“paleidžiama, ir tuo atveju, jei scenarijus sugestų, jis turėtų būti paleistas iš naujo. Norėdami tai padaryti, mes padarysime 2 paslaugas.
Norėdami tai padaryti, įveskite:
sudo nano /etc/systemd/system/temperature.service
Nukopijuokite ir įklijuokite tai temperatūrai. Paslauga:
[Vienetas] Aprašymas = Temperatūros tarnyba Po = multi-user.target
[Paslauga] Tipas = paprastas
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
Standartinė įvestis = tty-force
Paleisti iš naujo = sugedus
RestartSec = 60s
[Diegti]
WantedBy = kelių vartotojų tikslas
Uždarykite ir atlikite dar kartą, bet tada backend_project.service:
Pirmasis atidarytas tekstas:
sudo nano /etc/systemd/system/backend_project.service
Tada dar kartą nukopijuokite ir įklijuokite:
[Unit] Aprašymas = backend_project Service
Po = multi-user.target
[Paslauga]
Tipas = paprastas
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
Standartinė įvestis = tty-force
Paleisti iš naujo = sugedus
RestartSec = 60s
[Diegti]
WantedBy = kelių vartotojų tikslas
Išsaugoti ir uždaryti.
Paskutinėje dalyje rašoma:
sudo systemctl demonas iš naujo
sudo systemctl įgalinti temperatūrą. paslauga sudo perkrovimas
Dabar mūsų 2 „python“scenarijai turėtų būti paleisti automatiškai.
9 veiksmas: nustatykite svetainę
Atsisiuntę saugyklą, jūs taip pat turėjote gauti aplanką „front“. Čia yra svetainės turinys.
Pirmiausia mums reikia apache, kad galėtume naudoti aplanką. Sekite „apache“nuorodą šioje nuorodoje.
Kai būsi pasiruošęs. Eikite į priekinį aplanką:
cd /Dokumentai /nmct-s2-project-1-TheryBrian
Tada įveskite:
sudo mv front/var/www/html
Kai tai bus padaryta, eikite į aplanką html, pasiruoškite nuobodžiam darbui (mano kaltė).
cd/var/www/html/
tada eikite į priekinį aplanką ir pradėkite viską perkelti į aplanką html.
pavyzdys:
sudo mv css/var/www/html
Tada ištrinkite priekinį aplanką.
Ir mes baigėme viską.
Sėkmės:).
10 žingsnis: pasirinktinai - miniatiūrinis prototipas
Dėl bandymų sukūriau tik dėžutės prototipą su visa aparatine įranga, kad galėčiau pamatyti, ar viskas veikia pagal užsakymą.
Paprastai šis projektas būtų vykdomas didesniu mastu. Pavyzdžiui: kambarys, namas, gamykla, parduotuvė ir pan.
Bet akivaizdu, kad prieš pradėdami daryti skyles sienose (gražus rimas). Pirmiausia norime pamatyti, ar tai tiesiog veikia. Jums iš tikrųjų nereikia gaminti dėžutės bandymams, tačiau visada smagu pasidaryti rankdarbius.
Štai mano pavyzdys.
Rekomenduojamas:
Sąsajos „HMC5883L“kompaso jutiklio su „Arduino“pamoka: 10 žingsnių (su paveikslėliais)
Sąsajos „HMC5883L“kompaso jutiklis su „Arduino“instrukcija: Aprašymas „HMC5883L“yra 3 ašių skaitmeninis kompasas, naudojamas dviem bendrais tikslais: matuoti magnetinės medžiagos, pvz., Feromagneto, įmagnetinimą arba matuoti stiprumą ir kai kuriais atvejais kryptį. magnetinis laukas s taške
„Arduino DHT22“jutiklio ir dirvožemio drėgmės projektas su meniu: 4 žingsniai
„Arduino DHT22“jutiklio ir dirvožemio drėgmės projektas su meniu: Sveiki, vaikinai Šiandien aš jums pristatau savo antrąjį projektą dėl nurodymų. Šiame projekte pristatomas mano pirmojo projekto, kuriame naudoju dirvožemio drėgmės jutiklį ir DHT22 jutiklį, kuris naudojamas temperatūrai ir drėgmei matuoti, mišinys . Šis projektas yra
RFID + spalvų jutiklio IoT projektas: 7 žingsniai
RFID + spalvų jutiklio IoT projektas: Šio projekto idėja yra apdovanoti žmones, kurie geria iš kavos puodelių, ir tinkamai juos išmesti. Paimkite, pavyzdžiui, tokią įmonę kaip Timas Hortonsas; 2014 metais jie užregistravo 2 milijardus kavos puodelių per metus. Nors jų puodelius galima perdirbti
Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: 5 žingsniai
Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: Mūsų projekto tikslas yra pajusti judesį per PIR ir atstumo jutiklius. „Arduino“kodas skleis vaizdo ir garso signalą, kad vartotojui būtų pranešta, kad kažkas yra šalia. MATLAB kodas atsiųs el. Pašto signalą, kad įspėtų vartotoją, kad kažkas yra šalia. Šis įrenginys
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): 3 žingsniai
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): NEDARYKITE ŠIO NAUDOTI USB! iš visų komentarų sužinojau, kad tai gali pakenkti jūsų kompiuteriui. mano kompiuteris gerai. Naudokite 600 mA 5v telefono įkroviklį. Aš tai naudoju ir jis veikia gerai, ir niekas negali būti sugadintas, jei naudosite apsauginį kištuką, kad sustabdytumėte maitinimą