INHOUDSOPGAWE:

Inky_pHAT Weerstasie: 5 stappe
Inky_pHAT Weerstasie: 5 stappe

Video: Inky_pHAT Weerstasie: 5 stappe

Video: Inky_pHAT Weerstasie: 5 stappe
Video: Домашний уход за лицом после 50 лет. Советы косметолога. Антивозрастной уход за зрелой кожей. 2024, November
Anonim
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie
Inky_pHAT Weerstasie

Ek wil hier 'n baie eenvoudige en kompakte, Raspberry Pi Zero-gebaseerde weerstasie beskryf, wat die waardes wat gemeet word met 'n BME280 temperatuur/druk/humiditeitsensor op 'n Pimoroni Inky pHAT e-papier/e-ink-skerm vertoon. Om die verbinding van sensors en die pHAT met die GPIO van die Pi moontlik te maak, het ek 'n Pimorini Pico HAT -hacker geplaas met twee vroulike koppe tussen die GPIO en die skerm. Die toestel is gebruik om verskeie sensors aan te sluit, dus die BME280 -weergawe wat hier beskryf word, is slegs 'n voorbeeld.

Anders as LCD-skerms, behou e-ink-skerms die beeld, selfs al is die krag afgeskakel. Daarom is dit 'n baie goeie oplossing as u inligting wil vertoon wat van tyd tot tyd bygewerk word, veral om toestelle met lae energie te bou. Die grootste voordeel van die monochroom/swart weergawe van die Inky pHAT is dat die opdatering van die skerm slegs ongeveer een sekonde neem, in plaas van tien tot vyftien sekondes wat die drie-kleur weergawes benodig. Kyk film.

Met die Blinka -biblioteek van Adafruit kan u Circuit Python -kode op die Raspberry Pi gebruik, en Circuit Python -monsters vir 'n wye verskeidenheid sensors is by Adafruit beskikbaar. 'N Gedetailleerde beskrywing van die installering van Blinka en die Circuit Python -kodes kan op die Adafruit -webwerf gevind word. Die biblioteke wat ek tot dusver getoets het (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) werk baie goed, terwyl daar enkele probleme in sommige van die voorbeeldkodes was.

BME280 is 'n sensor om temperatuur, humiditeit en atmosferiese druk te meet. BMP280 -uitbrekings is beskikbaar by baie verskaffers, insluitend Adafruit, maar ek het hier 'n goedkoop Chinese weergawe gebruik. Hou in gedagte dat hierdie verskillende i2c -adresse gebruik (Adafruit: 0x77, ander: 0x76).

Die uitbreek is deur i2c aan die Pi gekoppel, en die lees van die sensor is baie eenvoudig met behulp van die biblioteek en voorbeeldkode.

Stap 1: Gebruikte materiaal

Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word

'N Framboos Pi Zero, met 'n manlike kopstuk daarby. Maar enige Raspberry Pi -weergawe sou dit doen.

'N Pimoroni Inky pHAT, swart/monochroom weergawe, 25 € | 22 £ | 20US $, by Pimoroni.

'N Pimoroni Pico HAT -hacker, 2,50 € | 2 £, met twee vroulike kopstukke daarby, een daarvan 'n booster -kop met langer penne. Ek het twee verskillende weergawes gebou, sien beskrywing hieronder.

'N BME280 -uitbraak, AZ -aflewering via Amazon.de teen 7,50 €, met kopstuk daarby.

Verlengkabel

Opsioneel:

'N USB -kragpakket vir mobiele toepassings

'N Behuizing vir die Pi of die toestel (word nie hier getoon nie)

Stap 2: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
  • Soldeer die vroulike opskrifte aan die Pico HAT -hacker. Voordat u soldeer, moet u kyk of dit korrek is. Ek het twee weergawes hiervan gebou, vir verskillende doeleindes. Een met die afwaartse booster-kop in die voorste ry en 'n normale kop op/af in die agterste ry, en 'n weergawe met die afwaartse booster-kop in die agterste ry, en 'n reghoekige vroulike kop in die voorste ry. Sien beelde. Met die eerste weergawe is dit baie maklik om sensors en kabels aan te sluit en uit te ruil, terwyl die weergawe met die kop na binne kan Pi, sensor en Inky pHAT in 'n behuising omsluit. Alternatiewelik kan u die kabels wat GPIO en sensor verbind direk aan die Pico HAT hacker soldeer en/of die Pico HAT hacker direk aan die GPIO penne soldeer. Gebruik in elk geval die minimale hoeveelheid soldeer wat benodig word.
  • Soldeer die kopstuk aan die sensor, indien nodig.
  • Stapel die aangepaste Pico HAT -hacker -eenheid op die Pi, en voeg dan die Inky pHAT by. Voeg indien nodig ondersteuning by, bv. 'N Skuimblok of afstande vir die Inky pHAT.
  • Bevestig die kabels en die sensor met die 3V-, GND-, SDA- en SCL -poorte. Nie alle sensors sal 5V oorleef nie, dus kyk eers voordat u dit aan 5V -poorte koppel.
  • Installeer die Blinka -biblioteek en installeer dan die Circuit Python BME280 -biblioteek van Adafruit.
  • Installeer die Inky pHAT -biblioteek van Pimoroni.
  • Installeer die voorbeeld Python -kode wat in 'n latere stap beskryf is en wat hierby aangeheg is.
  • Begin die kode.

Stap 3: Gebruik die toestel

Die gebruik van die toestel
Die gebruik van die toestel

Daar is twee opsies om die toestel te gebruik.

Die kode soos hier getoon, word begin met 'n aangehegte skerm, maar kan dan sonder werk.

Met geringe wysigings aan die kode, kan u crontab gebruik om metings op gedefinieerde tydspunte uit te voer. Dit sal die kragverbruik nog verder verminder. Uitstekende beskrywings oor hoe om crontab te gebruik, kan elders gevind word.

Saam met 'n kragpakket kan u 'n mobiele toestel bou en dit gebruik om die toestande binne of buite te meet, in die yskas, in die sauna, u humidor, die wynkelder, in 'n vliegtuig, …

As u 'n Zero W gebruik, kan u nie net die waardes op die skerm vertoon nie, maar dit ook stuur na 'n bediener of u webwerf via WLAN, soos elders beskryf.

Stap 4: Die BME280 -script

Die BME280 -skrif
Die BME280 -skrif

Soos voorheen genoem, moet u die Adafruit Blinka en Circuit Python BME280 -biblioteke sowel as die Pimoroni Inky pHAT -biblioteek installeer.

Die kode initialiseer eers die sensor en Inky pHAT, lees dan die temperatuur-, druk- en humiditeitswaardes van die sensor en vertoon dit op die skerm en e-ink-skerm. Met behulp van die opdrag time.sleep () word elke minuut metings gedoen. Pas aan soos benodig. Deur 'n taalparameter in te stel, kan u die taal verander om die resultate te vertoon.

Deur die Inky pHAT e-ink-skerm te gebruik, bou u eers die beeld wat in die geheue vertoon moet word, voordat dit uiteindelik na die skerm oorgedra word met die opdrag inkyphat.show (). Die Inky pHAT -biblioteek vergemaklik die proses en bied opdragte om teks, lyne, reghoeke, sirkels te teken en te formateer of om agtergrondprente te gebruik.

Benewens die gemete waardes, word die metingstyd ook vertoon.

Hou in gedagte dat die skrif sowel as die biblioteke in Python 3 geskryf is, dus maak dit oop en gebruik Py3 IDLE of ekwivalent.

# 'N Skrip vir die bme280 temperatuur/druk/humiditeit sensor (nie -Adafruit weergawe) # en die inky pHAT - swart weergawe # # weergawe 01 Desember 2018, dr H # # Vereis Adafruit Blinka en Circuit Python BME280 biblioteke # en die Pimoroni Inky pHAT biblioteek invoer tyd invoer datum tyd invoer bord invoer busio van adafruit_bme280 invoer Adafruit_BME280 van adafruit_bme280 invoer Adafruit_BME280_I2C invoer inkyphat invoer sys van PIL invoer ImageFont inkyphat.set_colour ('swart') # vir s/w inky phat inkyphat (180) 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Kies standaard font font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Kies standaard lettertipe data # lang = "DE" # stel taal parameter, default ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # default i2c adres (vir Adafruit BMP280) 0x77 (standaard), 0x76 vir Chinese uitbreek) # stel verwysingsdruk # benodig vir al titute berekening, pas asseblief aan. Standaardwaarde 1013,25 hPa # handmatige invoer: #reference_hPa = invoer ("Gee verwysingsdruk in hPa:") # of # stel druk by aanvangstyd as verwysing, bv. vir relatiewe hoogtemetings tyd. slaap (1) # wag 'n sekonde voor 1ste meting j = 0 pres_norm_sum = 0 terwyl j binne bereik (5): # neem vyf metings om verwysingswaarde pres_norm_sum = pres_norm_sum + bmp.druk j = j + te definieer 1 keer. Slaap (1) reference_hPa = (pres_norm_sum/j) # stel eerste meting as verwysingspunt om hoogte metings moontlik te maak bmp.sea_level_pressure (float (reference_hPa) print () terwyl True: #loop vir ewig, verander vir crontab-weergawe # gemeet waardes t = bmp.temperatuur p = bmp.druk h = bmp.vochtigheid a = bmp.hoogte # bereken deur adafruit biblioteek uit druk #tydstempel ts = datetime.datetime.now () # tydstempel ts0_EN = '{:%Y-% m-%d} '. formaat (ts) # tydstempel - datum, EN -formaat ts0_DE =' {:%d.%m.%Y} '. formaat (ts) # tydstempel - datum, Duitse formaat ts1 =' {: %H:%M:%S} '. Formaat (ts) # tydstempel - tyd tmp = "{0: 0.1f}". Formaat (t) pre = "{0: 0.1f}". Formaat (p) hyg = "{0: 0.1f}". Formaat (h) alt="{0: 0.1f}". Formaat (a) tText = "Temp.:" pText_EN = "Druk:" pText_DE = "Luftdruck:" h Text_EN = "Humiditeit:" hText_DE = "t.o.v. LF: "aText_EN =" Altitude: "aText_DE =" Höhe üNN: " # exact: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = h: # standaard afrikaans ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # drukwaardes om druk (ts) druk (tText, tmp, "° C") afdruk (pText, pre, "hPa") druk (hText, hyg, " %") print (aText, alt, "m") print () # drukwaardes na Inky pHAT t1 = 5 # tab 1, kolom binne, maak die optimalisering van uitleg t2 = 110 # tab 2, tweede kolom inkyphat, vereenvoudig. duidelik () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # skryf tydstempel datum inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # skryf tydstempel tyd inkyphat.line ((t1, 25, 207, 25), 1, 3) # trek 'n lyn 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. SWART, lettertipe2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # alternatiewelik vertoon berekende hoogte # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # wag 'n paar sekondes voor die volgende metings, +19 sek. per siklus inkyphat.clear () # leë Inky pHAT-vertoonprosedure, inkyphat.show () # stilte vir crontab-weergawe

Stap 5: Die BMP280 -script

Die BMP280 is baie soortgelyk aan die BME280 -sensor, maar meet net temperatuur en druk. Die skrifte is baie soortgelyk, maar u benodig verskillende Circuit Python -biblioteke. Hier word in plaas van die humiditeit 'n berekende hoogte, gebaseer op 'n verwysingsdruk, vertoon.

Hierby vind u die draaiboek.

Aanbeveel: