Tartalomjegyzék:

Meteorológiai állomás a Raspberry Pi használatával BME280 -mal Pythonban: 6 lépés
Meteorológiai állomás a Raspberry Pi használatával BME280 -mal Pythonban: 6 lépés

Videó: Meteorológiai állomás a Raspberry Pi használatával BME280 -mal Pythonban: 6 lépés

Videó: Meteorológiai állomás a Raspberry Pi használatával BME280 -mal Pythonban: 6 lépés
Videó: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Július
Anonim
Image
Image
Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat

maith scéalaí és aimir (Az időjárás jó mesemondó)

A globális felmelegedéssel és az éghajlatváltozással kapcsolatos problémák miatt a globális időjárási viszonyok egyre szerteágazóvá válnak világszerte, ami számos időjárással összefüggő természeti katasztrófához vezet (aszály, szélsőséges hőmérséklet, árvíz, vihar és erdőtűz), szükségszerűnek tűnik az időjárásállomás gonosz otthon. Sokat tanulhat az alapvető elektronikáról egy meteorológiai állomás projektből, egy csomó olcsó alkatrész és érzékelő segítségével. Elég könnyű beállítani, és rövid időn belül megkaphatja.

1. lépés: Szükséges berendezésekről szóló törvényjavaslat

Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat
Feltétlen felszerelési törvényjavaslat

1. A Málna Pi

Tegye a kezét egy Raspberry Pi táblára. A Raspberry Pi egy Linux alapú egylapos számítógép. A Raspberry Pi valóban olcsó, apró és sokoldalú, hozzáférhető és funkcionális számítógépből épül fel, hogy a tanulók gyakorolják a programozás és a szoftverfejlesztés alapjait.

2. I2C Shield a Raspberry Pi számára

Az INPI2 (I2C adapter) biztosítja a Raspberry Pi 2/3 an I²C portot, amely több I2C eszközzel használható. Elérhető a DCUBE Store -ban.

3. Digitális páratartalom-, nyomás- és hőmérsékletérzékelő, BME280

A BME280 egy páratartalom-, nyomás- és hőmérséklet -érzékelő, amely gyors válaszidőt és nagy általános pontosságot mutat. Ezt az érzékelőt a DCUBE Store -ból vásároltuk.

4. I2C csatlakozó kábel

Az itt található I²C kábelt használtuk a DCUBE Store -ban.

5. Micro USB kábel

A mikro USB kábel Tápegység ideális választás a Raspberry Pi tápellátásához.

6. Az Internet -hozzáférés értelmezése Ethernet -kábel/WiFi adapter segítségével

Az internet -hozzáférést a helyi hálózathoz és az internethez csatlakoztatott Ethernet -kábelen keresztül lehet engedélyezni. Alternatív megoldásként csatlakozhat vezeték nélküli hálózathoz USB vezeték nélküli hardverkulcs használatával, amely konfigurációt igényel.

7. HDMI kábel (kijelző és csatlakozókábel)

Bármely HDMI/DVI monitornak és TV -nek a Pi kijelzőjeként kell működnie. Alternatív megoldásként távolról is hozzáférhet a Pi -hez SSH -n keresztül, és nincs szükség monitorra (csak haladó felhasználók).

2. lépés: Hardvercsatlakozások az áramkörhöz

Hardvercsatlakozások az áramkörhöz
Hardvercsatlakozások az áramkörhöz
Hardvercsatlakozások az áramkörhöz
Hardvercsatlakozások az áramkörhöz

Készítse el az áramkört az ábrán látható vázlat szerint. Általában a csatlakozások nagyon egyszerűek. Maradjon nyugodt, és kövesse a fenti utasításokat és képeket, és nem lehet gond. Tanulás közben alaposan megismerkedtünk az elektronika hardver és szoftver ismeretekkel kapcsolatos alapjaival. Egy egyszerű elektronikai vázlatot akartunk elkészíteni ehhez a projekthez. Az elektronikus rajzok olyanok, mint a tervrajzok. Készítsen tervrajzot, és gondosan kövesse a tervezést. Az elektronika néhány alapfogalma hasznos lehet itt!

A Raspberry Pi és az I2C Shield csatlakoztatása

Először vegye be a Raspberry Pi -t, és tegye rá az I²C pajzsot. Óvatosan nyomja meg a pajzsot, és készen vagyunk ezzel a lépéssel, ami olyan egyszerű, mint a pite (lásd a képet).

Az érzékelő és a Raspberry Pi csatlakoztatása

Fogja meg az érzékelőt, és csatlakoztassa hozzá az I²C kábelt. Győződjön meg arról, hogy az I²C kimenet MINDIG csatlakozik az I²C bemenethez. Ugyanezt kell követni a Raspberry Pi esetében is, amelyre az I²C pajzs van felszerelve, és a GPIO csapokat. Javasoljuk az I²C kábelek használatát, mivel ez nem teszi szükségessé a leolvasás, forrasztás és a legkisebb csúszás okozta rossz közérzetet.. Ezzel az egyszerű plug and play kábellel könnyedén telepíthet, cserélhet táblákat, vagy további táblákat adhat egy alkalmazáshoz.

Megjegyzés: A barna vezetéknek mindig követnie kell a föld (GND) kapcsolatot az egyik eszköz kimenete és egy másik eszköz bemenete között

Az internetkapcsolat kulcsfontosságú

Itt két választási lehetősége van. Vagy csatlakoztathatja a Raspberry Pi -t a hálózathoz Ethernet -kábellel, vagy használhat USB -WiFi adaptert a WIFI -kapcsolathoz. Akárhogy is, amíg az internethez csatlakozik, lefedett.

Az áramkör bekapcsolása

Csatlakoztassa a Micro USB kábelt a Raspberry Pi tápcsatlakozójához. Üss fel és íme! A mi csapatunk információ.

Csatlakozás a képernyőhöz

A HDMI -kábelt csatlakoztathatjuk monitorhoz vagy TV -hez. Ezenkívül elérhetjük a Raspberry Pi -t anélkül, hogy távoli hozzáféréssel csatlakoztatnánk a monitorhoz. Az SSH egy praktikus eszköz a biztonságos távoli eléréshez. Ehhez használhatja a PUTTY szoftvert is. Ez a lehetőség a haladó felhasználók számára készült, így itt nem foglalkozunk vele részletesen.

Gazdaságos módszer, ha nem akar sokat költeni

3. lépés: Raspberry Pi programozás Pythonban

Raspberry Pi programozás Pythonban
Raspberry Pi programozás Pythonban

A Python kód a Raspberry Pi és a BME280 érzékelőhöz. Ez elérhető a Github tárházunkban.

Mielőtt folytatná a kódot, feltétlenül olvassa el a Readme fájlban található utasításokat, és állítsa be a Raspberry Pi -t ennek megfelelően. Csak egy kis idő fog felkészülni a beállításra. Az időjárás állomás szárazföldi vagy tengeri létesítmény, amely a légköri viszonyok mérésére szolgáló eszközökkel és berendezésekkel szolgál az időjárás -előrejelzésekhez, valamint az időjárás és az éghajlat tanulmányozásához.

A kód egyértelműen előtted van, és a legegyszerűbb formában képzelhető el, és nem lehet gond. Még mindig kérdezze meg, hogy van -e (Még ha ezer dolgot is tud, kérdezzen meg valakit, aki tudja).

Innen is másolhatja az érzékelő működő Python -kódját.

# Szabad akaratú licenccel terjesztik.# Bármilyen módon használhatja, haszonnal vagy ingyen, feltéve, hogy illeszkedik a kapcsolódó művek licenceihez. # BME280 # Ezt a kódot a ControlEverything.com webhelyen elérhető BME280_I2CS I2C Mini modullal való együttműködésre tervezték. #

import smbus

importálási idő

# Szerezzen I2C buszt

busz = smbus. SMBus (1)

# BME280 cím, 0x76 (118)

# Adatok visszaolvasása 0x88 -ból (136), 24 bájt b1 = bus.read_i2c_block_data (0x76, 0x88, 24)

# Konvertálja az adatokat

# Hőmérsékleti együtthatók dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] ha dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] ha dig_T3> 32767: dig_T3 -= 65536

# Nyomás együtthatói

dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] ha dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10], ha dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] ha dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14], ha dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] ha dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] ha dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] ha dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22], ha dig_P9> 32767: dig_P9 -= 65536

# BME280 cím, 0x76 (118)

# Adatok visszaolvasása a 0xA1 -ből (161), 1 bájtos dig_H1 = bus.read_byte_data (0x76, 0xA1)

# BME280 cím, 0x76 (118)

# Adatok visszaolvasása a 0xE1 -ből (225), 7 bájt b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)

# Konvertálja az adatokat

# Páratartalom együtthatók dig_H2 = b1 [1] * 256 + b1 [0] ha dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) ha dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) ha dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] ha dig_H6> 127: dig_H6 -= 256

# BME280 cím, 0x76 (118)

# Válassza ki a vezérlő páratartalom regisztert, 0xF2 (242) # 0x01 (01) Páratartalom túlmintavételezés = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 cím, 0x76 (118) # Vezérlő mérési regiszter kiválasztása, 0xF4 (244) # 0x27 (39) Nyomás és hőmérséklet túlmintavételi arány = 1 # Normál mód bus.write_byte_data (0x76, 0xF4, 0x27) # BME280 cím, 0x76 (118) # Konfigurációs regiszter kiválasztása, 0xF5 (245) # 0xA0 (00) Készenléti idő = 1000 ms busz.write_byte_data (0x76, 0xF5, 0xA0)

time.sleep (0,5)

# BME280 cím, 0x76 (118)

# Adatok visszaolvasása a 0xF7 (247), 8 bájtból

# A nyomás és a hőmérséklet adatait 19 bitesre konvertálja

adc_p = ((adatok [0] * 65536) + (adatok [1] * 256) + (adatok [2] és 0xF0)) / 16 adc_t = ((adatok [3] * 65536) + (adatok [4] *) 256) + (adatok [5] és 0xF0)) / 16

# Konvertálja a páratartalom adatait

adc_h = adatok [6] * 256 + adatok [7]

# Hőmérsékleteltolás számítások

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

# Nyomáseltolási számítások

var1 = (t_finom / 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 nyomás = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100

# Páratartalom -számítások

var_H = {)) páratartalom = var_H * (1.0 - dig_H1 * var_H / 524288.0), ha a páratartalom> 100.0: páratartalom = 100.0 elif páratartalom <0.0: páratartalom = 0.0

# Adatok megjelenítése a képernyőn

nyomtatás "Hőmérséklet Celsius -fok: %.2f C" %cTemp nyomtatás "Fahrenheit -hőmérséklet: %.2f F" %fTemp nyomtatás "Nyomás: %.2f hPa" %nyomásnyomtatás "Relatív páratartalom: %.2f %%" %páratartalom

4. lépés: A futó kód

A futó kód
A futó kód

Most töltse le (vagy git pull) a kódot, és nyissa meg a Raspberry Pi -ben.

Futtassa a parancsokat a fordításhoz és a kód feltöltéséhez a terminálon, és nézze meg a kimenetet a kijelzőn. Néhány másodperc múlva megjelenik az összes paraméter. Miután meggyőződött arról, hogy minden remekül működik, fejleszthet néhány érdekesebbet.

5. lépés: Használat a gyakorlati világban

A BME280 nagy teljesítményt ér el minden olyan alkalmazásban, amely páratartalom- és nyomásmérést igényel. Ezek a feltörekvő alkalmazások a Kontextus -tudatosság, pl. Bőrfelismerés, Helyiségváltozás-észlelés, Fitness-felügyelet / Jólét, Figyelmeztetés a szárazságra vagy a magas hőmérsékletre, Térfogat- és légáramlásmérés, Otthonautomatizálás-vezérlés, Fűtésvezérlés, Szellőzés, Légkondicionálás (HVAC), Dolgok Internete (IoT), GPS-javítás (pl. Az első javításhoz szükséges idő javítása, holtpont-számítás, lejtésérzékelés), beltéri navigáció (padlóváltás, lift-észlelés), szabadtéri navigáció, szabadidő- és sportalkalmazások, időjárás-előrejelzés és függőleges sebességjelzés (emelkedés/süllyedés) Sebesség).

6. lépés: Következtetés

Reméljük, hogy ez a projekt további kísérleteket inspirál. Egy kifinomultabb időjárás -állomás elkészítése több érzékelőt is magában foglalhat, például esőmérőt, fényérzékelőt, szélmérőt (szélsebesség) stb. Hozzáadhatja és módosíthatja a kódot. Van egy videó oktatóanyagunk a YouTube -on, amely tartalmazza az I²C érzékelő alapvető működését a Rasp Pi segítségével. Valóban elképesztő látni az I²C kommunikáció eredményeit és működését. Ellenőrizze azt is. Jó szórakozást az építkezéshez és a tanuláshoz! Kérjük, ossza meg velünk, mit gondol erről az oktatási lehetőségről. Szükség esetén szeretnénk néhány fejlesztést végrehajtani.

Ajánlott: