Satura rādītājs:

TheAir - gāzes sensoru projekts: 10 soļi
TheAir - gāzes sensoru projekts: 10 soļi

Video: TheAir - gāzes sensoru projekts: 10 soļi

Video: TheAir - gāzes sensoru projekts: 10 soļi
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Jūlijs
Anonim
TheAir - gāzes sensoru projekts
TheAir - gāzes sensoru projekts

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

Raspberry Pi iestatīšana
Raspberry Pi iestatīšana
Raspberry Pi iestatīšana
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

Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu
Savienojuma izveide un bezvadu savienošana ar vietējo tīklu

Mēs ieslēgsim Rpi -> savienojiet Ethernet kabeli starp datoru un Rpi.

  1. Sāciet Putty un aizpildiet šo:

    • Uzņēmēja nosaukums (vai IP adrese): 169.254.10.1
    • Osta: 22
  2. 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.

  1. Papildus: ierakstiet "sudo raspi-config"
  2. Šeit jums būs jāmaina parole pi lietotājam (drošības apsvērumu dēļ)
  3. Pēc tam dodieties uz Lokalizācijas opcijas -> Mainīt laiku (izvēlieties pareizo) -> Pēc tam dodieties uz Wifi valsts -> izvēlieties valsti.
  4. Aizveriet raspi-config un restartējiet.
  5. Kad esat pieteicies, pagaidām padariet sevi par root lietotāju -> sudo -i
  6. 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

Sensors DS18B20 (temperatūra)-1 vads
Sensors DS18B20 (temperatūra)-1 vads
Sensors DS18B20 (temperatūra)-1 vads
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ā.

  1. Dodieties uz saskarnes opcijām
  2. 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

MCP3008 - Analog Sensing
MCP3008 - Analog Sensing
MCP3008 - Analog Sensing
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

Mariadb datu bāzes izveide
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

Github kods un pārbaude
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ā

Palaidiet kodu sāknēšanas laikā
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ēc izvēles - miniatūrs prototips
Pēc izvēles - miniatūrs prototips
Pēc izvēles - miniatūrs prototips
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: