Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: Montaža
- Korak 3: Korištenje uređaja
- Korak 4: Skripta BME280
- Korak 5: Skripta BMP280
Video: Meteorološka stanica Inky_pHAT: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Ovdje bih želio opisati vrlo jednostavnu i kompaktnu meteorološku stanicu zasnovanu na Raspberry Pi Zero, koja prikazuje vrijednosti izmjerene BME280 senzorom temperature/tlaka/vlažnosti na zaslonu Pimoroni Inky pHAT e-papira/e-tinte. Kako bih omogućio povezivanje senzora i pHAT -a s GPIO -om Pi, postavio sam Pimorini Pico HAT haker s dva ženska zaglavlja pričvršćena između GPIO -a i zaslona. Uređaj je korišten za priključivanje nekoliko senzora, pa je ovdje opisana verzija BME280 samo primjer.
Za razliku od LCD zaslona, zasloni s e-tintom zadržavaju sliku čak i ako je napajanje isključeno. Stoga su vrlo dobro rješenje ako želite prikazati informacije koje se povremeno ažuriraju, posebno za izradu niskoenergetskih uređaja. Glavna prednost jednobojne/crne verzije Inky pHAT-a je ta što ažuriranje zaslona traje samo jednu sekundu, umjesto deset do petnaest sekundi koliko zahtijevaju verzije u tri boje. Pogledajte film.
Adafruit -ova biblioteka Blinka omogućuje pokretanje Circuit Python koda na Raspberry Pi -u, a uzorci Circuit Python -a za razne senzore dostupni su u Adafruit -u. Detaljan opis kako instalirati Blinka i Circuit Python kodove možete pronaći na web stranici Adafruit. Knjižnice koje sam do sada testirao (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) radile su vrlo dobro, dok je u nekim primjerima bilo manjih problema.
BME280 je senzor za mjerenje temperature, vlažnosti i atmosferskog tlaka. Proboji BMP280 dostupni su od mnogih prodavača, uključujući Adafruit, ali ovdje sam koristio jeftinu kinesku verziju. Imajte na umu da oni koriste različite i2c adrese (Adafruit: 0x77, drugi: 0x76).
Proboj je povezan s Pi pomoću i2c, a čitanje senzora vrlo je jednostavno pomoću knjižnice i primjera koda.
Korak 1: Korišteni materijali
Raspberry Pi Zero, s muškim zaglavljem. Ali svaka Raspberry Pi verzija bi bila dovoljna.
Pimoroni Inky pHAT, crna/jednobojna verzija, 25 € | 22 £ | 20US $, u Pimoroniju.
Pimoroni Pico HAT haker, 2,50 € | 2 £, s pričvršćenim dvama ženskim zaglavljima, od kojih je jedno zaglavlje za pojačavanje s dužim iglama. Napravio sam dvije različite verzije, pogledajte opis ispod.
Proboj BME280, AZ Dostava putem Amazon.de @ 7,50 €, s priloženim zaglavljem.
Kabeli kratkospojnika za produljenje
Izborno:
USB napajanje za mobilne aplikacije
Kućište za Pi ili uređaj (nije prikazano ovdje)
Korak 2: Montaža
- Lemiti ženska zaglavlja hakeru Pico HAT. Prije lemljenja provjerite ispravnu orijentaciju. Napravio sam dvije verzije ovoga, za različite svrhe. Jedan sa zaglavljem za povišenje pritiska okrenutim prema dolje u prednjem redu i normalnim zaglavljem gore/prema gore u zadnjem redu, a verzija s pojačivačem zaglavlja okrenuta prema dolje u zadnjem redu i pravokutnim zaglavljem za žene u prednjem redu. Pogledajte slike. Prva verzija omogućuje vrlo jednostavno povezivanje i izmjenu senzora i kabela, dok verzija s zaglavljem prema unutra omogućuje zatvaranje Pi, senzora i Inky pHAT -a u kućište. Alternativno, možete lemiti kabele koji spajaju GPIO i senzor izravno na Pico HAT haker i/ili lemiti Pico HAT haker izravno na GPIO pinove. U svakom slučaju koristite minimalnu potrebnu količinu lemljenja.
- Zalijepite zaglavlje na senzor, ako je potrebno.
- Složite izmijenjenu hakersku jedinicu Pico HAT na Pi, a zatim dodajte Inky pHAT. Ako je potrebno, umetnite potporu, npr. Blok od pjene ili izdvojeni sastojci, za Inky pHAT.
- Spojite kabele i senzor pomoću priključaka 3V, GND, SDA i SCL. Neće svi senzori preživjeti 5V pa provjerite prije nego što ih spojite na 5V priključke.
- Instalirajte knjižnicu Blinka, a zatim instalirajte knjižnicu Circuit Python BME280 s Adafruit -a.
- Instalirajte Inky pHAT knjižnicu iz Pimoronija.
- Instalirajte primjer Python koda koji je opisan u kasnijem koraku i priložen ovom uputstvu.
- Pokrenite kôd.
Korak 3: Korištenje uređaja
Postoje dvije mogućnosti korištenja uređaja.
Kôd kao što je prikazano ovdje će se pokrenuti pomoću prikačenog zaslona, ali bi se zatim mogao pokrenuti i bez njega.
Uz manje izmjene koda, možete koristiti crontab za izvođenje mjerenja u definiranim vremenskim točkama. To bi omogućilo dodatno smanjenje potrošnje energije. Izvrsni opisi upotrebe crontaba mogu se pronaći na drugom mjestu.
Zajedno s napajanjem možete izgraditi mobilni uređaj i koristiti ga za mjerenje uvjeta unutar ili vani, u hladnjaku, u sauni, vašem humidoru, vinskom podrumu, u avionu,….
Korištenjem Zero W ne možete samo prikazati vrijednosti na zaslonu, već ih i poslati putem poslužitelja ili vaše web stranice putem WLAN -a, kako je opisano na drugom mjestu.
Korak 4: Skripta BME280
Kao što je već spomenuto, morate instalirati knjižnice Adafruit Blinka i Circuit Python BME280, kao i knjižnicu pHAT Pimoroni Inky.
Kôd prvo inicijalizira senzor i Inky pHAT, zatim očitava vrijednosti temperature, tlaka i vlažnosti sa senzora i prikazuje ih na ekranu i zaslonu e-tinte. Pomoću naredbe time.sleep () mjerenja se vrše svake minute. Podesite prema potrebi. Postavljanjem parametra jezika možete promijeniti jezik koji se koristi za prikaz rezultata.
Pomoću zaslona Inky pHAT e-tinta najprije sastavite sliku za prikaz u memoriji prije nego što se konačno prenese na zaslon pomoću naredbe inkyphat.show (). Knjižnica Inky pHAT pojednostavljuje proces, nudeći naredbe za crtanje i oblikovanje teksta, linija, pravokutnika, krugova ili korištenje pozadinskih slika.
Osim izmjerenih vrijednosti, prikazuje se i vrijeme mjerenja.
Imajte na umu da su skripta, kao i biblioteke, napisane na Pythonu 3, pa ih otvorite i pokrenite koristeći Py3 IDLE ili ekvivalent.
# Skripta za senzor temperature/tlaka/vlažnosti bme280 (inačica koja nije Adafruit) # i tintni pHAT - crna verzija # # verzija 01. prosinca 2018, Dr H # # Zahtijeva biblioteke Adafruit Blinka i Circuit Python BME280 # i Pimoroni Inky pHAT knjižnica vrijeme uvoza datum datum -uvoz ploča uvoz busio iz adafruit_bme280 uvoz Adafruit_BME280 iz adafruit_bme280 uvoz Adafruit_BME280_I2C uvoz inkyphat uvoz sistema iz PIL -a uvoz ImageFont inkyphat.set_colour ('crno') # za b/w inky pton # obrnuto 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Odaberite standardni font font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Odaberite standardni podatak o fontu # lang = "DE" # postavite parametar jezika, default ("") -> engleski lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, adresa = 0x76) # zadana i2c adresa (za Adafruit BMP280) 0x77 (zadano), 0x76 za kineski proboj) # zadani referentni tlak # potreban za al izračun naslova, prilagodite. Standardna vrijednost 1013,25 hPa # ručni unos: #reference_hPa = ulaz ("Unesite referentni tlak u hPa:") # ili # postavite tlak u vrijeme početka kao referencu, npr. za mjerenje relativne visine time.sleep (1) # pričekajte sekundu prije prvog mjerenja j = 0 pres_norm_sum = 0 dok je j u rasponu (5): # napravite pet mjerenja za definiranje referentne vrijednosti pres_norm_sum = pres_norm_sum + bmp.pritisak j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # postavite početno mjerenje kao referentnu točku za omogućavanje mjerenja visine bmp.sea_level_pressure = float (reference_hPa) print () dok je True: # radi zauvijek, izmijenite za crontab-verziju # izmjereno vrijednosti t = bmp.temperatura p = bmp.pritisak h = bmp.vlažnost a = bmp.visina # izračunata u biblioteci adafruit iz tlaka #timestamp ts = datetime.datetime.now () # vremenska oznaka ts0_EN = '{:%Y-% m-%d} '. format (ts) # vremenska oznaka - datum, EN format ts0_DE =' {:%d.%m.%Y} '. format (ts) # vremenska oznaka - datum, njemački format ts1 =' {: %H:%M:%S} '. Format (ts) # vremenska oznaka - vrijeme tmp = "{0: 0.1f}". Format (t) pre = "{0: 0.1f}". Format (p) hyg = "{0: 0.1f}". Format (h) alt="{0: 0.1f}". Format (a) tText = "Temp.:" pText_EN = "Tlak:" pText_DE = "Luftdruck:" h Text_EN = "Vlažnost:" hText_DE = "rel. LF: "aText_EN =" Nadmorska visina: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = hText_E: # zadani engleski ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # vrijednosti ispisa za prikaz ispisa (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # ispis vrijednosti na Inky pHAT t1 = 5 # tab 1, prvi stupac, pojednostavljuje optimizaciju izgleda t2 = 110 # tab 2, drugi stupac inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # zapis vremenske oznake datuma inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # vrijeme upisivanja vremenske oznake inkyphat.line ((t1, 25, 207, 25), 1, 3) # povucite liniju inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. CRNI, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # alternativno prikazuje izračunatu visinu # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # pričekajte nekoliko sekundi prije sljedećih mjerenja, +19 sekundi po ciklusu inkyphat.clear () # prazan postupak prikaza Inky pHAT, inkyphat.show () # tišina za verziju crontab
Korak 5: Skripta BMP280
BMP280 je vrlo sličan BME280 senzoru, ali samo mjeri temperaturu i tlak. Skripte su vrlo slične, ali trebate različite knjižnice Circuit Python. Ovdje se umjesto vlažnosti prikazuje izračunata visina, temeljena na referentnom tlaku.
U privitku ćete pronaći skriptu.
Preporučeni:
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: 9 koraka (sa slikama)
Profesionalna meteorološka postaja pomoću ESP8266 i ESP32 DIY: LineaMeteoStazione je potpuna meteorološka stanica koja se može povezati s profesionalnim senzorima tvrtke Sensirion, kao i nekim Davisovim instrumentom (mjerač kiše, anemometar) Projekt je namijenjen kao DIY meteorološka stanica, ali samo zahtijeva
HC-12 Meteorološka stanica na daljinu i DHT senzori: 9 koraka
HC-12 daljinska meteorološka stanica na daljinu i DHT senzori: U ovom ćemo vodiču naučiti kako napraviti udaljenu meteorološku stanicu pomoću dva dht senzora, HC12 modula i I2C LCD zaslona. Pogledajte video
Satelitska meteorološka stanica: 5 koraka
Satelitska meteorološka stanica: Ovaj je projekt namijenjen ljudima koji žele prikupiti vlastite vremenske podatke. Može mjeriti brzinu i smjer vjetra, temperaturu i vlažnost zraka. Također je u stanju slušati svakih 100 minuta vremenske satelite koji kruže oko Zemlje. Ja ću
NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)
Vremenska postaja NaTaLia: Arduino meteorološka stanica na solarni pogon učinila je to na pravi način: Nakon godinu dana uspješnog rada na 2 različite lokacije, dijelim svoje planove projekta meteoroloških stanica na solarni pogon i objašnjavam kako se razvila u sustav koji zaista može opstati dugo vremena razdoblja iz solarne energije. Ako pratite
DIY meteorološka stanica i senzorska stanica WiFi: 7 koraka (sa slikama)
DIY meteorološka stanica i WiFi senzorska stanica: U ovom projektu ću vam pokazati kako stvoriti meteorološku stanicu zajedno sa stanicom sa WiFi senzorom. Senzorska stanica mjeri lokalne podatke o temperaturi i vlažnosti i šalje ih putem WiFi -a meteorološkoj postaji. Meteorološka stanica tada prikazuje t