Satura rādītājs:
- 1. darbība. Izmantotie materiāli
- 2. solis: montāža
- 3. darbība: ierīces lietošana
- 4. solis: BME280 skripts
- 5. darbība: BMP280 skripts
Video: Inky_pHAT meteoroloģiskā stacija: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Š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
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
- 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š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
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:
Tweerstationneke A.k.a. Holandes meteoroloģiskā stacija: 4 soļi
Tweerstationneke A.k.a. Holandiešu meteoroloģiskā stacija: Manu tēti vienmēr interesē jaunākās ziņas un jaunākā laika informācija. Tā es nonācu līdz ideālajai dzimšanas dienas dāvanai, kad viņam kļuva 76 gadi: neliela nepārtraukta laika stacija bez muļķībām, tā visu dienu mierīgi sēž stūrī un sniedz
Hanging Gear meteoroloģiskā stacija: 7 soļi (ar attēliem)
Hanging Gear meteoroloģiskā stacija: Šajā pamācībā es jums parādīšu, kā izveidot savu piekarināmo laika apstākļu staciju, kas ir izgatavota no CNC lāzergrieztām MDF detaļām. Pakāpju motors darbina katru pārnesumu, un Arduino veic temperatūras un mitruma mērījumus, izmantojot DHT
IoT meteoroloģiskā stacija ar GOS uzraudzību: 6 soļi
IoT meteoroloģiskā stacija ar GOS monitoringu: šajā pamācībā es parādīju, kā izveidot lietu interneta (IoT) laika staciju, kontrolējot gaistošos organiskos savienojumus (GOS). Šim projektam es izstrādāju komplektu “dari pats” (DIY). Aparatūra un programmatūra ir atvērtā koda
Personīgā meteoroloģiskā stacija, izmantojot Raspberry Pi ar BME280 Java: 6 soļi
Personīgā meteoroloģiskā stacija, izmantojot Raspberry Pi ar BME280 Java: slikti laika apstākļi vienmēr izskatās sliktāki pa logu. Mēs vienmēr esam bijuši ieinteresēti uzraudzīt vietējos laika apstākļus un to, ko redzam pa logu. Mēs arī vēlējāmies labāk kontrolēt savu apkures un gaisa kondicionēšanas sistēmu. Personīgās meteoroloģiskās stacijas izveide ir skaista
Meteoroloģiskā stacija NaTaLia: ar saules enerģiju darbināma meteoroloģiskā stacija, kas veikta pareizi: 8 soļi (ar attēliem)
Meteoroloģiskā stacija NaTaLia: Arduino ar saules enerģiju darbināma meteoroloģiskā stacija Pareizi darīts: Pēc viena gada veiksmīgas darbības divās dažādās vietās es dalos savos ar saules enerģiju darbināmos laika staciju projektu plānos un paskaidroju, kā tā kļuva par sistēmu, kas patiešām var izdzīvot ilgu laiku no saules enerģijas. Ja sekojat