Satura rādītājs:
- Piegādes
- 1. darbība: Raspberry Pi iestatīšana
- 2. darbība. Savienojuma izveide un bezvadu savienojuma pievienošana vietējam tīklam
- 3. solis: sensors DS18B20 (temperatūra)-1 vads
- 4. darbība: MCP3008 - Analog Sensing
- 5. solis: aparatūra
- 6. darbība. Mariadb datu bāzes izveide
- 7. darbība: Github kods un pārbaude
- 8. darbība: palaidiet kodu sāknēšanas laikā
- 9. darbība. Iestatiet vietni
- 10. solis: pēc izvēles - miniatūrs prototips
Video: TheAir - gāzes sensoru projekts: 10 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Oglekļa monoksīds un oglekļa dioksīds, pazīstams arī kā CO un CO2. Gāzes, kas ir bezkrāsainas, bez smaržas, bez garšas un atklāti bīstamas, ja tās atrodas lielā koncentrācijā slēgtā telpā. Ja jūs dzīvojat, sakiet, piemēram, studentu istabā, kas ir slikti izolēta, nav laba gaisa plūsma, un kāda iemesla dēļ tosteris grauzdēšanas laikā rada dīvainu troksni. Tad jūs varētu nonākt saskarē ar šīm gāzēm, un, kad tas notiks, cerēsim, ka tas beigsies tikai ar nelielām galvassāpēm, jo lielā koncentrācijā tas var padarīt jūs nespējīgus vai pat nogalināt (kaut arī ļoti reti).
Tāpēc es nolēmu nākt klajā ar šo projektu. Mana ideja ir vienkārša, izmantojiet ventilatorus, lai izveidotu gaisa plūsmu. Labs gaiss iekšā un slikts gaiss, tā sakot. Papildu lietderībai es pievienoju papildu temperatūras sensoru, pogu manuālās aktivizācijas ventilatoriem un arī vietni tiem, kam patīk redzēt statistiku un/vai aktivizēt ventilatorus no sava datora.
Kā students, vecāks, vientuļa persona vai dzīva būtne. No tā parasti vēlaties izvairīties, dzīvojot savas mājas komfortā. Tas palīdz tiem, kam patīk mazliet atvieglot savu dzīvi.
Piegādes
- Raspberry Pi 3+
- Mini-USB lādētājs 5V/2.5A
- Micro-sd karte
-
Sensori
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatūra)
- 2 x 12V līdzstrāvas ventilators
- 2 x 2n2222 tranzistori
- 16*2 LCD displejs
- Uzspied pogu
- MCP3008
- Logi līmeņa pārveidotājs
- Ethernet kabelis (iestatīšanas iemeslu dēļ)
1. darbība: Raspberry Pi iestatīšana
Pirms darba ar Rpi mums būs nepieciešama programmatūra.
- WinSCP vai FilleZilla (pēc izvēles, ja vēlaties pārsūtīt failus no datora uz RPI)
- Win32 disks vai Etcher (kuram vēlaties vairāk)
- Putty vai MobaXterm (kam jūs dodat priekšroku vairāk)
- Raspian attēls ar darbvirsmu
Pirms sākt, es gribētu pieminēt, ka, veidojot šo pamācību, kad es izvēlos programmu pār citu, tas nenozīmē, ka es to ieteiktu. Piemēram, man patīk izmantot etcher, jo tas ir lietotājam draudzīgāks, bet Win32 ir iespēja izveidot dublējumus. Tagad tas ir ārpus manas sistēmas, sāksim.
Ja jums jau ir Rpi, kas ir savienots ar jūsu wifi tīklu, pārejiet pie 3. darbības.
Vispirms mēs izmantosim Etcher, lai ievietotu Raspbian attēlu jūsu SD kartē. Tagad, pirms mēs izvelkam SD karti, mēs mainīsim dažas "lietas" failā cmdline.txt, kas atrodams attēlā. Atveriet.txt failu -> Pievienojiet šo rindu "ip = 169.254.10.1" (bez pēdiņām) rindas beigās (viss vienā rindā) -> Saglabāt failu
Otrkārt, sāknēšanas nodalījumā izveidojiet tukšu mapi ar nosaukumu "ssh" (bez pēdiņām).
Pēc tam jūs varat droši izņemt Microsd un ievietot to RPI.
Cietā kodētā statiskā IP iemesls ir atvieglot savienojumu ar Rpi. Ja kāda iemesla dēļ Rpi nav ip ar DHCP, tad jūs viegli izmantojat statisko ip.
2. darbība. Savienojuma izveide un bezvadu savienojuma pievienošana vietējam tīklam
Mēs ieslēgsim Rpi -> savienojiet Ethernet kabeli starp datoru un Rpi.
-
Sāciet Putty un aizpildiet šo:
- Uzņēmēja nosaukums (vai IP adrese): 169.254.10.1
- Osta: 22
-
Tiek parādīts terminālis, un jūs ievadāt noklusējuma lietotājvārdu un paroli:
- Lietotājvārds: pi
- Parole: aveņu
Tagad, kad esam lokāli pievienoti rpi, mēs vēlamies, lai RPI būtu savienojums ar jūsu wifi.
- Papildus: ierakstiet "sudo raspi-config"
- Šeit jums būs jāmaina parole pi lietotājam (drošības apsvērumu dēļ)
- Pēc tam dodieties uz Lokalizācijas opcijas -> Mainīt laiku (izvēlieties pareizo) -> Pēc tam dodieties uz Wifi valsts -> izvēlieties valsti.
- Aizveriet raspi-config un restartējiet.
- Kad esat pieteicies, pagaidām padariet sevi par root lietotāju -> sudo -i
-
Uzrakstiet šo komandu, lai pievienotu savu tīklu Rpi (kods zemāk esošajā sarakstā)
- parole = "parole" (ar pēdiņām)
- Nosaukuma tīkls = "SSID"
- Atcerieties izmantot dubulto >>! Svarīgi!
atbalss "parole" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Tagad restartējiet vēlreiz
Atkārtoti izveidojot savienojumu, pārbaudiet savu ip, ierakstot:
ifconfig
un pārbaudiet wlan0, blakus inet.
Tagad, kad mums ir interneta savienojums, ļaujim veikt “ātru” atjauninājumu.
sudo apt atjauninājums
sudo apt dist -upgrade -y
Tas var aizņemt kādu laiku.
3. solis: sensors DS18B20 (temperatūra)-1 vads
Katrā projektā vienmēr būs kaut kas īpašs, kas jādara, pretējā gadījumā tas nedarbosies.
Šoreiz mums tas ir ar DS18B20 temperatūras sensoru, kuram nepieciešams 1 vads, bet es nepaskaidrošu, kāpēc, bet es paskaidrošu, kā vismaz panākt, lai tas darbotos.
Lai to izdarītu, mums ir jāatgriežas pie raspi konfigurācijas Rpi-jaukajā zilajā ekrānā.
- Dodieties uz saskarnes opcijām
- Izvēlieties 1 vadu un izvēlieties iespējot.
Gatavs…
Tikai jokoju.
Tagad mums būs jāpielāgo /boot/config.txt
sudo nano /boot/config.txt
Pievienojiet šo rindu apakšā.
# Iespējot onewire
dtoverlay = w1-gpio
Tagad sudo pārstartējiet šo lietu, un tagad mēs esam pabeiguši.
Lai pārbaudītu, vai tas darbojas, pievienojiet sensoru Rpi, pēc tam atgriezieties terminālī un ierakstiet šo kodu (skatiet nākamo soli Aparatūra, kā pievienot temperatūras sensoru).
cd/sys/bus/w1/devices/w1_bus_master1
ls
Jums vajadzētu redzēt kaut ko ar cipariem un burtiem tumši zilā krāsā augšējā kreisajā stūrī. Noteikti uzrakstiet šo informāciju vēlāk, kad strādāsim ar kodu no github.
Ja kāda iemesla dēļ tas nedarbojas, pārbaudiet šo saiti, kas tajā ir dziļāka.
4. darbība: MCP3008 - Analog Sensing
Kad mēs mainījām temperatūras sensoru, mums ir jāveic dažas izmaiņas arī citiem sensoriem, jo tie ir jālasa analogos datos. Šajā gadījumā MCP3008 ir noderīgs, mums ir jāmaina arī SPI saskarne.
sudo raspi-config
Dodieties uz saskarnes opcijas -> Izvēlieties SPI -> iespējot.
Pēc tam Pabeigt.
5. solis: aparatūra
Mēs neesam pilnībā pabeiguši Rpi, bet pietiekami, lai mēs varētu sākt veidot un salikt aparatūru.
Daži padomi ir rūpīgi pārbaudīt savienojumus, veidojot, lai pārliecinātos, ka jums nav… uzspridzināt Rpi.
Arī shēmā jūs pamanīsit, ka daži komponenti ir uz tā tikai vienu reizi, lai gan mēs strādāsim ar vairāk nekā 1 vienu un to pašu komponentu. Tas tikai nozīmē, ka jums ir jāatkārto viens un tas pats vienas sastāvdaļas veidošanas process. Ir viens neliels izņēmums, mq-x sensoriem nav nepieciešams papildu līmeņa pārveidotājs vai MCP3008. Vienkārši pievienojiet papildu zaļo kabeli (pdf formātā) līmeņa pārveidotājam un MCP3008.
Papildu rediģēšana: ventilatoriem kā slēdzis jāizmanto tranzistors. Es izmantoju 2n2222A tranzistoru vienam ventilatoram, jo 2 ventilatori var būt smaga slodze.
Ja jums ir tranzistors, kas spēj apstrādāt lielāku strāvu, tad labi, izlaidiet šīs darbības pēdējo daļu.
Ja jums nav tāda kā es, tad jums tas jādara šādi: 1 ventilators = 1 tranzistors, 2 ventilatori = 2 tranzistori utt. (Katram ventilatoram ir savs tranzistors + diode, kā norādīts pdf).
Vēlāk 7. darbībā: Git kods… jums būs jāpievieno kods app.py programmā backend_project.
6. darbība. Mariadb datu bāzes izveide
Kā norāda nosaukums, mēs izveidosim datu bāzi, lai mums būtu kur glabāt savus sensoru datus.
Vispirms lejupielādējiet Mariadb vietnē Rpi.
sudo apt-get install mariadb-server
Pēc instalēšanas to izmantosim.
mysql -u sakne
Parole ir tukša, tāpēc nav ko rakstīt. Nospiediet enter.
Tagad izveidosim lietotāju.
CREATE USER 'user'@'%' IDENTIFIED by 'userdb';
Piešķiriet visas privilēģijas *. * "Lietotājam"@'%' AR GRANT OPTION;
FLUSH PRIVILĒGAS;
Nospiediet Ctrl + C, lai izietu un ātri restartētu pakalpojumu:
sudo pakalpojuma mysql restartēšana
Piesakieties ar lietotājvārdu: lietotājs un parole: userdb:
mysql -u lietotājs -p
Laiks izveidot datu bāzi.
CREATE DATABASE project_db DEFAULT CHARACTER SET utf8;
USE project_db
Izveidojiet tabulu "historiek" (nozīmē vēsturi).
IZVEIDOT TABULU, JA NAV PASTĀV "historiek" ("id" INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id ')) DZINĒJS = InnoDB;
Un voila, datu bāze ir izveidota.
7. darbība: Github kods un pārbaude
Mēs tuvojamies mūsu projekta beigām.
Pirms mēs iegūstam kodu, mums būs jāimportē daži moduļi Rpi:
pip3 instalējiet Flask_MySQL
pip3 instalējiet kolbu-ligzdu
pip3 instalēt -U kolbu -korķi
pip3 instalēt spidev
Tagad mums ir nepieciešams kods, lai tas darbotos, ierakstiet termināli:
git klons
Pārbaudiet, vai tur ir mape ar:
ls
Tagad jums būs nepieciešami 2 termināļi, tāpēc ir ērti ar peles labo pogu noklikšķināt uz termināļa un noklikšķināt uz Dublēt sesijas:
Dodieties uz backend_project un temperatūru, izmantojot komandu cd.
Tagad, pirms mēs sākam programmas testēšanas nolūkos. Vai jūs joprojām atceraties 3. darbību ar 1 vadu sensoru, kur jums jāpieraksta daži skaitļi? Neuztraucieties, ja jums tas ir, vienkārši ātri paskatieties uz 3. darbību.
Mēs pievienosim šos skaitļus kodam, jo tam, lietojot to, būs jāzina pareizais sensors.
Terminālī ar temperatūras mapi jūs atradīsit app.py. Mēs to atvērsim.
sudo nano app.py
Meklējiet funkciju, ko sauc par "def temperatūru ():", tur jums būs jāaizstāj "**" ar skaitļiem, kurus uzrakstījāt. Manā gadījumā es saņemtu šo koda rindu (katrs numurs ir unikāls).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Pārbaudes laiks. Abi termināli gan mapē backend_project, gan temperatūrā ierakstiet:
python3 app.py
Tagad atcerieties 5. darbību: aparatūra, kurai jāpievieno kods, ja izmantojat vairākus ventilatorus un tranzistorus?
Labi, ja ne, atgriezieties pie 5. darbības.
Tagad mums ir jāpievieno kods, kā es minēju programmai app.py programmā backend_project. Lai atvieglotu, es kodā uzrakstīju piemēru. Katrā komentāru koda rindiņā, kurā ir "fan1", noņemiet komentārus un, voila, tagad varat izmantot 2 ventilatorus.
Ja vēlaties izmantot vairāk nekā 2 ventilatorus, nokopējiet un ielīmējiet to pašu kodu zem tā, bet ar citu numuru. Tā trūkums ir personīgāks darbs jums un mazāk gpio.pins. Tam nav man zināmu priekšrocību.
8. darbība: palaidiet kodu sāknēšanas laikā
Mēs vēlamies, lai šie 2 python skripti tiktu palaisti brīdī, kad mūsu Rpi sāk darboties, un gadījumā, ja skripts avarētu, tam vajadzētu atsākties pašam. Lai to izdarītu, mēs piedāvāsim 2 pakalpojumus.
Lai to izdarītu, ierakstiet:
sudo nano /etc/systemd/system/temperature.service
Nokopējiet un ielīmējiet to temperatūrai. Pakalpojums:
[Vienība] Apraksts = Temperatūras pakalpojums Pēc = vairāku lietotāju mērķa
[Pakalpojums] Tips = vienkāršs
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
Standarta ievade = tty-force
Restartēt = kļūmes gadījumā
RestartSec = 60s
[Uzstādīt]
WantedBy = vairāku lietotāju mērķis
Aizveriet un dariet vēlreiz, bet pēc tam backend_project.service:
Pirmais atvērtais teksts:
sudo nano /etc/systemd/system/backend_project.service
Pēc tam vēlreiz nokopējiet un ielīmējiet:
[Vienība] Apraksts = backend_project Service
Pēc = multi-user.target
[Apkalpošana]
Tips = vienkāršs
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
Standarta ievade = tty-force
Restartēt = kļūmes gadījumā
RestartSec = 60s
[Uzstādīt]
WantedBy = vairāku lietotāju mērķis
Saglabāt un aizvērt.
Pēdējā daļa ir šāda:
sudo systemctl dēmonu pārlādēšana
sudo systemctl iespējot temperatūru. pakalpojums sudo atsāknēšana
Tagad mūsu 2 python skripti sāknēšanas laikā jādarbojas automātiski.
9. darbība. Iestatiet vietni
Kad lejupielādējāt krātuvi, jums arī vajadzēja iegūt mapi ar nosaukumu front. Šeit ir paredzēts vietnes saturs.
Vispirms mums ir nepieciešams apache, pirms varam izmantot mapi. Izpildiet apache rokasgrāmatu šajā saitē.
Kad esat gatavs. Dodieties uz vietu, kur atrodas priekšējā mape:
cd /Dokumenti /nmct-s2-project-1-TheryBrian
Pēc tam ierakstiet:
sudo mv front/var/www/html
Kad tas ir izdarīts, dodieties uz mapi html, sagatavojieties kādam garlaicīgam darbam (mana vaina).
cd/var/www/html/
tad dodieties uz priekšējo mapi un sāciet visu pārvietot uz mapi html.
piemērs:
sudo mv css/var/www/html
Pēc tam izdzēsiet priekšējo mapi.
Un ar visu esam galā.
Veiksmi:).
10. solis: pēc izvēles - miniatūrs prototips
Pārbaudes nolūkos es izveidoju tikai kastes prototipu ar visu aparatūru, lai es varētu redzēt, vai viss darbojas pēc pasūtījuma.
Parasti šis projekts tiktu veikts plašākā mērogā. Piemēram: istaba, māja, rūpnīca, veikals un tā tālāk …
Bet acīmredzot pirms mēs sākam veidot caurumus sienās (jauka atskaņa). Vispirms mēs vēlamies redzēt, vai tas vienkārši darbojas. Jums faktiski nav jāizveido kastīte pārbaudei, taču vienmēr ir jautri nodarboties ar amatniecību.
Šeit ir mans piemērs.
Ieteicams:
Gimbal stabilizatora projekts: 9 soļi (ar attēliem)
Gimbal stabilizatora projekts: kā izveidot gimbalu Uzziniet, kā izveidot 2 asu kardānu savai darbības kamerai. Mūsdienu kultūrā mums visiem patīk ierakstīt video un iemūžināt mirkļus, it īpaši, ja esat satura veidotājs kā es, jūs noteikti esat saskāries ar problēmu tik nestabils video
Kā pieslēgt un izmantot GY -30 BH1750 gaismas sensoru (GY30 / GY302) - viegli - Arduino projekts!: 7 soļi
GY -30 BH1750 gaismas sensora (GY30 / GY302) vadu izmantošana
Arduino saskarne ar ultraskaņas sensoru un bezkontakta temperatūras sensoru: 8 soļi
Arduino saskarne ar ultraskaņas sensoru un bezkontakta temperatūras sensoru: Mūsdienās ražotāji, izstrādātāji priekšroku dod Arduino, lai strauji attīstītu projektu prototipus. Arduino ir atvērtā koda elektronikas platforma, kuras pamatā ir viegli lietojama aparatūra un programmatūra. Arduino ir ļoti laba lietotāju kopiena. Šajā projektā
DIY: pie griestiem uzstādīta mini sensoru kaste ar fokusējamu kustības sensoru: 4 soļi
DIY: pie griestiem uzstādīta mini sensoru kaste ar fokusējamu kustības sensoru: Sveiki. Pirms kāda laika es palīdzēju savam draugam ar viedās mājas koncepciju un izveidoju mini sensoru kārbu ar pielāgotu dizainu, ko varētu uzstādīt pie griestiem 40x65 mm caurumā. Šī kastīte palīdz: • izmērīt gaismas intensitāti • izmērīt mitru
Ūdens līmeņa noteikšanas metodes Arduino, izmantojot ultraskaņas sensoru un Funduino ūdens sensoru: 4 soļi
Arduino ūdens līmeņa noteikšanas metodes, izmantojot ultraskaņas sensoru un Funduino ūdens sensoru: Šajā projektā es jums parādīšu, kā izveidot lētu ūdens detektoru, izmantojot divas metodes: 1. Ultraskaņas sensors (HC-SR04) .2. Funduino ūdens sensors