Мазмуну:

Inky_pHAT Аба ырайы бекети: 5 кадам
Inky_pHAT Аба ырайы бекети: 5 кадам

Video: Inky_pHAT Аба ырайы бекети: 5 кадам

Video: Inky_pHAT Аба ырайы бекети: 5 кадам
Video: Примерка двухъярусных кроватей в новом японском поезде со спальными местами | Шингу - Киото 2024, Ноябрь
Anonim
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы
Inky_pHAT Аба ырайы станциясы

Мен бул жерде Pimoroni Inky pHAT e-paper/e-ink дисплейинде BME280 температура/басым/нымдуулук сенсору менен өлчөнгөн баалуулуктарды көрсөтүүчү Raspberry Pi Zero негизиндеги аба ырайы станциясын сүрөттөп бергим келет. Сенсорлордун жана pHATтын Pi GPIO менен туташуусуна уруксат берүү үчүн мен GPIO менен дисплейдин ортосуна тиркелген эки аял башы бар Pimorini Pico HAT хакерин койдум. Түзмөк бир нече сенсорлорду тиркөө үчүн колдонулган, ошондуктан бул жерде сүрөттөлгөн BME280 версиясы жөн гана мисал.

ЖК дисплейлерден айырмаланып, e-ink дисплейлери электр өчүрүлгөн болсо да сүрөттү сактайт. Мезгил -мезгили менен жаңыртылып турган маалыматты көрсөтүүнү кааласаңыз, алар абдан жакшы чечим, айрыкча аз энергия керектөөчү түзүлүштөрдү куруу үчүн. Сыягы pHAT монохромдуу/кара версиясынын негизги артыкчылыгы-дисплейди жаңыртуу үч түстүү версиялар талап кылган он-он беш секундага созулбастан, болгону бир секундга созулат. Кино көрүү.

Adafruitтин Блинка китепканасы Raspberry Piде Circuit Python кодун иштетүүгө мүмкүндүк берет жана Adafruitтен көптөгөн сенсорлор үчүн Circuit Python үлгүлөрү жеткиликтүү. Blinka жана Circuit Python коддорун кантип орнотуунун толук сүрөттөмөсүн Adafruit веб -сайтынан тапса болот. Мен буга чейин тестирлеген китепканалар (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) абдан жакшы иштеп жаткан, ал эми кээ бир мисал коддорунда кичине көйгөйлөр болгон.

BME280 - бул температураны, нымдуулукту жана атмосфералык басымды өлчөөчү сенсор. BMP280 бузулушу көптөгөн сатуучулардан, анын ичинде Adafruitтен да бар, бирок мен бул жерде кытайдын арзан версиясын колдонуп жүрдүм. Сураныч, булар ар кандай i2c даректерин колдонуп жатканын билиңиз (Adafruit: 0x77, башкалары: 0x76).

Break2 i2c аркылуу Pi менен туташкан жана сенсорду окуу китепкана жана мисал кодун колдонуу менен абдан жөнөкөй.

1 -кадам: Колдонулган материалдар

Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар
Колдонулган материалдар

A Raspberry Pi Zero, эркек башы тиркелген. Бирок Raspberry Piнин кайсы версиясы болбосун жасайт.

A Pimoroni Inky pHAT, кара/монохромдуу версия, 25 € | 22 £ | 20US $, Pimoroni -де.

Pimoroni Pico HAT хакери, 2.50 € | 2 £, эки аялдын башы тиркелген, алардын бири узунураак төөнөгүчтөрү бар. Менде эки башка версия бар, төмөндөгү сүрөттөмөнү караңыз.

Бир BME280 үзүлүшү, AZ. Amazon.com аркылуу жеткирүү @ 7.50 €, башы тиркелген.

Узартуу секирүүчү кабелдери

Кошумча:

USB кубаттуулугу, мобилдик тиркемелер үчүн

Пи же түзмөк үчүн корпус (бул жерде көрсөтүлгөн эмес)

2 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
  • Аялдардын башын Pico HAT хакерине кошуңуз. Лайкоо алдында туура багытты текшериңиз. Мен ар кандай максаттар үчүн мунун эки версиясын түздүм. Алдыңкы катарда ылдый караган өстүрүүчү баш жана арткы катарда кадимки, өйдө/караган баш аталыш, арткы катарда ылдый караган өстүрүүчү башы бар версия жана алдыңкы сапта тик бурчтуу аял баш. Сүрөттөрдү көрүү. Биринчи версия сенсорлорду жана кабелдерди туташтырууга жана алмаштырууга мүмкүндүк берет, ал эми баштын ичине караган версиясы коробкага Pi, сенсор жана Inky pHATти кошууга мүмкүндүк берет. Же болбосо, GPIO менен сенсорду туташтырган кабелдерди Pico HAT хакерине жана/же Pico HAT хакерине GPIO казыктарына түз туташтырсаңыз болот. Кандай болбосун, керектүү минималдуу сумманы колдонуңуз.
  • Зарыл болсо, башты сенсорго кошуңуз.
  • Өзгөртүлгөн Pico HAT хакердик бирдигин Pi'ге салыңыз, андан кийин Inky pHAT кошуңуз. Керек болсо, колдоо көрсөтүңүз, мис. Inky pHAT үчүн көбүк блогу же стенддер.
  • 3V, GND, SDA жана SCL портторун колдонуп, кабелдерди жана сенсорду тиркеңиз. Бардык сенсорлор 5В жашабайт, андыктан аларды 5В портторуна туташтыруудан мурун текшериңиз.
  • Blinka китепканасын орнотуңуз, андан кийин Adafruitтен Circuit Python BME280 китепканасын орнотуңуз.
  • Pimoroniден Inky pHAT китепканасын орнотуңуз.
  • Кийинки кадамда сүрөттөлгөн жана бул нускамага тиркелген мисал Python кодун орнотуңуз.
  • Кодду иштетүү.

3 -кадам: Түзмөктү колдонуу

Түзмөктү колдонуу
Түзмөктү колдонуу

Аппаратты колдонуунун эки варианты бар.

Бул жерде көрсөтүлгөн код тиркелген экрандын жардамы менен башталат, бирок андан кийин эле иштей алат.

Кодго анча -мынча өзгөртүүлөр киргизилгенде, сиз crontabды белгиленген убакыт чекиттеринде өлчөө үчүн колдоно аласыз. Бул электр энергиясын керектөөнү дагы да азайтууга мүмкүндүк берет. Crontabды кантип колдонуу керектигин башка жактан тапса болот.

Кубат пакети менен бирге сиз мобилдик түзмөк куруп, анын ичинде же сыртында, муздаткычта, саунада, нымдуу бөлмөсүндө, шарап жертөлөсүндө, учактагы шарттарды өлчөө үчүн колдонсоңуз болот.

Zero Wди колдонуу менен сиз баалуулуктарды дисплейде гана көрсөтпөстөн, башка жерде сүрөттөлгөндөй WLAN аркылуу серверге же веб -сайтыңызга жөнөтө аласыз.

4 -кадам: BME280 Script

BME280 скрипти
BME280 скрипти

Жогоруда айтылгандай, сиз Adafruit Blinka жана Circuit Python BME280 китепканаларын, ошондой эле Pimoroni Inky pHAT китепканасын орнотушуңуз керек.

Код алгач сенсор менен Inky pHATти баштап, андан кийин сенсордун температурасын, басымын жана нымдуулугун баалайт жана экранда жана электрондук сыя дисплейде көрсөтөт. Time.sleep () буйругун колдонуп, өлчөөлөр мүнөт сайын алынат. Керек болгондо тууралаңыз. Тил параметрин коюу менен, сиз жыйынтыктарды көрсөтүү үчүн колдонулган тилди өзгөртө аласыз.

Inky pHAT e-ink дисплейин колдонуу менен, сиз адегенде inkyphat.show () буйругун колдонуп экранга өткөрүлө электе, сүрөттү эс тутумда көрсөтөсүз. Inky pHAT китепканасы процессти жөнөкөйлөтүп, текстти, сызыктарды, тик бурчтуктарды, чөйрөлөрдү тартууга жана форматтоого же фондук сүрөттөрдү колдонууга буйруктарды сунуштайт.

Ченелген баалуулуктардан тышкары, өлчөө убактысы да көрсөтүлөт.

Сураныч, скрипт жана китепканалар Python 3те жазылганын эстен чыгарбаңыз, андыктан Py3 IDLE же эквивалентин колдонуп ачыңыз.

# Bme280 температура/басым/нымдуулук сенсорунун скрипти (Adafruit эмес версиясы) # жана сыя pHAT - кара версия # # версиясы Dec 01 2018, Dr H # # Adafruit Blinka жана Circuit Python BME280 китепканаларын талап кылат # жана Pimoroni Inky pHAT китепканасынын импорттук убактысын импорттоо datetime импорттук тактаны импорттоо busio -дан adafruit_bme280 -дан импорттоо Adafruit_BME280 -дан adafruit_bme280 -дан импорттоого Adafruit_BME280_I2C импорттук инкифатты импорттоо системасынан PIL импорттоо ImageFont inkyphat.set_colour ('кара') # үчүн b/w.кирүү фаталык дисплейде 180 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Standard font font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Standard font font # lang = "DE" # set language parameter, default ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # демейки i2c дареги (Adafruit BMP280 үчүн) 0x77 (демейки), 0x76 кытайдын бузулушу үчүн) # маалымдама басымын коюу # ал үчүн талап кылынат титулду эсептөө, тууралаңыз. Стандарттык мааниси 1013.25 hPa # кол менен киргизүү: #reference_hPa = киргизүү ("hPaдагы шилтеме басымын киргизиңиз:") # же # басымды баштоо учурунда шилтеме катары, мис. салыштырмалуу бийиктикти өлчөө үчүн time.sleep (1) # 1 -өлчөөгө чейин бир секунд күт 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # бийиктиктин өлчөөлөрүн иштетүү үчүн шилтеме пункту катары баштапкы өлчөөнү орнотуу bmp.sea_level_pressure = float (reference_hPa) print () True: #runs түбөлүккө, crontab-version # ченелген үчүн өзгөртүү баалуулуктар t = bmp.temperature p = bmp.pressure h = bmp. humidity a = bmp.altitude # adafruit китепканасы тарабынан кысымдан эсептелинет # timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. формат (ts) # timestamp - дата, EN форматы ts0_DE =' {:%d.%m.%Y} '. формат (ts) # timestamp - дата, немис форматы ts1 =' {: %H:%M:%S} '. Формат (ts) # убакыт белгиси - убакыт tmp = "{0: 0.1f}". Формат (t) pre = "{0: 0.1f}". Формат (p) hyg = "{0: 0.1f}". Формат (h) alt="{0: 0.1f}". Формат (a) tText = "Темп.:" pText_EN = "Кысым:" pText_DE = "Luftdruck:" h Text_EN = "Нымдуулук:" hText_DE = "rel. LF: "aText_EN =" Бийиктик: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, a Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText_: # демейки англисче ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # басып чыгаруу (ts) басып чыгаруу (tText, tmp, "° C") басып чыгаруу (pText, pre, "hPa") басып чыгаруу (hText, hyg, " %") print (aText, alt, "m") print () # басып чыгаруу баалуулуктары Inky pHAT t1 = 5 # tab 1, frist мамычасы, t2 = 110 # tab 2, экинчи мамычанын сияпатын оптималдаштырууну жөнөкөйлөтөт. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # timestamp күнүн жазуу inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # убакыт тамгасын жазуу inkyphat.line ((t1, 25, 207, 25), 1, 3) # сызык чийүү 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. КАРА, шрифт2) inkyphat.текст ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # альтернативалуу түрдө эсептелген бийиктикти көрсөтүү # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # кийинки өлчөөлөргө чейин бир нече секунд күтө туруңуз, циклга +19 сек inkyphat.clear () # бош Inky pHAT дисплейинин процедурасы, inkyphat.show () # crontab-версиясы үчүн унчукпоо

5 -кадам: BMP280 Script

BMP280 BME280 сенсоруна абдан окшош, бирок жөн гана температураны жана басымды өлчөйт. Скрипттер абдан окшош, бирок сизге ар кандай Circuit Python китепканалары керек. Бул жерде нымдуулуктун ордуна эсептөөчү басымдын негизинде эсептелген бийиктик көрсөтүлөт.

Тиркелгенден кийин сценарийди табасыз.

Сунушталууда: