Sisällysluettelo:
- Vaihe 1: Pakollinen laitelasku
- Vaihe 2: Piirin laitteistoyhteydet
- Vaihe 3: Raspberry Pi -ohjelmointi Pythonissa
- Vaihe 4: Running Code
- Vaihe 5: Hyödyntäminen käytännön maailmassa
- Vaihe 6: Johtopäätös
Video: Sääasema Raspberry Pi: n ja BME280: n avulla Pythonissa: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
on maith scéalaí an aimir (Sää on hyvä tarinankertoja)
Ilmaston lämpenemisen ja ilmastonmuutoksen vuoksi globaali säämalli on muuttumassa epäsäännölliseksi kaikkialla maailmassa, mikä johtaa useisiin säähän liittyviin luonnonkatastrofeihin (kuivuus, äärilämpötilat, tulvat, myrskyt ja metsäpalot), sääasema näyttää välttämättömältä paha kotona. Opit paljon peruselektroniikasta sääasemaprojektista käyttämällä joukkoa halpoja osia ja antureita. Se on melko helppo asentaa ja se ei ole hetkessä.
Vaihe 1: Pakollinen laitelasku
1. Vadelma Pi
Ota kädet Raspberry Pi -levylle. Raspberry Pi on Linux -käyttöinen yhden kortin tietokone. Raspberry Pi on todella halpa, pieni ja monipuolinen, joka on rakennettu helppokäyttöisestä ja toimivasta tietokoneesta, jotta oppijat voivat harjoittaa ohjelmoinnin ja ohjelmistokehityksen perusteita.
2. I2C Shield Raspberry Pi: lle
INPI2 (I2C -sovitin) tarjoaa Raspberry Pi 2/3 an I²C -portin käytettäväksi useiden I2C -laitteiden kanssa. Se on saatavana DCUBE Storesta.
3. Digitaalinen kosteus-, paine- ja lämpötila -anturi, BME280
BME280 on kosteus-, paine- ja lämpötila -anturi, jolla on nopea vasteaika ja korkea kokonaistarkkuus. Ostimme tämän anturin DCUBE Storesta.
4. I2C -liitäntäkaapeli
Käytimme I²C -kaapelia, joka on saatavana täältä DCUBE Storesta.
5. Micro -USB -kaapeli
Micro USB -kaapeli Virtalähde on ihanteellinen valinta Raspberry Pi -laitteen virransyöttöön.
6. Tulkitse Internet -yhteys Ethernet -kaapelin/WiFi -sovittimen kautta
Internet -yhteys voidaan ottaa käyttöön Ethernet -kaapelilla, joka on kytketty paikalliseen verkkoon ja Internetiin. Vaihtoehtoisesti voit muodostaa yhteyden langattomaan verkkoon käyttämällä langatonta USB -sovitinta, joka edellyttää määritystä.
7. HDMI -kaapeli (näyttö- ja liitäntäkaapeli)
Kaikkien HDMI-/DVI -näyttöjen ja televisioiden pitäisi toimia Pi: n näyttönä. Vaihtoehtoisesti voit etäkäyttää Pi: tä SSH: n kautta, jolloin näyttöä ei tarvita (vain kokeneille käyttäjille).
Vaihe 2: Piirin laitteistoyhteydet
Tee piiri piirustuksen mukaisesti. Yleensä liitännät ovat hyvin yksinkertaisia. Pysy rauhallisena ja noudata yllä olevia ohjeita ja kuvia, eikä sinulla pitäisi olla ongelmia. Oppiessamme opimme perusteellisesti elektroniikan perusteet laitteisto- ja ohjelmistotiedoista. Halusimme laatia yksinkertaisen elektroniikkakaavion tälle projektille. Elektroniset kaaviot ovat kuin piirustuksia. Laadi suunnitelma ja seuraa suunnittelua huolellisesti. Muutama elektroniikan peruskäsite voi olla hyödyllinen täällä!
Raspberry Pi ja I2C Shield -liitäntä
Ota ensin Raspberry Pi ja aseta I²C Shield sen päälle. Paina kilpeä varovasti, ja olemme tehneet tämän vaiheen yhtä helposti kuin piirakka (katso kuva).
Anturin ja Raspberry Pi: n liitäntä
Ota anturi ja liitä I²C -kaapeli siihen. Varmista, että I²C -lähtö kytketään AINA I²C -tuloon. Samaa on noudatettava myös Raspberry Pi -laitteessa, jossa I²C-suoja on asennettu GPIO-nastoihin.. Tämän yksinkertaisen Plug and Play -kaapelin avulla voit asentaa, vaihtaa levyjä tai lisätä lisää levyjä sovellukseen helposti.
Huomautus: Ruskean johdon tulee aina seurata maadoitusliitäntää (GND) yhden laitteen ulostulon ja toisen laitteen tulon välillä
Internet -yhteys on avainasemassa
Tässä on kaksi vaihtoehtoa. Voit joko liittää Raspberry Pi -laitteen verkkoon Ethernet -kaapelilla tai käyttää USB -WiFi -sovitinta WIFI -yhteyksiä varten. Joka tapauksessa, kunhan se on yhteydessä Internetiin, olet suojattu.
Piirin käynnistäminen
Liitä Micro USB -kaapeli Raspberry Pi -laitteen virtaliitäntään. Tsemppiä ja voila! Ryhmämme on tietoa.
Yhteys näyttöön
Voimme joko liittää HDMI -kaapelin näyttöön tai televisioon. Lisäksi voimme käyttää Raspberry Pi -laitetta kytkemättä sitä näyttöön etäyhteyden avulla. SSH on kätevä työkalu suojattuun etäkäyttöön. Voit käyttää siihen myös PUTTY -ohjelmistoa. Tämä vaihtoehto on tarkoitettu kokeneille käyttäjille, joten emme käsittele sitä yksityiskohtaisesti täällä.
Se on taloudellinen menetelmä, jos et halua käyttää paljon
Vaihe 3: Raspberry Pi -ohjelmointi Pythonissa
Raspberry Pi- ja BME280 -anturin Python -koodi. Se on saatavana Github -arkistostamme.
Ennen kuin jatkat koodia, muista lukea Readme -tiedoston ohjeet ja asentaa Raspberry Pi sen mukaan. Vain vähän aikaa valmistautuu asennukseen. Sääasema on joko maalla tai merellä sijaitseva laite, jossa on välineitä ja laitteita ilmakehän mittaamiseen, jotta saadaan tietoa sääennusteista ja tutkitaan säätä ja ilmastoa.
Koodi on selvästi edessäsi ja se on yksinkertaisimmassa muodossa, jonka voit kuvitella, eikä sinulla pitäisi olla ongelmia. Kysy silti jos mitään (Vaikka tiedät tuhat asiaa, kysy silti joltain, joka tietää).
Voit myös kopioida tämän anturin toimivan Python -koodin täältä.
# Jaetaan vapaaehtoisella lisenssillä.# Käytä sitä haluamallasi tavalla, voittoa tai ilmaiseksi, jos se sopii siihen liittyvien teosten lisensseihin. # BME280 # Tämä koodi on suunniteltu toimimaan BME280_I2CS I2C Mini -moduulin kanssa, joka on saatavana osoitteesta ControlEverything.com. #
tuoda smbus
tuonnin aika
# Hanki I2C -bussi
väylä = smbus. SMBus (1)
# BME280 -osoite, 0x76 (118)
# Lue data takaisin 0x88 (136), 24 tavua b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Muunna tiedot
# Lämpötilakerroimet dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] jos dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] jos dig_T3> 32767: dig_T3 -= 65536
# Painekertoimet
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] jos dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10], jos dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] jos dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14], jos dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] jos dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] jos dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] jos dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22], jos dig_P9> 32767: dig_P9 -= 65536
# BME280 -osoite, 0x76 (118)
# Lue tiedot takaisin 0xA1: stä (161), 1 tavun dig_H1 = väylä.lukun_tavu (0x76, 0xA1)
# BME280 -osoite, 0x76 (118)
# Lue tiedot takaisin 0xE1 (225), 7 tavua b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Muunna tiedot
# Kosteuskertoimet dig_H2 = b1 [1] * 256 + b1 [0] jos dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) jos dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) jos dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] jos dig_H6> 127: dig_H6 -= 256
# BME280 -osoite, 0x76 (118)
# Valitse säätökosteusrekisteri, 0xF2 (242) # 0x01 (01) Kosteuden ylinäytteenotto = 1 väylä.write_byte_data (0x76, 0xF2, 0x01) # BME280 -osoite, 0x76 (118) # Valitse kontrollimittausrekisteri, 0xF4 (244) # 0x27 (39) Paineen ja lämpötilan ylinäytteenottotaajuus = 1 # Normaalitila väylä.write_byte_data (0x76, 0xF4, 0x27) # BME280 -osoite, 0x76 (118) # Valitse määritysrekisteri, 0xF5 (245) # 0xA0 (00) Valmiusaika = 1000 ms väylä.write_byte_data (0x76, 0xF5, 0xA0)
aika. unta (0,5)
# BME280 -osoite, 0x76 (118)
# Lue tiedot takaisin 0xF7 (247), 8 tavua # Paine MSB, Paine LSB, Paine xLSB, Lämpötila MSB, Lämpötila LSB # Lämpötila xLSB, Kosteus MSB, Kosteus LSB data = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Muunna paine- ja lämpötilatiedot 19-bittisiksi
adc_p = ((data [0] * 65536) + (data [1] * 256) + (data [2] & 0xF0)) / 16 adc_t = ((data [3] * 65536) + (data [4] * 256) + (data [5] & 0xF0)) / 16
# Muunna kosteustiedot
adc_h = data [6] * 256 + data [7]
# Lämpötilan poikkeaman laskelmat
var1 = (((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = ((((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) / 8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120,0 fTemp = cTemp * 1,8 + 32
# Painepoikkeamalaskelmat
var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = (((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 paine = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Kosteuspoikkeamalaskelmat
var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0))) kosteus = var_H * (1,0 - dig_H1 * var_H / 524288.0) jos kosteus> 100.0: kosteus = 100.0 elif kosteus <0.0: kosteus = 0.0
# Tulosta tiedot näytölle
tulosta "Lämpötila celsiusasteissa: %.2f C" %cTempitulostus "Lämpötila Fahrenheit: %.2f F" %fTemp -tulostus "Paine: %.2f hPa" %painetuloste "Suhteellinen kosteus: %.2f %%" %kosteus
Vaihe 4: Running Code
Lataa nyt (tai git pull) koodi ja avaa se Raspberry Pi: ssä.
Suorita komennot kääntääksesi ja ladataksesi koodin päätelaitteeseen ja katso tulostus näytöllä. Muutaman sekunnin kuluttua se näyttää kaikki parametrit. Kun olet varmistanut, että kaikki toimii hyvin, voit kehittää mielenkiintoisempia.
Vaihe 5: Hyödyntäminen käytännön maailmassa
BME280 saavuttaa korkean suorituskyvyn kaikissa sovelluksissa, joissa vaaditaan kosteuden ja paineen mittaamista. Nämä uudet sovellukset ovat kontekstitietoisuutta, esim. Ihon tunnistus, huoneenmuutoksen havaitseminen, kuntosalin seuranta / hyvinvointi, varoitus kuivuudesta tai korkeista lämpötiloista, äänenvoimakkuuden ja ilmavirran mittaus, kodin automaation ohjaus, ohjauksen lämmitys, ilmanvaihto, ilmastointi (LVI), esineiden internet (IoT), GPS-parannus (esim. Ensimmäiseen korjaukseen tarvittava aika, kuolleen laskenta, kaltevuuden tunnistus), sisänavigointi (lattian havaitseminen, hissin tunnistus), ulkona navigointi, vapaa-ajan ja urheilusovellukset, sääennuste ja pystysuuntaisen nopeuden ilmaisu (nousu/uppoaminen) Nopeus).
Vaihe 6: Johtopäätös
Toivottavasti tämä projekti inspiroi uusia kokeiluja. Kehittyneemmän sääaseman tekeminen voi sisältää joitain muita antureita, kuten sademittari, valoanturi, tuulen nopeusmittari jne. Voit lisätä niitä ja muuttaa koodia. Meillä on YouTubessa video -opetusohjelma, jossa on I²C -anturin perustoiminnot Rasp Pi: n kanssa. On todella hämmästyttävää nähdä I²C -viestinnän tulokset ja toiminta. Tarkista myös. Hauskaa rakentamista ja oppimista! Kerro meille, mitä pidät tästä ohjeesta. Haluaisimme tehdä joitain parannuksia tarvittaessa.
Suositeltava:
QR -koodinlukija OpenCV: n avulla Pythonissa: 7 vaihetta
QR-koodinlukija OpenCV: n avulla Pythonissa: Nykymaailmassa näemme, että QR-koodia ja viivakoodia käytetään lähes kaikkialla tuotteen pakkaamisesta verkkomaksuihin, ja nykyään näemme QR-koodit jopa ravintolassa nähdäksemme valikon. epäile, että se on nyt iso ajatus. Mutta oletko koskaan kärsinyt
Henkilökohtainen sääasema Raspberry Pi: n avulla BME280: n kanssa Javassa: 6 vaihetta
Henkilökohtainen sääasema Raspberry Pi: n käyttäminen BME280: n kanssa Javalla: Huono sää näyttää aina pahemmalta ikkunan läpi.Olemme aina olleet kiinnostuneita seuraamaan paikallista säätämme ja mitä näemme ikkunasta. Halusimme myös hallita paremmin lämmitys- ja ilmastointijärjestelmäämme. Henkilökohtaisen sääaseman rakentaminen on loistavaa
NaTaLia -sääasema: Arduinon aurinkovoimalla toimiva sääasema tehty oikein: 8 vaihetta (kuvilla)
NaTaLia -sääasema: Arduino -aurinkovoimalla toimiva sääasema tehty oikein: 1 vuoden onnistuneen toiminnan jälkeen kahdessa eri paikassa jaan aurinkovoimalla toimivan sääaseman projektisuunnitelmani ja selitän, kuinka siitä kehittyi järjestelmä, joka voi todella selviytyä pitkään ajan aurinkoenergiasta. Jos seuraat
Huoneen sääasema Arduinon ja BME280: n avulla: 4 vaihetta
Huoneen sääasema Arduinon ja BME280: n avulla: Aiemmin jaoin yksinkertaisen sääaseman, joka näytti paikallisen alueen lämpötilan ja kosteuden. Ongelmana oli, että päivitys vie aikaa ja tiedot eivät ole tarkkoja. Tässä opetusohjelmassa teemme sisäilman monitorin
Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta
Värin tunnistus Pythonissa OpenCV: n avulla: Hei! Tätä ohjetta käytetään opastamaan, kuinka tietty väri voidaan purkaa kuvasta pythonissa openCV -kirjaston avulla. Jos olet uusi tässä tekniikassa, älä huoli, tämän oppaan lopussa voit ohjelmoida oman värisi