Tartalomjegyzék:

Inky_pHAT Weather Station: 5 lépés
Inky_pHAT Weather Station: 5 lépés

Videó: Inky_pHAT Weather Station: 5 lépés

Videó: Inky_pHAT Weather Station: 5 lépés
Videó: Weather Monitor - Raspberry Pi Zero W with InkypHAT 2024, November
Anonim
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás
Inky_pHAT meteorológiai állomás

Itt egy nagyon egyszerű és kompakt, Raspberry Pi Zero alapú időjárás-állomást szeretnék leírni, amely a BME280 hőmérséklet/nyomás/páratartalom érzékelő által mért értékeket jeleníti meg egy Pimoroni Inky pHAT e-papír/e-tinta kijelzőn. Annak érdekében, hogy az érzékelőket és a pHAT -ot a Pi GPIO -jához lehessen csatlakoztatni, a GPIO és a kijelző közé helyeztem egy Pimorini Pico HAT hackert, két női fejléccel. Az eszközt több érzékelő csatlakoztatására használták, így az itt leírt BME280 verzió csak egy példa.

Az LCD-kijelzőkkel ellentétben az e-ink kijelzők akkor is megőrzik a képet, ha a készüléket kikapcsolták. Ezért nagyon jó megoldást jelentenek, ha időnként frissített információkat szeretne megjeleníteni, különösen alacsony energiafogyasztású eszközök gyártásához. Az Inky pHAT monokróm/fekete változatának fő előnye, hogy a kijelző frissítése mindössze egy másodpercet vesz igénybe, ahelyett, hogy a háromszínű változatok tíz-tizenöt másodpercet igényelnének. Filmet nézni.

Az Adafruit Blinka könyvtára lehetővé teszi Circuit Python kód futtatását a Raspberry Pi -n, és a Circuit Python minták az érzékelők széles választékához elérhetők az Adafruit -tól. A Blinka és a Circuit Python kódok telepítésének részletes leírása megtalálható az Adafruit weboldalán. Az általam tesztelt könyvtárak (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) nagyon jól működtek, míg néhány példakódban kisebb problémák merültek fel.

A BME280 érzékelő hőmérséklet, páratartalom és légköri nyomás mérésére. A BMP280 kitörések sok gyártótól kaphatók, beleértve az Adafruitot is, de én itt egy olcsó kínai verziót használtam. Kérjük, vegye figyelembe, hogy ezek különböző i2c címeket használnak (Adafruit: 0x77, mások: 0x76).

A kitörést az i2c köti össze a Pi -vel, és az érzékelő leolvasása nagyon egyszerű a könyvtár és a példakód használatával.

1. lépés: Használt anyagok

Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok
Felhasznált anyagok

A Raspberry Pi Zero, egy férfi fejléccel. De minden Raspberry Pi verzió megteszi.

A Pimoroni Inky pHAT, fekete/monokróm változat, 25 € | 22 £ | 20US $, a Pimoroni -nál.

Egy Pimoroni Pico HAT hacker, 2,50 € | 2 £, két női fejléccel, az egyik hosszabbító fejjel, hosszabb csapokkal. Két különböző verziót készítettem, lásd az alábbi leírást.

BME280 kitörés, AZ Szállítás az Amazon.de -n keresztül @ 7,50 €, fejléccel együtt.

Hosszabbító jumper kábelek

Választható:

USB tápegység mobil alkalmazásokhoz

A Pi vagy az eszköz háza (itt nem látható)

2. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
  • Forrasztja a női fejléceket a Pico HAT hackerhez. Forrasztás előtt ellenőrizze a helyes tájolást. Ennek két verzióját készítettem, különböző célokra. Az egyikben a lefelé néző emlékeztető fejléc az első sorban, a normál, felfelé/felfelé mutató fejléc a hátsó sorban van, és egy változat, amely a lefelé néző emlékeztető fejlécet tartalmazza a hátsó sorban, és derékszögű női fejléc az első sorban. Lásd a képeket. Az első verzió nagyon egyszerűen lehetővé teszi az érzékelők és kábelek csatlakoztatását és cseréjét, míg a befelé néző fejléccel ellátott változat lehetővé teszi a Pi, az érzékelő és az Inky pHAT beépítését a házba. Alternatív megoldásként forraszthatja a GPIO -t és az érzékelőt összekötő kábeleket közvetlenül a Pico HAT hackerhez, és/vagy forraszthatja a Pico HAT hackert közvetlenül a GPIO csapokhoz. Mindenesetre használja a minimális szükséges forrasztási mennyiséget.
  • Ha szükséges, forrasztja a fejlécet az érzékelőhöz.
  • Rakja össze a módosított Pico HAT hacker egységet a Pi -n, majd adja hozzá az Inky pHAT -ot. Ha szükséges, helyezzen be néhány támogatást, pl. Habblokk vagy stand-off, a tinta pHAT-hoz.
  • Csatlakoztassa a kábeleket és az érzékelőt a 3V, GND, SDA és SCL portok segítségével. Nem minden érzékelő éli túl az 5 V -ot, ezért ellenőrizze, mielőtt csatlakoztatja őket 5 V -os portokhoz.
  • Telepítse a Blinka könyvtárat, majd telepítse az Adafruit Circuit Python BME280 könyvtárát.
  • Telepítse a Pimoroni Inky pHAT könyvtárát.
  • Telepítse a későbbi lépésben leírt és ehhez az utasításhoz csatolt példa Python -kódot.
  • Futtassa a kódot.

3. lépés: Az eszköz használata

A készülék használata
A készülék használata

Az eszköz használatának két lehetősége van.

Az itt látható kódot egy csatlakoztatott képernyő segítségével kell elindítani, de utána anélkül is futhat.

A kód kisebb módosításával a crontab segítségével méréseket végezhet meghatározott időpontokban. Ez lehetővé tenné az energiafogyasztás további csökkentését. A crontab használatának kiváló leírása máshol található.

Egy tápegységgel összeépítve mobileszközt építhet, és felhasználhatja a körülmények mérésére bent vagy kívül, a hűtőszekrényben, a szaunában, a humidorban, a borospincében, repülőgépen,….

A Zero W használatával nemcsak megjelenítheti az értékeket a kijelzőn, hanem elküldheti azokat egy szerverre vagy webhelyére WLAN -on keresztül, ahogyan azt máshol leírtuk.

4. lépés: A BME280 szkript

A BME280 forgatókönyv
A BME280 forgatókönyv

Amint korábban említettük, telepítenie kell az Adafruit Blinka és Circuit Python BME280 könyvtárakat, valamint a Pimoroni Inky pHAT könyvtárat.

A kód először inicializálja az érzékelőt és a tinta pHAT-t, majd kiolvassa az érzékelő hőmérsékletét, nyomását és páratartalmát, és megjeleníti azokat a képernyőn és az e-ink kijelzőn. A time.sleep () paranccsal minden percben méréseket végeznek. Állítsa be szükség szerint. Egy nyelvi paraméter beállításával megváltoztathatja az eredmények megjelenítéséhez használt nyelvet.

Az Inky pHAT e-ink kijelző használatával először a memóriában megjelenítendő képet kell létrehoznia, mielőtt végül az inkyphat.show () paranccsal átkerül a képernyőre. Az Inky pHAT könyvtár leegyszerűsíti a folyamatot, és parancsokat kínál szövegek, vonalak, téglalapok, körök rajzolásához és formázásához, vagy háttérképek használatához.

A mért értékek mellett a mérési idő is megjelenik.

Ne feledje, hogy a szkript és a könyvtárak a Python 3 -ban vannak írva, ezért nyissa meg és futtassa a Py3 IDLE vagy ezzel egyenértékű program segítségével.

# Szkript a bme280 hőmérséklet/nyomás/páratartalom érzékelőhöz (nem Adafruit verzió) # és a tintás pHAT - fekete verzió # # verzió 2018. december 01, Dr. H # # Adafruit Blinka és Circuit Python BME280 könyvtárak és a Pimoroni Inky pHAT könyvtár import idő import dátum idő import tábla import busio from adafruit_bme280 import Adafruit_BME280 from adafruit_bme280 import Adafruit_BME280_I2C import inkyphat import sys from PIL import ImageFont inkyphat.set_colour ('black') # for b/w inky phat inhatpp 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Válassza ki a normál betűtípust2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Válassza ki a szabványos betűtípust alapértelmezett ("") -> english lang = "HU" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # alapértelmezett i2c -cím (Adafruit BMP280 esetén) 0x77 (alapértelmezett), 0x76 a kínai kitöréshez) # beállított referencianyomás # szükséges az al titute számítás, kérjük módosítsa. Szabványos érték 1013,25 hPa # kézi bemenet: #reference_hPa = input ("Adja meg a referencianyomást hPa -ban:") # vagy # beállított nyomás a kezdő időpontban referenciaként, pl. relatív magasságmérésekhez. alvás (1) # várjon egy másodpercet az első mérés előtt 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # a kezdeti mérést referenciapontként állítja be, hogy lehetővé tegye a magasságmérést értékek t = bmp.hőmérséklet p = bmp.nyomás h = bmp.páratartalom a = bmp.altitude # az adafruit könyvtár által nyomásból számítva # időbélyeg ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. format (ts) # timestamp - date, EN format ts0_DE =' {:%d.%m.%Y} '. format (ts) # timestamp - dátum, német formátum ts1 =' {: %H:%M:%S} '. Format (ts) # timestamp - time 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 = "Pressure:" pText_DE = "Luftdruck:" h Text_EN = "Páratartalom:" hText_DE = "rel. LF: "aText_EN =" Magasság: "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 = hText: # alapértelmezett magyar ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # nyomtatási értékek megjelenítéséhez print (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # nyomtatási értékek tintás pHAT t1 = 5 # tab 1, frist oszlop, egyszerűsíti az elrendezés optimalizálását t2 = 110 # tab 2, második oszlop inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # írási időbélyeg dátuma inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # írási időbélyeg ideje inkyphat.line ((t1, 25, 207, 25), 1, 3) # húzzon vonalat 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. FEKETE, betűtípus2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # vagy a számított magasság megjelenítése # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # várjon néhány másodpercet a következő mérések előtt, +19 mp ciklusonként inkyphat.clear () # üres Inky pHAT megjelenítési eljárás, inkyphat.show () # csend a crontab-verzió számára

5. lépés: A BMP280 szkript

A BMP280 nagyon hasonlít a BME280 érzékelőhöz, de csak méri a hőmérsékletet és a nyomást. A szkriptek nagyon hasonlóak, de különböző Circuit Python könyvtárakra van szükség. Itt a páratartalom helyett egy referencianyomáson alapuló számított magasság jelenik meg.

Csatolva megtalálja a forgatókönyvet.

Ajánlott: