Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Raspberry Pi -asennus
- Vaihe 2: Yhteyden muodostaminen ja Rpi -langattoman yhteyden muodostaminen lähiverkkoon
- Vaihe 3: Anturi DS18B20 (lämpötila)-1-johtiminen
- Vaihe 4: MCP3008 - Analoginen tunnistus
- Vaihe 5: Laitteisto
- Vaihe 6: Mariadb -tietokannan luominen
- Vaihe 7: Github -koodi ja testaus
- Vaihe 8: Suorita koodi käynnistyksen yhteydessä
- Vaihe 9: Määritä verkkosivusto
- Vaihe 10: Valinnainen - pienoiskoossa oleva prototyyppi
Video: TheAir - Kaasuanturiprojekti: 10 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
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
Käynnistämme Rpi -> yhdistämme ethernet -kaapelin tietokoneen ja RPI: n välille.
-
Käynnistä Putty ja täytä tämä:
- Isäntänimi (tai IP -osoite): 169.254.10.1
- Portti: 22
-
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.
- Extra: kirjoita "sudo raspi-config"
- Tässä sinun on vaihdettava salasana pi -käyttäjälle (turvallisuussyistä)
- Siirry sen jälkeen kohtaan Lokalisointiasetukset -> Muuta aikaa (valitse oikea) -> Siirry sitten Wifi -maa -> valitse maa.
- Sulje raspi-config ja käynnistä uudelleen.
- Kun olet kirjautunut sisään, tee tilapäisesti pääkäyttäjäksi -> sudo -i
-
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
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.
- Siirry liitäntäasetuksiin
- 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
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
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
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ä
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
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:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen