Satura rādītājs:

Inky_pHAT meteoroloģiskā stacija: 5 soļi
Inky_pHAT meteoroloģiskā stacija: 5 soļi

Video: Inky_pHAT meteoroloģiskā stacija: 5 soļi

Video: Inky_pHAT meteoroloģiskā stacija: 5 soļi
Video: метеостанция BV 641 2024, Novembris
Anonim
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT
Laika stacija Inky_pHAT

Šeit es gribētu aprakstīt ļoti vienkāršu un kompaktu laika apstākļu staciju, kuras pamatā ir Raspberry Pi Zero, kas parāda BME280 temperatūras/spiediena/mitruma sensora izmērītās vērtības uz Pimoroni Inky pHAT e-papīra/e-tintes displeja. Lai ļautu savienot sensorus un pHAT ar Pi GPIO, es starp GPIO un displeju ievietoju Pimorini Pico HAT hakeri ar divām sieviešu galvenēm. Ierīce ir izmantota vairāku sensoru piestiprināšanai, tāpēc šeit aprakstītā BME280 versija ir tikai piemērs.

Atšķirībā no LCD displejiem, e-tintes displeji saglabā attēlu pat tad, ja barošana ir izslēgta. Tāpēc tie ir ļoti labs risinājums, ja vēlaties parādīt informāciju, kas tiek atjaunināta tikai laiku pa laikam, jo īpaši, lai izveidotu ierīces ar zemu enerģijas patēriņu. Tintes pHAT vienkrāsainās/melnās versijas galvenais ieguvums ir tas, ka displeja atjaunināšana aizņem tikai vienu sekundi, nevis desmit līdz piecpadsmit sekundes, kas nepieciešamas trīs krāsu versijās. Skaties filmu.

Adafruit Blinka bibliotēka ļauj palaist Circuit Python kodu Raspberry Pi, un Circuit Python paraugi dažādiem sensoriem ir pieejami no Adafruit. Detalizētu aprakstu par to, kā instalēt Blinka un Circuit Python kodus, var atrast Adafruit vietnē. Bibliotēkas, kuras līdz šim pārbaudīju (BMP280, BME280, TSL2591, TCS34785, VEML7065, …), strādāja ļoti labi, bet dažos kodu piemēros bija nelielas problēmas.

BME280 ir sensors temperatūras, mitruma un atmosfēras spiediena mērīšanai. BMP280 izlaušanās ir pieejami no daudziem pārdevējiem, tostarp Adafruit, bet es šeit izmantoju lētu ķīniešu versiju. Lūdzu, ņemiet vērā, ka tajās tiek izmantotas dažādas i2c adreses (Adafruit: 0x77, citas: 0x76).

Izlaušanās ir savienota ar Pi ar i2c, un sensora nolasīšana ir ļoti vienkārša, izmantojot bibliotēku un piemēra kodu.

1. darbība. Izmantotie materiāli

Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli

Aveņu Pi Zero ar vīrieša galveni. Bet derētu jebkura Raspberry Pi versija.

Pimoroni tintes pHAT, melna/vienkrāsaina versija, 25 € | 22 £ | 20US $, Pimoroni.

Pimoroni Pico HAT hakeris, 2,50 € | 2 £, ar divām sieviešu galvenēm, no kurām viena ir pastiprinātāja galvene ar garākām tapām. Esmu izveidojis divas dažādas versijas, skatiet aprakstu zemāk.

BME280 izlaušanās, AZ Piegāde caur Amazon.de @ 7.50 €, pievienojot galveni.

Pagarinājuma džemperu kabeļi

Neobligāti:

USB barošanas bloks mobilajām lietojumprogrammām

Pī vai ierīces korpuss (šeit nav parādīts)

2. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
  • Lodējiet sieviešu galvenes uz hakeru Pico HAT. Pirms lodēšanas pārbaudiet pareizo orientāciju. Esmu izveidojis divas šīs versijas dažādiem mērķiem. Viens ar uz leju vērstu pastiprinātāja galveni, kas novietota priekšējā rindā, un normālu, uz augšu/uz augšu vērstu galveni aizmugurējā rindā, un versiju ar pastiprinātāju, kas vērsta uz leju aizmugurējā rindā, un taisnā leņķa sieviešu galveni priekšējā rindā. Skatīt attēlus. Pirmā versija ļauj ļoti viegli piestiprināt un apmainīt sensorus un kabeļus, savukārt versija ar uz iekšu vērstu galviņu ļauj korpusā ievietot Pi, sensoru un tintes pHAT. Varat arī pielodēt kabeļus, kas savieno GPIO un sensoru tieši ar Pico HAT hakeri, un/vai pielodēt Pico HAT hakeri tieši pie GPIO tapām. Jebkurā gadījumā izmantojiet minimālo nepieciešamo lodēšanas daudzumu.
  • Ja nepieciešams, pielodējiet galveni pie sensora.
  • Salieciet modificēto Pico HAT hakeru vienību uz Pi, pēc tam pievienojiet tintes pHAT. Ja nepieciešams, ievietojiet kādu atbalstu, piem. Putu bloks vai stand-off, tintes pHAT.
  • Pievienojiet kabeļus un sensoru, izmantojot 3V, GND, SDA un SCL portus. Ne visi sensori izturēs 5V, tāpēc, lūdzu, pārbaudiet, pirms pievienojat tos 5V portiem.
  • Instalējiet Blinka bibliotēku, pēc tam instalējiet Circuit Python BME280 bibliotēku no Adafruit.
  • Instalējiet Pimoroni tintes pHAT bibliotēku.
  • Instalējiet Python koda piemēru, kas aprakstīts vēlāk un pievienots šai pamācībai.
  • Palaidiet kodu.

3. darbība: ierīces lietošana

Ierīces lietošana
Ierīces lietošana

Ierīces lietošanai ir divas iespējas.

Šeit parādītais kods jāsāk, izmantojot pievienotu ekrānu, bet pēc tam to var palaist bez tā.

Ar nelielām koda izmaiņām varat izmantot crontab, lai veiktu mērījumus noteiktos laika punktos. Tas ļautu vēl vairāk samazināt enerģijas patēriņu. Lieliskus aprakstus, kā lietot crontab, var atrast citur.

Kopā ar barošanas bloku jūs varat izveidot mobilo ierīci un izmantot to, lai izmērītu apstākļus iekštelpās vai ārpus tām, ledusskapī, saunā, mitrinātājā, vīna pagrabā, lidmašīnā …

Izmantojot Zero W, vērtības var ne tikai parādīt displejā, bet arī nosūtīt uz serveri vai vietni, izmantojot WLAN, kā aprakstīts citur.

4. solis: BME280 skripts

BME280 skripts
BME280 skripts

Kā minēts iepriekš, jums jāinstalē bibliotēkas Adafruit Blinka un Circuit Python BME280, kā arī Pimoroni Inky pHAT bibliotēka.

Kods vispirms inicializē sensoru un tintes pHAT, pēc tam no sensora nolasa temperatūras, spiediena un mitruma vērtības un parāda tās ekrānā un e-tintes displejā. Izmantojot komandu time.sleep (), mērījumi tiek veikti katru minūti. Pielāgojiet pēc vajadzības. Iestatot valodas parametru, jūs varat mainīt rezultātu parādīšanai izmantoto valodu.

Izmantojot Inky pHAT e-ink displeju, vispirms izveidojiet attēlu, kas tiks parādīts atmiņā, pirms tas beidzot tiks pārsūtīts uz ekrānu, izmantojot komandu inkyphat.show (). Tintes pHAT bibliotēka vienkāršo procesu, piedāvājot komandas, lai uzzīmētu un formatētu tekstu, līnijas, taisnstūrus, apļus vai izmantotu fona attēlus.

Papildus izmērītajām vērtībām tiek parādīts arī mērīšanas laiks.

Lūdzu, ņemiet vērā, ka skripts, kā arī bibliotēkas ir rakstītas Python 3, tāpēc atveriet un palaidiet, izmantojot Py3 IDLE vai līdzvērtīgu.

# Skripts temperatūras/spiediena/mitruma sensoram bme280 (ne Adafruit versija) # un tintes pHAT - melnā versija # # versija 2018. gada 1. decembris, Dr H # # Nepieciešamas Adafruit Blinka un Circuit Python BME280 bibliotēkas # un Pimoroni Inky pHAT bibliotēkas importēšanas laika importēšanas datuma importēšanas paneļa importēšanas autobuss no adafruit_bme280 importēt Adafruit_BME280 no adafruit_bme280 importēt Adafruit_BME280_I2C importēt inkyphat importa sistēmu no PIL importa ImageFont inkyphat.set_colour ('melns') # b/w inky 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Atlasiet standarta fontu fontu2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Atlasiet standarta fonta datus # lang = "DE" # iestatiet valodas parametru, noklusējums ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # noklusējuma i2c adrese (Adafruit BMP280) 0x77 (noklusējums), 0x76 ķīniešu izlaušanai) # iestatīt atsauces spiedienu # nepieciešams al tituta aprēķinu, lūdzu, koriģējiet. Standarta vērtība 1013,25 hPa # manuālā ievade: #reference_hPa = ievade ("Ievadiet atsauces spiedienu hPa:") # vai # iestatiet spiedienu sākuma brīdī kā atsauci, piem. relatīvajiem augstuma mērījumiem laiks. miegs (1) # pagaidiet sekundi pirms 1. mērījuma 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # iestatiet sākotnējo mērījumu kā atskaites punktu, lai iespējotu augstuma mērījumus vērtības t = bmp.temperatūra p = bmp.spiediens h = bmp. mitrums a = bmp.altitude # aprēķināts pēc adafruit bibliotēkas no spiediena #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 - datums, vācu formāts 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 = "Spiediens:" pText_DE = "Luftdruck:" h Text_EN = "Mitrums:" hText_DE = "rel. LF: "aText_EN =" Augstums: "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: # noklusējuma angļu valodā ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # drukāšanas vērtības, lai parādītu drukas (ts) drukāt (tText, tmp, "° C") drukāt (pText, pre, "hPa") drukāt (hText, hyg, " %") print (aText, alt, "m") print () # drukas vērtības līdz tintes pHAT t1 = 5 # tab 1, frist kolonna, vienkāršo izkārtojuma optimizāciju t2 = 110 # tab 2, otrā kolonna inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # rakstīt laika zīmogu datums inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # rakstīt laika zīmogu laiks inkyphat.line ((t1, 25, 207, 25), 1, 3) # zīmējiet līniju inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, fonts2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. MELNA, fonts2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # alternatīvi parādīt aprēķināto augstumu # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, fonts2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, fonts2) inkyphat.show () time.sleep (51) # pagaidiet dažas sekundes pirms nākamajiem mērījumiem, +19 sekundes ciklā inkyphat.clear () # tukšs Tintes pHAT displeja procedūra, inkyphat.show () # klusums crontab versijai

5. darbība: BMP280 skripts

BMP280 ir ļoti līdzīgs BME280 sensoram, bet tikai mēra temperatūru un spiedienu. Skripti ir ļoti līdzīgi, taču jums ir vajadzīgas dažādas Circuit Python bibliotēkas. Šeit mitruma vietā tiek parādīts aprēķinātais augstums, pamatojoties uz atsauces spiedienu.

Pielikumā jūs atradīsit skriptu.

Ieteicams: