Sisukord:

TheAir - gaasianduri projekt: 10 sammu
TheAir - gaasianduri projekt: 10 sammu

Video: TheAir - gaasianduri projekt: 10 sammu

Video: TheAir - gaasianduri projekt: 10 sammu
Video: Топ 5 скрытых полезных программ Windows 10 2024, November
Anonim
TheAir - gaasianduri projekt
TheAir - gaasianduri projekt

Süsinikmonooksiid ja süsinikdioksiid, tuntud ka kui CO ja CO2. Gaasid, mis on suletud ruumis suurtes kontsentratsioonides värvitu, lõhnatu, maitsetu ja ausalt öeldes ohtlikud. Kui elate, öelge näiteks üliõpilaste toas, et see on halvasti isoleeritud, puudub hea õhuvool ja mingil põhjusel teeb röster röstsaia tegemise ajal imelikku häält. Siis võite nende gaasidega kokku puutuda ja kui see juhtub, siis loodame, et see lõpeb ainult väikese peavaluga, sest suure kontsentratsiooniga võib see muuta teid töövõimetuks või isegi tappa (kuigi väga harva).

Seega otsustasin selle projektiga välja tulla. Minu idee on lihtne, kasutage õhuvoolu tekitamiseks ventilaatoreid. Hea õhk sisse ja halb õhk välja. Lisakasu jaoks lisasin täiendava temperatuurianduri, nupu käsitsi aktiveeritavatele ventilaatoritele ja ka veebisaidi neile, kellele meeldib statistikat vaadata ja/või ventilaatoreid oma arvutist aktiveerida.

Õpilase, lapsevanema, üksiku või elusolendina. Seda soovite tavaliselt oma kodus mugavalt elades vältida. See aitab neid, kellele meeldib oma elu natuke lihtsamaks muuta.

Tarvikud

  • Vaarika Pi 3+
  • Mini-USB laadija 5V/2.5A
  • Micro-sd kaart
  • Andurid

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (temperatuur)
  • 2 x 12V alalisvoolu ventilaator
  • 2 x 2n2222 transistorit
  • LCD 16*2 ekraan
  • Nupp
  • MCP3008
  • Logi taseme muundur
  • Etherneti kaabel (seadistamise põhjustel)

Samm: Raspberry Pi seadistamine

Vaarika Pi seadistamine
Vaarika Pi seadistamine
Vaarika Pi seadistamine
Vaarika Pi seadistamine

Enne Rpi -ga töötamist vajame tarkvara.

  • WinSCP või FilleZilla (valikuline, kui soovite faile arvutist Rpi -sse üle kanda)
  • Win32 ketas või Etcher (mida eelistate rohkem)
  • Putty või MobaXterm (mida eelistate rohkem)
  • Raspian pilt töölauaga

Enne alustamist tahaksin mainida, et selle õpetuse tegemisel, kui ma valin programmi teise asemel, EI tähenda, et ma seda soovitan. Näiteks mulle meeldib kasutada etcherit, kuna see on kasutajasõbralikum, kuid Win32 -l on võimalus varukoopiaid teha. Nüüd on see minu süsteemist väljas, alustame.

Kui teil on juba WiFi -võrguga ühendatud Rpi, jätkake 3. sammuga.

Esiteks kasutame Etcherit Raspbiani pildi lisamiseks teie SD -kaardile. Enne sd -kaardi väljatõmbamist muudame failis cmdline.txt mõningaid "asju", mille leiate pildilt. Avage.txt -fail -> Lisage see rida "ip = 169.254.10.1" (jutumärke pole) rea lõpus (kõik ühel real) -> Salvesta fail

Teiseks tehke alglaadimispartitsiooni tühi kaust nimega "ssh" (ilma jutumärkideta).

Pärast seda võite Microsd'i turvaliselt väljutada ja selle Rpi -sse panna.

Kodeeritud staatilise IP põhjus on see, et lihtsustada ühenduse loomist Rpi -ga. Kui Rpi -l pole mingil põhjusel DHCP -ga ip -d, saate hõlpsalt kasutada staatilist IP -d.

2. samm: ühenduse loomine ja Rpi traadita ühenduse loomine kohaliku võrguga

Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga
Ühenduse loomine ja Rpi juhtmevaba ühendamine kohaliku võrguga

Käivitame Rpi -> ühendage Etherneti kaabel arvuti ja Rpi vahel.

  1. Käivitage Putty ja täitke see:

    • Hosti nimi (või IP -aadress): 169.254.10.1
    • Sadam: 22
  2. Ilmub terminal ja sisestate vaikimisi kasutajanime ja parooli:

    • Kasutajanimi: pi
    • Parool: vaarikas

Nüüd, kui oleme rpi -ga lokaalselt ühendatud, soovime, et RPI -l oleks ühendus teie WiFi -ga.

  1. Lisa: tippige "sudo raspi-config"
  2. Siin peate pi kasutaja jaoks parooli muutma (ohutuse huvides)
  3. Seejärel minge jaotisse Lokaliseerimise valikud -> Muuda aega (valige õige) -> Seejärel minge Wifi riiki -> valige riik.
  4. Sulgege raspi-config ja taaskäivitage.
  5. Sisselogimisel tehke end ajutiselt juurkasutajaks -> sudo -i
  6. Kirjutage see käsk oma võrgu lisamiseks Rpi -le (kood allpool loendis)

    • parool = "parool" (jutumärkidega)
    • Nimevõrk = "SSID"
    • Ärge unustage kasutada topelt >>! Tähtis!

kaja "parool" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Nüüd taaskäivitage uuesti

Uuesti ühenduse loomisel kontrollige oma ip -i, tippides:

ifconfig

ja kontrollige inet kõrval olevat wlan0.

Nüüd, kui meil on Interneti -ühendus, teeme "kiire" värskenduse.

sudo apt värskendus

sudo apt dist -upgrade -y

See võib võtta aega.

3. samm: andur DS18B20 (temperatuur)-1-juhtmeline

Andur DS18B20 (temperatuur)-1-juhtmeline
Andur DS18B20 (temperatuur)-1-juhtmeline
Andur DS18B20 (temperatuur)-1-juhtmeline
Andur DS18B20 (temperatuur)-1-juhtmeline

Iga projektiga kaasneb alati midagi erilist, mis tuleb ära teha, muidu see ei tööta.

Seekord on meil see koos DS18B20 temperatuurianduriga, mis nõuab 1-juhtmelist, kuid ma ei selgita, miks, aga ma selgitan, kuidas see vähemalt tööle panna.

Selleks peame naasma Rpi raspi-configi juurde, kena sinisele ekraanile.

  1. Avage liidese valikud
  2. Valige 1-juhe ja lubage.

Valmis…

Tegin nalja.

Nüüd peame kohandama faili /boot/config.txt

sudo nano /boot/config.txt

Lisage see rida allosas.

# Luba onewire

dtoverlay = w1-gpio

Nüüd taaskäivitage see asi ja nüüd oleme valmis.

Et kontrollida, kas see töötab, ühendage andur Rpi -ga, seejärel minge tagasi terminali ja tippige see kood (vt järgmist sammu Riistvara, kuidas temperatuuriandurit ühendada).

cd/sys/bus/w1/devices/w1_bus_master1

ls

Peaksite nägema midagi, mille ülaosas vasakul on tumesinised numbrid ja tähed. Kirjutage see teave kindlasti hiljem, kui töötame githubi koodiga.

Kui see mingil põhjusel ei tööta, kontrollige seda linki, mis sellesse süveneb.

4. samm: MCP3008 - analoogtundmine

MCP3008 - analoogandur
MCP3008 - analoogandur
MCP3008 - analoogandur
MCP3008 - analoogandur

Kuna tegime temperatuurianduri osas muudatusi, peame tegema muudatusi ka teiste andurite puhul, kuna neid tuleb lugeda analoogandmetest. Siin tuleb MCP3008 kasuks, peame muutma ka SPI liidest.

sudo raspi-config

Avage liidese valikud -> Valige SPI -> lubage.

Seejärel Lõpeta.

Samm: riistvara

Me pole Rpi -ga täielikult valmis, kuid piisavalt, et saaksime hakata riistvara ehitama ja kokku panema.

Mõned nõuanded on ehitamisel oma ühendused põhjalikult kontrollida, et mitte … õhutada Rpi.

Samuti märkate skeemil, et mõned komponendid on sellel ainult üks kord, kuigi töötame rohkem kui ühe sama komponendiga. See tähendab lihtsalt seda, et peate kordama sama komponendi loomise protsessi. On üks väike erand, mq-x andurid ei vaja lisataseme muundurit ega MCP3008. Lihtsalt lisage taseme muundurile ja MCP3008 täiendav roheline kaabel (pdf -vormingus).

Lisatöötlus: ventilaatorid peavad lülitina kasutama transistorit. Ma kasutan 1 ventilaatori jaoks 2n2222A transistorit, sest 2 ventilaatorit võivad olla liiga suured koormused.

Kui teil on transistor, mis saab hakkama suurema vooluga, jätke see samm vahele.

Kui teil pole minusugust, peate seda tegema nii: 1 ventilaator = 1 transistor, 2 ventilaatorit = 2 transistorit ja nii edasi (igal ventilaatoril on oma transistor + diood nagu pdf -is).

Hiljem, 7. sammus: Git -kood…, peate lisama ka koodi back._project saidile app.py.

6. samm: Mariadb andmebaasi loomine

Mariadb andmebaasi loomine
Mariadb andmebaasi loomine

Nagu pealkiri osutab, loome andmebaasi, et meil oleks koht andurite andmete salvestamiseks.

Kõigepealt laadige alla Riadist Mariadb.

sudo apt-get install mariadb-server

Pärast installimist kasutame seda.

mysql -u juur

Parool on tühi, seega pole midagi trükkida. Vajutage sisestusklahvi.

Loome nüüd kasutaja.

CREATE USER 'kasutaja'@'%' TUNNISTAB 'userdb';

TOETAGE KÕIK PRIILID SEES *. * TO 'GRAND OPTION'iga kasutajale@'%';

FLUSHI privileegid;

Väljumiseks ja teenuse kiireks taaskäivitamiseks vajutage Ctrl + C:

sudo teenuse mysql taaskäivitamine

Logige sisse kasutajanimega: kasutaja ja parool: userdb:

mysql -u kasutaja -p

Nüüd on aeg andmebaas luua.

CREATE DATABASE project_db DEFAULT CHARACTER SET utf8;

USE project_db

Looge tabel "historiek" (tähendab ajalugu).

CREATE TABLE IF NOT NOTISTS "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 ')) MOOTOR = InnoDB;

Ja voila, andmebaas on tehtud.

Samm: Githubi kood ja testimine

Githubi kood ja testimine
Githubi kood ja testimine

Oleme jõudmas oma projekti lõpule.

Enne koodi saamist peame importima mõned moodulid Rpi -sse:

pip3 installige Flask_MySQL

pip3 paigaldage kolb-pistikupesa

pip3 paigaldada -U kolb -cors

pip3 install spidev

Nüüd vajame selle toimimiseks koodi, tippige terminal:

git kloon

Kontrollige, kas kaust on seal:

ls

Nüüd vajate kahte terminali, nii et on mugav terminalil paremklõpsata ja klõpsata Duplicate seansid:

Avage käsk cd käsk backend_project ja temperatuur.

Nüüd enne programmide käivitamist testimiseks. Kas mäletate veel 1-juhtmelise anduriga 3. sammu, kus peate mõned numbrid üles kirjutama? Ärge muretsege, kui teil on, vaadake lihtsalt uuesti 3. sammu.

Lisame need numbrid koodile, kuna see peab selle kasutamisel teadma õiget andurit.

Temperatuuri kaustaga terminalist leiate rakenduse app.py. Me avame selle.

sudo nano app.py

Otsige üles funktsioon, mida nimetatakse "def temperatuur ():", seal peate "**" asendama numbritega, mille olete üles kirjutanud. Minu puhul saaksin selle koodirida (iga number on kordumatu).

sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave

Testimise aeg. Mõlemad terminalid nii backend_project kui ka temperatuuri kaustas tippige:

python3 app.py

Pidage nüüd meeles 5. sammu: riistvara, kuhu peate koodi lisama, kui kasutate mitut ventilaatorit ja transistorit?

Hea, kui mitte tagasi minna 5. sammu juurde.

Nüüd peame lisama koodi, nagu ma mainisin saidile app.py failis backend_project. Lihtsamaks muutmiseks tegin koodis selle näite. Iga kommentaarikoodi rida, millel on "fan1", tühistage need read ja voila, nüüd saate kasutada 2 fänni.

Kui soovite kasutada rohkem kui 2 ventilaatorit, kopeerige ja kleepige sama kood selle alla, kuid erineva numbriga. Selle puuduseks on teie jaoks isiklikum töö ja vähem gpio.pine. Sellel pole mingeid eeliseid, mida ma tean.

Samm: käivitage käivitamisel kood

Käivitage kood käivitamisel
Käivitage kood käivitamisel

Soovime, et need kaks pythoni skripti käivituksid kohe, kui meie Rpi käivitub, ja juhul, kui skript kokku jookseb, peaks see taaskäivituma. Selleks teeme 2 teenust.

Selleks tippige:

sudo nano /etc/systemd/system/temperature.service

Kopeerige ja kleepige see temperatuuri jaoks. Teenus:

[Ühik] Kirjeldus = Temperatuuriteenus Pärast = mitme kasutaja sihtmärk

[Teenus] Tüüp = lihtne

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

Standardsisend = tty-jõud

Taaskäivitamine = ebaõnnestumine

RestartSec = 60s

[Installi]

WantedBy = mitme kasutaja sihtmärk

Sulgege ja tehke uuesti, kuid siis backend_project.service jaoks:

Esimene avatud tekst:

sudo nano /etc/systemd/system/backend_project.service

Seejärel kopeerige ja kleepige uuesti:

[Ühik] Kirjeldus = taustaprogrammi teenus

Pärast = mitme kasutaja.siht

[Teenus]

Tüüp = lihtne

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

Standardsisend = tty-jõud

Taaskäivitamine = ebaõnnestumine

RestartSec = 60s

[Installi]

WantedBy = mitme kasutaja sihtmärk

Salvesta ja sulge.

Viimane osa kirjutab selle:

sudo systemctl deemon-reload

sudo systemctl lubab temperatuuri. teenus sudo taaskäivitamine

Nüüd peaksid meie 2 pythoni skripti käivitamisel automaatselt töötama.

9. samm: veebisaidi seadistamine

Hoidla alla laadides oleksite pidanud hankima ka kausta nimega front. See on koht, kus veebisaidi sisu on.

Esiteks vajame enne kausta kasutamist apache'i. Järgige apache jaoks sellel lingil olevat juhendit.

Kui olete valmis. Minge esikausta asukohta:

cd /Dokumendid /nmct-s2-project-1-TheryBrian

Seejärel tippige:

sudo mv ees/var/www/html

Kui see on tehtud, minge kausta html, valmistuge tüütuks tööks (minu viga).

cd/var/www/html/

seejärel minge esikausta ja hakake kõike html -kausta teisaldama.

näide:

sudo mv css/var/www/html

Seejärel kustutage esikaust.

Ja oleme kõigega lõpetanud.

Edu:).

10. samm: valikuline - miniatuurne prototüüp

Valikuline - miniatuurne prototüüp
Valikuline - miniatuurne prototüüp
Valikuline - miniatuurne prototüüp
Valikuline - miniatuurne prototüüp

Testimise eesmärgil tegin prototüübi lihtsalt karbist, kus oli kogu riistvara sees, et saaksin näha, kas kõik töötab tellimuse alusel.

Tavaliselt viiakse see projekt läbi suuremas mahus. Näiteks: tuba, maja, tehas, kauplus ja nii edasi…

Aga ilmselgelt enne, kui hakkame seintesse auke tegema (kena riim). Esiteks tahame näha, kas see lihtsalt töötab. Testimiseks pole tegelikult vaja kasti teha, kuid meisterdamist on alati lõbus teha.

Siin on minu näide.

Soovitan: