Obsah:
- Krok 1: Použitý materiál
- Krok 2: Zostavenie
- Krok 3: Používanie zariadenia
- Krok 4: Skript BME280
- Krok 5: Skript BMP280
Video: Meteorologická stanica Inky_pHAT: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Tu by som chcel popísať veľmi jednoduchú a kompaktnú meteorologickú stanicu Raspberry Pi Zero, ktorá zobrazuje hodnoty namerané snímačom teploty/tlaku/vlhkosti BME280 na displeji e-papiera/e-atramentu Pimoroni Inky pHAT. Aby bolo možné pripojiť senzory a pHAT k GPIO Pi, umiestnil som medzi GPIO a displej hacker Pimorini Pico HAT s dvoma ženskými hlavičkami. Zariadenie slúžilo na pripojenie niekoľkých senzorov, takže tu popísaná verzia BME280 je len príkladom.
Na rozdiel od displejov LCD, displeje s elektronickým atramentom zachovávajú obraz, aj keď je vypnuté napájanie. Preto sú veľmi dobrým riešením, ak chcete zobraziť informácie, ktoré sa z času na čas aktualizujú, najmä na stavbu nízkoenergetických zariadení. Hlavnou výhodou monochromatickej/čiernej verzie Inky pHAT je, že aktualizácia displeja trvá iba jednu sekundu, namiesto desať až pätnásť sekúnd, ktoré vyžadujú trojfarebné verzie. Pozri film.
Knižnica Blinka spoločnosti Adafruit umožňuje prevádzkovať kód Circuit Python na Raspberry Pi a od spoločnosti Adafruit sú k dispozícii vzorky Circuit Python pre širokú škálu senzorov. Podrobný popis inštalácie kódov Blinka a Circuit Python nájdete na webovej stránke Adafruit. Knižnice, ktoré som doteraz testoval (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) fungovali veľmi dobre, pričom v niektorých ukážkových kódoch boli menšie problémy.
BME280 je senzor na meranie teploty, vlhkosti a atmosférického tlaku. Breakout BMP280 je k dispozícii od mnohých predajcov vrátane Adafruit, ale ja som tu používal lacnú čínsku verziu. Uvedomte si, že tieto používajú rôzne adresy i2c (Adafruit: 0x77, ostatné: 0x76).
Breakout je k Pi pripojený i2c a čítanie senzora je veľmi jednoduché pomocou knižnice a ukážkového kódu.
Krok 1: Použitý materiál
Raspberry Pi Zero, s pripojenou mužskou hlavičkou. Postačí však akákoľvek verzia Raspberry Pi.
A Pimoroni Inky pHAT, čierna/monochromatická verzia, 25 € | 22 £ | 20US $, v spoločnosti Pimoroni.
Hacker Pimoroni Pico HAT, 2,50 € | 2 £, s dvoma ženskými hlavičkami, z ktorých jedna je pomocná hlavička s dlhšími kolíkmi. Zostavil som dve rôzne verzie, pozri popis nižšie.
Breakout BME280, AZ Delivery via Amazon.de @ 7,50 €, with header header.
Predĺžovacie prepojovacie káble
Voliteľné:
Napájací zdroj USB pre mobilné aplikácie
Kryt pre Pi alebo zariadenie (tu nie je zobrazené)
Krok 2: Zostavenie
- Ženské hlavičky spájkujte s hackerom Pico HAT. Pred spájkovaním skontrolujte správnu orientáciu. Zostavil som dve verzie tohto softvéru na rôzne účely. Jedna so zosilňovacím záhlavím smerujúcim nadol umiestneným v prvom rade a normálnym záhlavím v smere nahor/proti smeru jazdy v zadnom rade a verzia so zosilňovacím záhlavím smerujúcim nadol v zadnom rade a pravouhlým ženským záhlavím v prvom rade. Viď obrázky. Prvá verzia umožňuje veľmi jednoduché pripojenie a výmenu senzorov a káblov, zatiaľ čo verzia s vnútorným záhlavím dovoľuje uzavrieť Pi, senzor a Inky pHAT do krytu. Alternatívne môžete káble spájajúce GPIO a senzor spájkovať priamo s hackerom Pico HAT a/alebo spájať hacker Pico HAT priamo s kolíkmi GPIO. V každom prípade použite minimálne množstvo potrebnej spájky.
- V prípade potreby spájajte hlavičku so senzorom.
- Upravenú hackerskú jednotku Pico HAT naskladajte na Pi a potom pridajte Inky pHAT. Ak je to potrebné, vložte nejakú podporu, napr. Penový blok alebo stojky pre Inky pHAT.
- Pripojte káble a snímač pomocou portov 3V, GND, SDA a SCL. Nie všetky senzory vydržia 5 V, preto ich pred pripojením k 5 V portom skontrolujte.
- Nainštalujte knižnicu Blinka a potom nainštalujte knižnicu Circuit Python BME280 od spoločnosti Adafruit.
- Nainštalujte si knižnicu Inky pHAT od Pimoroni.
- Nainštalujte si ukážkový kód Pythonu popísaný v neskoršom kroku a priložený k tomuto návodu.
- Spustite kód.
Krok 3: Používanie zariadenia
Existujú dve možnosti použitia zariadenia.
Kód, ako je tu znázornený, sa musí spustiť pomocou priloženej obrazovky, ale potom môže bežať bez neho.
S malými úpravami kódu môžete použiť crontab na vykonávanie meraní v definovaných časových bodoch. To by umožnilo ešte viac znížiť spotrebu energie. Vynikajúci popis použitia crontabu nájdete inde.
V spojení s napájacím zdrojom môžete zostaviť mobilné zariadenie a použiť ho na meranie podmienok vo vnútri alebo vonku, v chladničke, saune, humidore, vínnej pivnici, v lietadle, …
Použitím nuly W môžete hodnoty nielen zobrazovať na displeji, ale tiež ich odosielať na server alebo na svoju webovú stránku prostredníctvom siete WLAN, ako je popísané inde.
Krok 4: Skript BME280
Ako už bolo spomenuté, musíte nainštalovať knižnice Adafruit Blinka a Circuit Python BME280, ako aj knižnicu Pimoroni Inky pHAT.
Kód najskôr inicializuje senzor a Inky pHAT, potom zo senzora načíta hodnoty teploty, tlaku a vlhkosti a zobrazí ich na obrazovke a displeji elektronického atramentu. Pomocou príkazu time.sleep () sa merania vykonávajú každú minútu. Upravte podľa potreby. Nastavením parametra jazyka môžete zmeniť jazyk používaný na zobrazenie výsledkov.
Pomocou e-ink displeja Inky pHAT najskôr vytvoríte obrázok, ktorý sa má zobraziť v pamäti, a potom sa nakoniec prenesie na obrazovku pomocou príkazu inkyphat.show (). Knižnica Inky pHAT zjednodušuje proces a ponúka príkazy na kreslenie a formátovanie textu, čiar, obdĺžnikov, kruhov alebo používanie obrázkov na pozadí.
Okrem nameraných hodnôt je zobrazený aj čas merania.
Majte na pamäti, že skript aj knižnice sú napísané v jazyku Python 3, preto ho otvorte a spustite pomocou Py3 IDLE alebo ekvivalentného.
# Skript pre snímač teploty/tlaku/vlhkosti bme280 (verzia nie pre Adafruit) # a atramentový pHAT - čierna verzia # # verzia pre 1. december 2018, Dr H # # Vyžaduje knižnice Adafruit Blinka a Circuit Python BME280 # a Pimoroni Inky knižnica pHAT import času importu datetime import tabule import busio z adafruit_bme280 import Adafruit_BME280 z adafruit_bme280 import Adafruit_BME280_I2C import inkyphat import sys z PIL import ImageFont inkyphat.set_colour ('black') # for b/w inky phat inkyphat.set 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Vyberte štandardné písmo font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Vyberte štandardné údaje písma # lang = "DE" # nastavte parameter jazyka, default ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # default i2c address (for Adafruit BMP280) 0x77 (default), 0x76 pre čínsky odpočinok) # nastavte referenčný tlak # potrebný pre al titute výpočet, upravte. Štandardná hodnota 1013,25 hPa # manuálne zadanie: #reference_hPa = vstup ("Zadajte referenčný tlak v hPa:") # alebo # nastavte tlak v čase spustenia ako referenčný, napr. na meranie relatívnej výšky čas.spánok (1) # počkajte sekundu pred 1. meraním j = 0 pres_norm_sum = 0, kým j v rozsahu (5): # vykonajte päť meraní na definovanie referenčnej hodnoty pres_norm_sum = pres_norm_sum + bmp. tlak j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # set inital measurement as reference point to allow height measurement bmp.sea_level_pressure = float (reference_hPa) print () while True: #runs forever, modify for crontab-version # měření hodnoty t = bmp.teplota p = bmp.tlak h = bmp.vlhkosť a = bmp.altitude # vypočítané knižnicou adafruit z tlaku #timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. format (ts) # timestamp - date, EN format ts0_DE =' {:%d.%m.%Y} '. format (ts) # timestamp - date, German format ts1 =' {: %H:%M:%S} '. Format (ts) # timestamp - time tmp = "{0: 0,1f}". Format (t) pre = "{0: 0,1f}". Format (p) hyg = "{0: 0,1f}". Formát (h) alt="{0: 0,1f}". Formát (a) tText = "Teplota.:" pText_EN = "Tlak:" pText_DE = "Luftdruck:" h Text_EN = "Vlhkosť:" hText_DE = "rel. LF: "aText_EN =" Nadmorská výška: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText: # predvolená angličtina ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # tlačových hodnôt na zobrazenie tlače (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # tlačové hodnoty pre Inky pHAT t1 = 5 # tab 1, prvý stĺpec, zjednodušuje optimalizáciu rozloženia t2 = 110 # tab 2, druhý stĺpec inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # dátum časovej pečiatky inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # čas časovej pečiatky inkyphat.line ((t1, 25, 207, 25), 1, 3) # nakreslite čiaru 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. ČIERNY, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # alternatívne zobrazenie vypočítanej výšky # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # počkajte niekoľko sekúnd pred ďalšími meraniami, +19 s na cyklus inkyphat.clear () # prázdny postup zobrazenia Inky pHAT, inkyphat.show () # ticho pre verziu crontab
Krok 5: Skript BMP280
BMP280 je veľmi podobný senzoru BME280, ale iba meria teplotu a tlak. Skripty sú veľmi podobné, ale potrebujete rôzne knižnice Circuit Python. Tu sa namiesto vlhkosti zobrazuje vypočítaná výška na základe referenčného tlaku.
V prílohe nájdete skript.
Odporúča:
Profesionálna meteorologická stanica s použitím ESP8266 a ESP32 DIY: 9 krokov (s obrázkami)
Profesionálna meteorologická stanica využívajúca ESP8266 a ESP32 DIY: LineaMeteoStazione je kompletná meteorologická stanica, ktorú je možné prepojiť s profesionálnymi senzormi od spoločnosti Sensirion, ako aj s niektorými komponentmi Davis Instrument (Rain Gauge, Anemometer) Projekt je zameraný ako meteorologická stanica pre domácich majstrov, ale vyžaduje
Satelitná meteorologická stanica: 5 krokov
Satelitná meteorologická stanica: Tento projekt je určený pre ľudí, ktorí chcú zbierať svoje vlastné údaje o počasí. Dokáže merať rýchlosť a smer vetra, teplotu a vlhkosť vzduchu. Je tiež schopný počúvať meteorologické satelity obiehajúce okolo Zeme raz za 100 minút. Ja budem
Fanair: meteorologická stanica pre vašu izbu: 6 krokov (s obrázkami)
Fanair: meteorologická stanica pre vašu izbu: Existuje nespočetné množstvo spôsobov, ako zistiť aktuálne počasie, ale potom poznáte počasie iba vonku. Čo keď chcete vedieť počasie vo svojom dome, v konkrétnej miestnosti? To sa pokúšam vyriešiť týmto projektom. Fanair používa niekoľko
Online meteorologická stanica: 6 krokov
Online meteorologická stanica: Neuveríte! Ale od začiatku. Pracoval som na ďalšej verzii CoolPhone a množstvo chýb, ktoré som urobil pri navrhovaní, ma prinútilo dať si od nej pauzu. Obul som si topánky a vyšiel von. Ukázalo sa, že je zima, a tak som
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ú