Sadržaj:
- Korak 1: Imperativni račun o opremi
- Korak 2: Hardverske veze za krug
- Korak 3: Raspberry Pi programiranje u Pythonu
- Korak 4: Kôd za pokretanje
- Korak 5: Korištenje u praktičnom svijetu
- Korak 6: Zaključak
Video: Meteorološka stanica koja koristi Raspberry Pi sa BME280 u Pythonu: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
je maith an scéalaí an aimir (Vrijeme je dobra pripovjedačica)
S globalnim zagrijavanjem i problemima klimatskih promjena, globalni vremenski obrazac postaje nestabilan u cijelom našem svijetu što dovodi do brojnih prirodnih katastrofa povezanih s vremenom (suše, ekstremne temperature, poplave, oluje i požari), čini se da je meteorološka stanica neophodna zlo kod kuće. Naučite mnogo o osnovnoj elektronici iz projekta meteorološke stanice koristeći hrpu jeftinih dijelova i senzora. Prilično je jednostavno postaviti i nećete ga imati u kratkom roku.
Korak 1: Imperativni račun o opremi
1. Pivo od maline
Uzmite u ruke Raspberry Pi ploču. Raspberry Pi je jednokrilni računar sa Linux operativnim sistemom. Raspberry Pi je zaista jeftin, sićušan i svestran izgrađen od pristupačnog i funkcionalnog računara za učenike da vježbaju osnove programiranja i razvoja softvera.
2. I2C štit za Raspberry Pi
INPI2 (I2C adapter) pruža Raspberry Pi 2/3 i I²C port za upotrebu sa više I2C uređaja. Dostupno je u DCUBE trgovini.
3. Digitalni senzor vlažnosti, pritiska i temperature, BME280
BME280 je senzor vlažnosti, pritiska i temperature koji ima brzo vrijeme odziva i visoku ukupnu tačnost. Ovaj senzor smo kupili u DCUBE trgovini.
4. I2C priključni kabel
Koristili smo I²C kabel dostupan ovdje DCUBE Store.
5. Mikro USB kabl
Napajanje mikro USB kabelom idealan je izbor za napajanje Raspberry Pi.
6. Interpretirajte pristup internetu putem Ethernet kabela/WiFi adaptera
Pristup internetu može se omogućiti putem Ethernet kabela spojenog na lokalnu mrežu i internet. Alternativno, možete se povezati s bežičnom mrežom pomoću USB bežičnog ključa, što će zahtijevati konfiguraciju.
7. HDMI kabl (ekran i kabl za povezivanje)
Svaki HDMI/DVI monitor i bilo koji televizor trebali bi raditi kao zaslon za Pi. Alternativno, možete daljinski pristupiti Pi -u putem SSH -a negirajući potrebu za monitorom (samo napredni korisnici).
Korak 2: Hardverske veze za krug
Napravite krug prema prikazanoj shemi. Općenito, veze su vrlo jednostavne. Budite mirni i slijedite gornja uputstva i slike i ne biste trebali imati problema. Dok smo učili, temeljno smo se upoznali s osnovama elektronike u pogledu hardverskog i softverskog znanja. Željeli smo sastaviti jednostavnu elektroničku shemu za ovaj projekt. Elektronske sheme su poput nacrta. Nacrtajte nacrt i pažljivo pratite dizajn. Nekoliko osnovnih koncepata elektronike moglo bi biti korisno ovdje!
Povezivanje Raspberry Pi i I2C štita
Prvo uzmite Raspberry Pi i postavite I²C štit na njega. Lagano pritisnite štit i završili smo s ovim korakom lako kao pita (pogledajte sliku).
Povezivanje senzora i Raspberry Pi
Uzmite senzor i spojite I²C kabel s njim. Uvjerite se da je I²C izlaz UVIJEK spojen na I²C ulaz. Isto se mora slijediti i za Raspberry Pi sa I²C štitom postavljenim preko njega na GPIO pinove. Preporučujemo upotrebu I²C kabela jer se negira potreba za čitanjem ispisa, lemljenja i nelagode uzrokovane čak i najmanjim klizanjem. Pomoću ovog jednostavnog plug and play kabela možete s lakoćom instalirati, zamijeniti ploče ili dodati još ploča u aplikaciju.
Napomena: Smeđa žica uvijek treba slijediti vezu uzemljenja (GND) između izlaza jednog uređaja i ulaza drugog uređaja
Internet povezivanje je ključ
Ovde imate dva izbora. Ili možete povezati Raspberry Pi na mrežu pomoću ethernet kabela ili upotrijebiti USB na WiFi adapter za WIFI povezivanje. U svakom slučaju, sve dok je povezan s internetom pokriveni ste.
Napajanje kruga
Uključite mikro USB kabel u utičnicu za napajanje Raspberry Pi. Udari i voila! Naš tim je informacija.
Povezivanje sa ekranom
HDMI kabl možemo povezati sa monitorom ili sa televizorom. Osim toga, možemo pristupiti Raspberry Pi -u bez povezivanja s monitorom pomoću daljinskog pristupa. SSH je zgodan alat za siguran daljinski pristup. Za to možete koristiti i softver PUTTY. Ova je opcija za napredne korisnike pa je ovdje nećemo detaljno opisivati.
To je ekonomična metoda ako ne želite potrošiti mnogo
Korak 3: Raspberry Pi programiranje u Pythonu
Python kod za Raspberry Pi i BME280 senzor. Dostupno je u našem Github spremištu.
Prije nego što pređete na kôd, svakako pročitajte upute date u datoteci Readme i postavite Raspberry Pi prema njemu. Samo malo vremena će vas pripremiti za postavljanje. Meteorološka stanica je objekt, bilo na kopnu ili na moru, sa instrumentima i opremom za mjerenje atmosferskih uslova za pružanje informacija za vremensku prognozu i proučavanje vremena i klime.
Kôd je jasno pred vama i u najjednostavnijem obliku koji možete zamisliti i ne biste trebali imati problema. I dalje pitajte da li postoji (Čak i ako znate hiljadu stvari, ipak pitajte nekoga ko zna).
Odavde možete kopirati i radni Python kod za ovaj senzor.
# Distribuira se sa slobodnom voljom licence.# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela. # BME280 # Ovaj kôd je dizajniran za rad s BME280_I2CS I2C mini modulom dostupnim na stranici ControlEverything.com. #
import smbus
vreme uvoza
# Nabavite I2C autobus
sabirnica = smbus. SMBus (1)
# BME280 adresa, 0x76 (118)
# Očitavanje podataka sa 0x88 (136), 24 bajta b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Pretvorite podatke
# Temp koeficijenti dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] ako je dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] ako je dig_T3> 32767: dig_T3 -= 65536
# Koeficijenti pritiska
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] ako je dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] ako je dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] ako je dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] ako je dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] ako je dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] ako je dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] ako je dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] ako je dig_P9> 32767: dig_P9 -= 65536
# BME280 adresa, 0x76 (118)
# Očitavanje podataka iz 0xA1 (161), 1 bajt dig_H1 = bus.read_byte_data (0x76, 0xA1)
# BME280 adresa, 0x76 (118)
# Očitavanje podataka iz 0xE1 (225), 7 bajtova b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Pretvorite podatke
# Koeficijenti vlažnosti dig_H2 = b1 [1] * 256 + b1 [0] ako je dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) ako dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) ako je dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] ako dig_H6> 127: dig_H6 -= 256
# BME280 adresa, 0x76 (118)
# Odaberite registar kontrolne vlažnosti, 0xF2 (242) # 0x01 (01) Prekomjerno uzorkovanje vlažnosti = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 adresa, 0x76 (118) # Odaberite Kontrolni mjerni registar, 0xF4 (244) # 0x27 (39) Brzina prekomjernog uzorkovanja tlaka i temperature = 1 # Standardni način rada bus.write_byte_data (0x76, 0xF4, 0x27) # BME280 adresa, 0x76 (118) # Odaberite registar konfiguracije, 0xF5 (245) # 0xA0 (00) Vrijeme pripravnosti = sabirnica od 1000 ms.write_byte_data (0x76, 0xF5, 0xA0)
vrijeme.spavanje (0,5)
# BME280 adresa, 0x76 (118)
# Očitavanje podataka iz 0xF7 (247), 8 bajtova # Pritisak MSB, Tlak LSB, Tlak xLSB, Temperatura MSB, Temperatura LSB # Temperatura xLSB, Vlažnost MSB, Vlažnost LSB podaci = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Pretvorite podatke o tlaku i temperaturi u 19 bita
adc_p = ((podaci [0] * 65536) + (podaci [1] * 256) + (podaci [2] & 0xF0)) / 16 adc_t = ((podaci [3] * 65536) + (podaci [4] * 256) + (podaci [5] & 0xF0)) / 16
# Pretvorite podatke o vlažnosti
adc_h = podaci [6] * 256 + podaci [7]
# Proračuni pomaka temperature
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
# Proračuni pomaka pritiska
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 pritisak = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Izračuni pomaka vlažnosti
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_)) vlažnost = var_H * (1,0 - dig_H1 * var_H / 524288,0) ako je vlažnost> 100,0: vlažnost = 100,0 elif vlažnost <0,0: vlažnost = 0,0
# Izlažite podatke na ekran
ispis "Temperatura u Celzijusima: %.2f C" %cTemp print "Temperatura u Farenhajtu: %.2f F" %fTemp otisak "Tlak: %.2f hPa" %ispis pritiska "Relativna vlažnost: %.2f %%" %vlažnosti
Korak 4: Kôd za pokretanje
Sada preuzmite (ili git povucite) kôd i otvorite ga u Raspberry Pi.
Pokrenite naredbe za kompajliranje i postavljanje koda na terminal i pogledajte izlaz na ekranu. Nakon nekoliko sekundi prikazat će se svi parametri. Nakon što se uvjerite da sve funkcionira odlično, možete razviti još neke zanimljive.
Korak 5: Korištenje u praktičnom svijetu
BME280 postiže visoke performanse u svim aplikacijama koje zahtijevaju mjerenje vlažnosti i pritiska. Ove nove aplikacije su svijest o kontekstu, npr. Otkrivanje kože, otkrivanje promjena sobe, praćenje kondicije / dobrobiti, upozorenje u pogledu suhoće ili visokih temperatura, mjerenje volumena i protoka zraka, kontrola kućne automatizacije, kontrolno grijanje, ventilacija, klimatizacija (HVAC), Internet stvari (IoT), Poboljšanje GPS-a (npr. Poboljšanje vremena do prvog popravka, mrtvo računanje, otkrivanje nagiba), unutrašnja navigacija (promjena otkrivanja poda, otkrivanje lifta), navigacija na otvorenom, aplikacije za slobodno vrijeme i sport, vremenska prognoza i indikacija okomite brzine (podizanje/sudoper) Brzina).
Korak 6: Zaključak
Nadam se da će ovaj projekt potaknuti daljnja eksperimentiranja. Izrada sofisticiranije meteorološke stanice može uključivati još neke senzore poput mjerača kiše, svjetlosnog senzora, anemometra (brzine vjetra) itd. Možete ih dodati i izmijeniti kôd. Imamo video vodič na YouTubeu koji ima osnovno funkcioniranje I²C senzora s Rasp Pi -jem. Zaista je nevjerojatno vidjeti rezultate i rad I²C komunikacije. Provjerite i vi. Zabavite se u izgradnji i učenju! Javite nam šta mislite o ovom uputstvu. Voljeli bismo napraviti neka poboljšanja ako je potrebno.
Preporučuje se:
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: 9 koraka (sa slikama)
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: LineaMeteoStazione je potpuna meteorološka stanica koja se može povezati s profesionalnim senzorima iz Sensiriona, kao i nekim Davisovim instrumentom (mjerač kiše, anemometar) Projekt je namijenjen kao DIY meteorološka stanica, ali samo zahtijeva
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: 4 koraka
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: Pozdrav svima. U ovom Instructable -u vodit ću vas kroz korake za izradu personalizirane mini meteorološke stanice. Također, koristit ćemo ThingSpeak API za postavljanje naših vremenskih podataka na njihove poslužitelje, ili koja je svrha vremenske prognoze
Lična meteorološka stanica koja koristi Raspberry Pi sa BME280 na Javi: 6 koraka
Osobna meteorološka stanica koja koristi Raspberry Pi s BME280 na Javi: Loše vrijeme uvijek izgleda gore kroz prozor. Uvijek smo bili zainteresirani za praćenje našeg lokalnog vremena i onoga što vidimo kroz prozor. Takođe smo želeli bolju kontrolu nad našim sistemom grejanja i klimatizacije. Izgradnja lične meteorološke stanice veliko je
Meteorološka stanica koja koristi Wemos D1 Mini, BME280 i Sensate .: 6 koraka
Meteorološka stanica koja koristi Wemos D1 Mini, BME280 i Sensate .: U prethodnim postovima dijelila sam različite metode za izgradnju meteorološke stanice. Ako niste provjerili, ovdje je veza. U ovom uputstvu pokazat ću kako izgraditi jednostavnu meteorološku stanicu koristeći Wemos i IoT platformu pod nazivom Sensate
Meteorološka stanica Acurite 5 u 1 koja koristi Raspberry Pi i Weewx (ostale meteorološke stanice su kompatibilne): 5 koraka (sa slikama)
Meteorološka stanica Acurite 5 u 1 koristeći Raspberry Pi i Weewx (ostale meteorološke stanice su kompatibilne): Kada sam kupio meteorološku stanicu Acurite 5 u 1, želio sam moći provjeriti vrijeme u svom domu dok sam bio odsutan. Kad sam došao kući i postavio ga, shvatio sam da moram ili povezati zaslon s računarom ili kupiti njihov pametni koncentrator