Sisällysluettelo:

TheAir - Kaasuanturiprojekti: 10 vaihetta
TheAir - Kaasuanturiprojekti: 10 vaihetta

Video: TheAir - Kaasuanturiprojekti: 10 vaihetta

Video: TheAir - Kaasuanturiprojekti: 10 vaihetta
Video: 10 tapaa tulla onnelliseksi 2024, Heinäkuu
Anonim
TheAir - kaasuanturiprojekti
TheAir - kaasuanturiprojekti

Hiilimonoksidi ja hiilidioksidi, tunnetaan myös nimellä CO ja CO2. Kaasut, jotka ovat väritöntä, hajutonta, mautonta ja suoraan sanottuna vaarallista, kun ne ovat suurina pitoisuuksina suljetussa huoneessa. Jos asut esimerkiksi opiskelijahuoneessa, joka on huonosti eristetty, ei hyvä ilmavirta ja jostain syystä leivänpaahdin tekee outoa ääntä paahtoleipää tehdessään. Sitten saatat joutua kosketuksiin näiden kaasujen kanssa, ja kun se tapahtuu, toivotaan, että se päättyy vain pieneen päänsärkyyn, koska se voi korkealla pitoisuudella heikentää toimintaasi tai jopa tappaa sinut (vaikkakin hyvin harvoin).

Joten päätin tehdä tämän projektin. Ideani on yksinkertainen, käytä tuulettimia ilmavirran muodostamiseen. Hyvä ilma sisään ja huono ilma ulos. Lisähyödyllisyyden vuoksi lisäsin ylimääräisen lämpötila -anturin, manuaalisen aktivoinnin tuulettimien painikkeen ja verkkosivun niille, jotka haluavat nähdä tilastoja ja/tai aktivoida tuulettimia tietokoneelta.

Opiskelijana, vanhempana, yksineläjänä tai elävänä olennona. Tätä haluat yleensä välttää asuessasi mukavasti omassa kodissasi. Tämä auttaa niitä, jotka haluavat tehdä elämästään hieman helpompaa.

Tarvikkeet

  • Raspberry Pi 3+
  • Mini-usb-laturi 5V/2.5A
  • Micro-sd-kortti
  • Anturit

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (lämpötila)
  • 2 x 12V DC -tuuletin
  • 2 x 2n2222 transistoria
  • LCD 16*2 -näyttö
  • Paina nappia
  • MCP3008
  • Logi -tasomuunnin
  • Ethernet -kaapeli (asennussyistä)

Vaihe 1: Raspberry Pi -asennus

Raspberry Pi -asennus
Raspberry Pi -asennus
Raspberry Pi -asennus
Raspberry Pi -asennus

Ennen kuin voimme työskennellä Rpi: n kanssa, tarvitsemme ohjelmistoja.

  • WinSCP tai FilleZilla (valinnainen, jos haluat siirtää tiedostoja tietokoneeltasi Rpi: hen)
  • Win32 -levy tai Etcher (joista pidät enemmän)
  • Putty tai MobaXterm (joista pidät enemmän)
  • Raspbian -kuva työpöydällä

Ennen kuin aloitan, haluaisin mainita, että tämän opetusohjelman tekeminen, kun valitsen ohjelman toisen päälle, EI tarkoita, että suosittelen sitä. Esimerkiksi haluan käyttää etcheriä, koska se on käyttäjäystävällisempi, mutta Win32: lla on mahdollisuus tehdä varmuuskopioita. Nyt se on poissa järjestelmästäni, aloitetaan.

Jos sinulla on jo Rpi, joka on yhdistetty wifi -verkkoon, siirry vaiheeseen 3.

Ensin aiomme käyttää Etcheriä Raspbian -kuvan asettamiseen sd -kortillesi. Ennen kuin vedämme SD -kortin ulos, muutamme joitain "juttuja" cmdline.txt -tiedostossa, joka löytyy kuvasta. Avaa.txt -tiedosto -> Lisää tämä rivi "ip = 169.254.10.1" (ilman lainausmerkkejä) rivin lopussa (kaikki 1 rivillä) -> Tallenna tiedosto

Toiseksi tee käynnistysosioon tyhjä kansio nimeltä "ssh" (ilman lainausmerkkejä).

Tämän jälkeen voit turvallisesti poistaa Microsdin ja laittaa sen Rpi: hen.

Syy kovalla koodatulla staattisella IP -osoitteella on helpottaa yhteyden muodostamista Rpi: hen. Jos jostain syystä Rpi: llä ei ole ip: tä DHCP: n kanssa, voit helposti käyttää staattista ip: tä.

Vaihe 2: Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon

Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden luominen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden luominen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden luominen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
Yhteyden luominen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon

Käynnistämme Rpi -> yhdistämme ethernet -kaapelin tietokoneen ja RPI: n välille.

  1. Käynnistä Putty ja täytä tämä:

    • Isäntänimi (tai IP -osoite): 169.254.10.1
    • Portti: 22
  2. Päätelaite avautuu ja kirjoitat oletuskäyttäjänimen ja salasanan:

    • Käyttäjätunnus: pi
    • Salasana: vadelma

Nyt kun olemme yhteydessä paikallisesti rpi: hen, haluamme, että RPI: llä on yhteys wifi -verkkoon.

  1. Extra: kirjoita "sudo raspi-config"
  2. Tässä sinun on vaihdettava salasana pi -käyttäjälle (turvallisuussyistä)
  3. Siirry sen jälkeen kohtaan Lokalisointiasetukset -> Muuta aikaa (valitse oikea) -> Siirry sitten Wifi -maa -> valitse maa.
  4. Sulje raspi-config ja käynnistä uudelleen.
  5. Kun olet kirjautunut sisään, tee tilapäisesti pääkäyttäjäksi -> sudo -i
  6. Kirjoita tämä komento lisätäksesi verkon Rpi: hen (koodi alla olevaan luetteloon)

    • password = "password" (lainausmerkeillä)
    • Nimi verkko = "SSID"
    • Muista käyttää kaksinkertaista >>! Tärkeää!

echo "salasana" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Käynnistä nyt uudelleen

Kun muodostat yhteyden uudelleen, tarkista IP -osoitteesi kirjoittamalla:

ifconfig

ja tarkista wlan0, inetin vieressä.

Nyt kun meillä on Internet -yhteys, teemme "nopean" päivityksen.

sudo apt päivitys

sudo apt dist -upgrade -y

Tämä voi kestää jonkin aikaa.

Vaihe 3: Anturi DS18B20 (lämpötila)-1-johtiminen

Anturi DS18B20 (lämpötila)-1-johtiminen
Anturi DS18B20 (lämpötila)-1-johtiminen
Anturi DS18B20 (lämpötila)-1-johtiminen
Anturi DS18B20 (lämpötila)-1-johtiminen

Jokaisessa projektissa on aina jotain erityistä, joka on tehtävä, tai muuten se ei toimi hetkessä.

Tällä kertaa meillä on se DS18B20-lämpötila-anturilla, joka vaatii 1-johtimisen, jota en selitä miksi, mutta kerron ainakin, miten se saadaan toimimaan.

Tätä varten meidän on palattava Rpi: n raspi-configiin, kauniiseen siniseen näyttöön.

  1. Siirry liitäntäasetuksiin
  2. Valitse 1-johtiminen ja ota käyttöön.

Tehty…

Kiusoittelen vain.

Nyt meidän on muutettava /boot/config.txt

sudo nano /boot/config.txt

Lisää tämä rivi alareunaan.

# Ota onewire käyttöön

dtoverlay = w1-gpio

Nyt sudo käynnistää sen uudelleen ja nyt olemme valmiit.

Jos haluat tarkistaa, toimiiko se, kytke anturi Rpi: hen ja palaa sitten terminaaliin ja kirjoita tämä koodi (Katso seuraava vaihe Laitteisto lämpötila -anturin liittämisestä).

cd/sys/bus/w1/devices/w1_bus_master1

ls

Sinun pitäisi nähdä jotain, jossa on tumman sinisiä numeroita ja kirjaimia vasemmassa yläkulmassa. Muista kirjoittaa tämä tieto myöhempää käyttöä varten, kun käsittelemme githubin koodia.

Jos se jostain syystä ei toimi, tarkista tämä syvemmälle menevä linkki.

Vaihe 4: MCP3008 - Analoginen tunnistus

MCP3008 - Analoginen tunnistus
MCP3008 - Analoginen tunnistus
MCP3008 - Analoginen tunnistus
MCP3008 - Analoginen tunnistus

Kun muutimme lämpötila -anturia, meidän on myös tehtävä joitain muutoksia muihin antureihin, koska ne on luettava analogisista tiedoista. Tässä MCP3008 on kätevä, meidän on myös vaihdettava SPI -käyttöliittymä.

sudo raspi-config

Valitse Liitäntäasetukset -> Valitse SPI -> ota käyttöön.

Sitten Valmis.

Vaihe 5: Laitteisto

Emme ole täysin valmiita RPI: hen, mutta tarpeeksi, jotta voimme alkaa rakentaa ja koota laitteistoa.

Joitakin neuvoja on tarkistaa liitännät perusteellisesti rakennettaessa, jotta et… räjäytä Rpi: tä.

Lisäksi huomaat kaaviossa, että jotkin komponentit ovat sen päällä vain kerran, vaikka työskentelemme useamman kuin yhden saman komponentin kanssa. Se tarkoittaa vain sitä, että sinun on toistettava sama prosessi yhden komponentin rakentamiseksi. Yksi pieni poikkeus on, mq-x-anturit eivät tarvitse ylimääräistä tasomuunninta tai MCP3008: ta. Lisää vain ylimääräinen vihreä kaapeli (pdf -muodossa) tasomuuntimeen ja MCP3008: een.

Lisämuokkaus: Puhaltimien on käytettävä kytkimenä transistoria. Käytän 2n2222A -transistoria yhdelle tuulettimelle, koska 2 tuuletinta voivat olla raskaita.

Jos sinulla on transistori, joka pystyy käsittelemään isompaa virtaa, jätä tämän vaiheen viimeinen osa väliin.

Jos sinulla ei ole kaltaistani, sinun on tehtävä se näin, 1 tuuletin = 1 transistori, 2 tuuletinta = 2 transistoria ja niin edelleen (jokainen tuuletin on oma transistori + diodi kuten pdf: ssä).

Sinun on myös lisättävä koodi app.py -tiedostoon backend_project -ohjelmassa myöhemmin vaiheessa 7: Git -koodi….

Vaihe 6: Mariadb -tietokannan luominen

Mariadb -tietokannan luominen
Mariadb -tietokannan luominen

Kuten otsikko osoittaa, aiomme luoda tietokannan, jotta meillä on paikka tallentaa anturitietomme.

Lataa ensin Mariadb Rpi: stä.

sudo apt-get install mariadb-server

Asennuksen jälkeen käytämme sitä.

mysql -u root

Salasana on tyhjä, joten mitään kirjoitettavaa. Paina Enter.

Luo käyttäjä nyt.

LUO KÄYTTÄJÄ 'user'@'%' IDENTIFIED BY 'userdb';

ANNA KAIKKI OIKEUDET PÄÄLLÄ *. * "Käyttäjälle"@"%" APUVAIHTOEHDOLLA;

Huuhteluoikeudet;

Paina Ctrl + C poistuaksesi ja käynnistääksesi palvelun nopeasti uudelleen:

sudo -palvelu mysql uudelleen

Kirjaudu sisään käyttäjätunnuksella: käyttäjä ja salasana: userdb:

mysql -u käyttäjä -p

Nyt on aika luoda tietokanta.

CREATE DATABASE project_db OLETUSMERKKISARJA utf8;

USE project_db

Luo taulukko "historiek" (tarkoittaa historiaa).

LUO TAULUKKO, JOS EI OLE, "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 ')) MOOTTORI = InnoDB;

Ja voila, tietokanta on tehty.

Vaihe 7: Github -koodi ja testaus

Github -koodi ja testaus
Github -koodi ja testaus

Lähestymme projektimme loppua.

Ennen kuin saamme koodin, meidän on tuotava joitain moduuleja Rpi: hen:

pip3 asenna Flask_MySQL

pip3 asentaa flask-socketio

pip3 asennus -U -pullo -cors

pip3 asenna spidev

Nyt tarvitsemme koodin toimimaan, kirjoita terminaali:

git-klooni

Tarkista, onko kansio siellä:

ls

Nyt tarvitset 2 päätelaitetta, joten on kätevää napsauttaa hiiren kakkospainikkeella päätelaitetta ja valita Kopioi istunnot:

Siirry kohtaan backend_project ja lämpötila cd -komennolla.

Ennen kuin aloitamme ohjelmien testaamisen. Muistatko vielä vaiheen 1, jossa on 1-johtiminen anturi, jossa sinun on kirjoitettava joitakin numeroita muistiin? Ei hätää, jos sinulla on, vilkaise nopeasti uudelleen vaihetta 3.

Aiomme lisätä nämä numerot koodiin, koska sen on tiedettävä oikea anturi sitä käytettäessä.

Terminaali, jossa on lämpötilakansio, löydät app.py. Avaamme sen.

sudo nano app.py

Etsi funktio, jonka nimi on "def lämpötila ():", siellä sinun on korvattava "**" kirjoittamillasi numeroilla. Minun tapauksessani saisin sen tämän koodirivin (jokainen numero on yksilöllinen).

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

Testausaika. Kirjoita molemmat terminaalit sekä backend_project että lämpötila -kansioon:

python3 app.py

Muista nyt vaihe 5: laitteisto, johon sinun on lisättävä koodi, jos käytät useita tuulettimia ja transistoreita?

Hyvä, jos ei, palaa vaiheeseen 5.

Nyt meidän on lisättävä koodi, kuten mainitsin sovellukseen app.py in backend_project. Helpottaakseni tein tästä esimerkin koodissa. Jokainen kommenttikoodirivi, jossa on "fan1", poista kommentit ja voila, nyt voit käyttää 2 tuuletinta.

Jos haluat käyttää enemmän kuin vain 2 tuuletinta, kopioi ja liitä sama koodi sen alle, mutta eri numerolla. Tämän haittana on henkilökohtaisempi työ sinulle ja vähemmän gpio.pinejä. Tästä ei ole mitään tuntemiani etuja.

Vaihe 8: Suorita koodi käynnistyksen yhteydessä

Suorita koodi käynnistyksen yhteydessä
Suorita koodi käynnistyksen yhteydessä

Haluamme, että nämä kaksi python -skriptiä suoritetaan heti, kun Rpi käynnistyy, ja jos skripti kaatuu, sen pitäisi käynnistyä uudelleen itsestään. Tätä varten teemme 2 palvelua.

Kirjoita tämä:

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

Kopioi ja liitä tämä lämpötilaan. Palvelu:

[Yksikkö] Kuvaus = Lämpötilapalvelu Jälkeen = usean käyttäjän tavoite

[Palvelu] Tyyppi = yksinkertainen

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

StandardInput = tty-force

Käynnistä uudelleen = vika

RestartSec = 60s

[Asentaa]

WantedBy = usean käyttäjän.target

Sulje ja tee uudelleen, mutta sitten backend_project.service:

Ensimmäinen avoin teksti:

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

Kopioi ja liitä sitten uudelleen:

[Yksikkö] Kuvaus = backend_project Service

Jälkeen = multi-user.target

[Palvelu]

Tyyppi = yksinkertainen

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

StandardInput = tty-force

Käynnistä uudelleen = vika

RestartSec = 60s

[Asentaa]

WantedBy = usean käyttäjän.target

Tallenna ja sulje.

Viimeinen osa kirjoittaa tämän:

sudo systemctl daemon-reload

sudo systemctl mahdollistaa lämpötilan. palvelu sudo uudelleenkäynnistys

Nyt meidän 2 python -skriptimme pitäisi suorittaa automaattisesti käynnistyksen yhteydessä.

Vaihe 9: Määritä verkkosivusto

Kun latasit arkiston, sinun olisi pitänyt saada myös kansio nimeltä front. Tässä on sivuston sisältö.

Ensin tarvitsemme apachea, ennen kuin voimme käyttää kansiota. Noudata apachen tätä linkkiä koskevia ohjeita.

Kun olet valmis. Siirry etukansion sijaintiin:

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

Kirjoita sitten:

sudo mv front/var/www/html

Kun tämä on tehty, siirry html -kansioon ja valmistaudu tylsään työhön (minun syytäni).

cd/var/www/html/

Siirry sitten etukansioon ja siirrä kaikki html -kansioon.

esimerkki:

sudo mv css/var/www/html

Poista sitten etukansiot.

Ja olemme valmiita kaikkeen.

Onnea:).

Vaihe 10: Valinnainen - pienoiskoossa oleva prototyyppi

Valinnainen - pienoiskoossa oleva prototyyppi
Valinnainen - pienoiskoossa oleva prototyyppi
Valinnainen - pienoiskoossa oleva prototyyppi
Valinnainen - pienoiskoossa oleva prototyyppi

Testaussyistä tein prototyypin vain laatikosta, jossa oli kaikki laitteistot, jotta voin nähdä, toimiiko kaikki tilauksen mukaan.

Normaalisti tämä projekti toteutetaan laajemmassa mittakaavassa. Esimerkiksi: huone, talo, tehdas, kauppa ja niin edelleen…

Mutta ilmeisesti ennen kuin aloitamme reikien tekemisen seiniin (mukava riimi). Haluamme ensin nähdä, toimiiko se vain. Sinun ei itse asiassa tarvitse tehdä laatikkoa testausta varten, mutta on aina hauskaa tehdä käsitöitä.

Tässä on minun esimerkkini.

Suositeltava: