Obsah:
- Krok 1: Účet za nevyhnutné vybavenie
- Krok 2: Hardvérové pripojenia pre obvod
- Krok 3: Programovanie Raspberry Pi v Pythone
- Krok 4: Bežiaci kód
- Krok 5: Využitie v praktickom svete
- Krok 6: Záver
Video: Meteorologická stanica používajúca Raspberry Pi s BME280 v Pythone: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
je maith an scéalaí an goalsir (The Weather is a Good Storyteller)
Vzhľadom na problémy s globálnym otepľovaním a zmenou klímy sa globálny model počasia v celom svete stáva nevyrovnaným, čo vedie k mnohým prírodným katastrofám súvisiacim s počasím (suchá, extrémne teploty, záplavy, búrky a požiare), zdá sa, že meteorologická stanica je potrebná zlo doma. Naučíte sa veľa o základnej elektronike z projektu meteorologickej stanice s použitím mnohých lacných dielov a senzorov. Je veľmi jednoduché ho nastaviť a čoskoro ho budete mať k dispozícii.
Krok 1: Účet za nevyhnutné vybavenie
1. Raspberry Pi
Dajte do ruky dosku Raspberry Pi. Raspberry Pi je jednodoskový počítač poháňaný systémom Linux. Raspberry Pi je skutočne lacný, malý a univerzálny, postavený z prístupného a funkčného počítača, v ktorom si študenti môžu precvičiť základy programovania a vývoja softvéru.
2. I2C štít pre Raspberry Pi
INPI2 (adaptér I2C) poskytuje port Raspberry Pi 2/3 a I²C na použitie s viacerými zariadeniami I2C. Je k dispozícii v obchode DCUBE.
3. Digitálny snímač vlhkosti, tlaku a teploty, BME280
BME280 je snímač vlhkosti, tlaku a teploty, ktorý má rýchly čas odozvy a vysokú celkovú presnosť. Tento senzor sme kúpili v obchode DCUBE.
4. Pripojovací kábel I2C
Použili sme kábel I²C, ktorý je k dispozícii tu, Obchod DCUBE.
5. Kábel Micro USB
Micro USB kábel Napájací zdroj je ideálnou voľbou pre napájanie Raspberry Pi.
6. Interpretujte prístup na internet prostredníctvom ethernetového kábla/adaptéra WiFi
Prístup na internet je možné povoliť pomocou ethernetového kábla pripojeného k lokálnej sieti a internetu. Prípadne sa môžete pripojiť k bezdrôtovej sieti pomocou bezdrôtového kľúča USB, ktorý bude vyžadovať konfiguráciu.
7. Kábel HDMI (kábel pre zobrazenie a pripojenie)
Akýkoľvek monitor HDMI/DVI a akýkoľvek televízor by mali fungovať ako displeje pre Pi. Prípadne môžete k systému Pi pristupovať na diaľku prostredníctvom SSH, čím sa eliminuje potreba monitora (iba pokročilí používatelia).
Krok 2: Hardvérové pripojenia pre obvod
Vytvorte obvod podľa zobrazenej schémy. Vo všeobecnosti sú pripojenia veľmi jednoduché. Zachovajte pokoj a riaďte sa vyššie uvedenými pokynmi a obrázkami a nemali by ste mať žiadne problémy. Počas učenia sme sa dôkladne zoznámili so základmi elektroniky, pokiaľ ide o znalosti hardvéru a softvéru. Chceli sme pre tento projekt vypracovať jednoduchú schému elektroniky. Elektronické schémy sú ako plány. Vypracujte plán a starostlivo postupujte podľa návrhu. Tu môže byť užitočných niekoľko základných konceptov elektroniky!
Pripojenie štítu Raspberry Pi a I2C
Najprv vezmite Raspberry Pi a umiestnite naň štít I²C. Jemne stlačte štít a tento krok máme hotový rovnako ľahko ako koláč (pozri obrázok).
Pripojenie senzora a Raspberry Pi
Vezmite snímač a pripojte k nemu kábel I²C. Zaistite, aby sa výstup I²C VŽDY pripájal k vstupu I²C. To isté je potrebné dodržať pri Raspberry Pi s I²C štítom namontovaným na GPIO pinech. Odporúčame použiť I²C káble, pretože to vylučuje potrebu čítania vývodov, spájkovania a malátnosti spôsobenej aj tým najmenším preklzom. S týmto jednoduchým káblom typu plug and play môžete do aplikácie jednoducho inštalovať, vymieňať alebo pridávať ďalšie dosky.
Poznámka: Hnedý vodič by mal vždy nasledovať po uzemnení (GND) medzi výstupom jedného zariadenia a vstupom iného zariadenia
Internetové pripojenie je kľúčové
Tu máte dve možnosti. Buď môžete Raspberry Pi pripojiť k sieti pomocou ethernetového kábla alebo použiť adaptér USB na WiFi na pripojenie WIFI. Tak či onak, pokiaľ je pripojený k internetu, máte pokrytie.
Zapínanie obvodu
Zapojte kábel Micro USB do napájacieho konektora Raspberry Pi. Porazte a voila! Náš tím je informácia.
Pripojenie k obrazovke
Buď môžeme mať kábel HDMI pripojený k monitoru alebo k televízoru. Okrem toho máme prístup k Raspberry Pi bez pripojenia k monitoru pomocou vzdialeného prístupu. SSH je praktický nástroj pre bezpečný vzdialený prístup. Na to môžete použiť aj softvér PUTTY. Táto možnosť je pre pokročilých používateľov, preto sa jej tu nebudeme podrobne venovať.
Je to ekonomická metóda, ak nechcete veľa míňať
Krok 3: Programovanie Raspberry Pi v Pythone
Kód Python pre snímač Raspberry Pi a BME280. Je k dispozícii v našom úložisku Github.
Predtým, ako prejdete na kód, prečítajte si pokyny uvedené v súbore Readme a nakonfigurujte podľa neho svoje Raspberry Pi. Len málo času vás pripraví na nastavenie. Meteorologická stanica je zariadenie, či už na pevnine alebo na mori, s prístrojmi a zariadením na meranie atmosférických podmienok, ktoré poskytujú informácie o predpovediach počasia a študujú počasie a podnebie.
Kód je jasne pred vami a je v najjednoduchšej forme, akú si dokážete predstaviť, a nemali by ste mať žiadne problémy. Stále sa pýtajte, či nejaké (Aj keď viete tisíc vecí, stále sa pýtajte niekoho, kto to vie).
Odtiaľto môžete skopírovať funkčný kód Pythonu pre tento senzor.
# Distribuované s licenciou slobodnej vôle.# Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií k ním pridruženým dielam. # BME280 # Tento kód je navrhnutý tak, aby fungoval s mini modulom BME280_I2CS I2C, ktorý je k dispozícii na ControlEverything.com. #
import smbus
čas importu
# Získajte autobus I2C
bus = smbus. SMBus (1)
# Adresa BME280, 0x76 (118)
# Čítajte údaje späť z 0x88 (136), 24 bajtov b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Previesť údaje
# Teplotné koeficienty dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2], ak dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] if dig_T3> 32767: dig_T3 -= 65536
# Tlakové koeficienty
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] ak dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] ak dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] ak dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] ak dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] ak dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] ak dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] ak dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] ak dig_P9> 32767: dig_P9 -= 65536
# Adresa BME280, 0x76 (118)
# Načítajte údaje späť z 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)
# Adresa BME280, 0x76 (118)
# Načítať údaje späť z 0xE1 (225), 7 bajtov b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Previesť údaje
# Koeficienty vlhkosti dig_H2 = b1 [1] * 256 + b1 [0], ak dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) ak dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) ak dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] ak dig_H6> 127: dig_H6 -= 256
# Adresa BME280, 0x76 (118)
# Vyberte kontrolný register vlhkosti, 0xF2 (242) # 0x01 (01) Prevzorkovanie vlhkosti = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # Adresa BME280, 0x76 (118) # Vyberte kontrolný merací register, 0xF4 (244) # 0x27 (39) Rýchlosť prevzorkovania tlaku a teploty = 1 # zbernica v normálnom režime. Write_byte_data (0x76, 0xF4, 0x27) # adresa BME280, 0x76 (118) # vyberte konfiguračný register, 0xF5 (245) # 0xA0 (00) pohotovostná doba = 1000 ms zbernica.write_byte_data (0x76, 0xF5, 0xA0)
čas.spánok (0,5)
# Adresa BME280, 0x76 (118)
# Prečítajte si údaje späť z 0xF7 (247), 8 bajtov # Tlak MSB, Tlak LSB, Tlak xLSB, Teplota MSB, Teplota LSB # Teplota xLSB, Vlhkosť MSB, Vlhkosť LSB údaje = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Konvertujte údaje o tlaku a teplote na 19-bitové
adc_p = ((údaje [0] * 65536) + (údaje [1] * 256) + (údaje [2] a 0xF0)) / 16 adc_t = ((údaje [3] * 65536) + (údaje [4] * 256) + (údaje [5] a 0xF0)) / 16
# Skonvertujte údaje o vlhkosti
adc_h = údaje [6] * 256 + údaje [7]
# Výpočty teplotného ofsetu
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
# Výpočty ofsetu tlaku
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 tlak = (p + (var1 + var2 + (dig_P7)) / 16,0) / 100
# Výpočty ofsetu vlhkosti
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 * var_H))) vlhkosť = var_H * (1,0 - dig_H1 * var_H / 524288.0), ak je vlhkosť> 100,0: vlhkosť = 100,0 vlhkosti vzduchu <0,0: vlhkosť = 0,0
# Výstup údajov na obrazovku
tlač "Teplota v stupňoch Celzia: %.2f C" %cTemp tlač "Teplota vo Fahrenheite: %.2f F" %fTemp tlač "Tlak: %.2f hPa" %tlaková tlač "Relatívna vlhkosť: %.2f %%" %vlhkosť
Krok 4: Bežiaci kód
Teraz si stiahnite (alebo git pull) kód a otvorte ho v Raspberry Pi.
Spustite príkazy na kompiláciu a nahranie kódu na terminál a pozrite sa na výstup na displeji. Po niekoľkých sekundách sa zobrazia všetky parametre. Keď sa ubezpečíte, že všetko funguje skvele, môžete vyvinúť ďalšie zaujímavé.
Krok 5: Využitie v praktickom svete
BME280 dosahuje vysoký výkon vo všetkých aplikáciách vyžadujúcich meranie vlhkosti a tlaku. Tieto vznikajúce aplikácie sú Kontextové povedomie, napr. Detekcia pokožky, Detekcia zmeny miestnosti, Monitorovanie pohody / pohody, Varovanie týkajúce sa sucha alebo vysokých teplôt, Meranie objemu a prietoku vzduchu, Ovládanie domácej automatizácie, Riadiace kúrenie, Vetranie, Klimatizácia (HVAC), Internet vecí (IoT), Vylepšenie GPS (napr. Zlepšenie času do prvej opravy, Zúčtovanie mŕtveho, Detekcia sklonu), Vnútorná navigácia (zmena detekcie podlahy, Detekcia výťahu), Vonkajšia navigácia, Voľnočasové a športové aplikácie, Predpoveď počasia a Indikácia vertikálnej rýchlosti (Vzostup/Potopenie) Rýchlosť).
Krok 6: Záver
Dúfam, že tento projekt inšpiruje ďalšie experimentovanie. Sofistikovanejšia meteorologická stanica môže zahŕňať niekoľko ďalších senzorov, ako je napríklad Rain Gauge, svetelný senzor, anemometer (rýchlosť vetra) atď. Môžete ich pridať a zmeniť kód. Máme video návod na YouTube, ktorý má základné fungovanie senzora I²C s Rasp Pi. Je skutočne úžasné vidieť výsledky a fungovanie komunikácie I²C. Pozrite sa tiež. Bavte sa s budovaním a učením! Dajte nám vedieť, čo si myslíte o tomto pokyne. V prípade potreby radi urobíme niekoľko vylepšení.
Odporúča:
Jednoduchá meteorologická stanica používajúca ESP8266 .: 6 krokov (s obrázkami)
Jednoduchá meteorologická stanica používajúca ESP8266 .: V tomto návode sa budem deliť o to, ako používať ESP8266 na získavanie údajov, ako je teplota, tlak, klíma atď., A údajov z YouTube, ako sú predplatitelia & Celkový počet zobrazení. a zobrazte údaje na sériovom monitore a zobrazte ich na LCD displeji. Údaje budú
Osobná meteorologická stanica používajúca Raspberry Pi s BME280 v Jave: 6 krokov
Osobná meteorologická stanica používajúca Raspberry Pi s BME280 v Jave: Zlé počasie vždy vyzerá horšie cez okno. Vždy nás zaujímalo monitorovať naše miestne počasie a to, čo vidíme z okna. Tiež sme chceli lepšiu kontrolu nad našim systémom vykurovania a klimatizácie. Vybudovanie osobnej meteorologickej stanice je skvelé
Meteostanica používajúca Wemos D1 Mini, BME280 a Sensate .: 6 krokov
Meteorologická stanica používajúca Wemos D1 Mini, BME280 a Sensate .: V predchádzajúcich príspevkoch som sa podelil o rôzne metódy výstavby meteorologickej stanice. Ak ste to nekontrolovali, tu je odkaz. V tomto návode vám ukážem, ako vytvoriť jednoduchú meteorologickú stanicu pomocou systému Wemos a platformy IoT s názvom Sensate.
Meteorologická stanica používajúca Arduino UNO: 7 krokov
Meteorologická stanica využívajúca Arduino UNO: Autor: Hazel Yang Tento projekt je meteorologická stanica využívajúca dosku Arduino UNO na riadenie toku údajov, snímač DHT22 na zber údajov a obrazovku OLED na zobrazenie údajov
Externá meteorologická stanica používajúca Arduino: 7 krokov
Externá meteorologická stanica používajúca Arduino: Použitý materiál: Ceny sú približné a podľa pamäte. NodeMCU V3 Lua - 3 € digitálny snímač teploty a vlhkosti DTH 22 - 2 € fotorezistorový (LDR) senzorový modul detekuje fotodiódu citlivú na svetlo pre Arduino - 0,80 € 1 súprava/dávka detektor snehu/dažďových kvapiek