Mundarija:

Inky_pHAT ob -havo stantsiyasi: 5 qadam
Inky_pHAT ob -havo stantsiyasi: 5 qadam

Video: Inky_pHAT ob -havo stantsiyasi: 5 qadam

Video: Inky_pHAT ob -havo stantsiyasi: 5 qadam
Video: pimoroni inky pHAT test 2024, Noyabr
Anonim
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi
Inky_pHAT ob -havo stantsiyasi

Men bu erda juda oddiy va ixcham, Raspberry Pi Zero-ga asoslangan ob-havo stantsiyasini tasvirlab bermoqchiman, u BME280 harorat/bosim/namlik sensori bilan o'lchanadigan qiymatlarni Pimoroni Inky pHAT elektron qog'oz/siyoh displeyida aks ettiradi. Datchiklar va pHAT ni Pi GPIO -ga ulashiga ruxsat berish uchun men GPIO va displey o'rtasida ikkita ayol sarlavhali Pimorini Pico HAT xakerini joylashtirdim. Qurilma bir nechta sensorlarni ulash uchun ishlatilgan, shuning uchun bu erda tasvirlangan BME280 versiyasi misol.

LCD displeylardan farqli o'laroq, elektron siyohli displeylar quvvat o'chirilgan bo'lsa ham tasvirni saqlaydi. Vaqti -vaqti bilan yangilanib turadigan ma'lumotni, ayniqsa, kam quvvatli qurilmalarni yaratish uchun ko'rsatishni istasangiz, ular juda yaxshi echimdir. Ink pHAT-ning monoxrom/qora versiyasining asosiy afzalligi shundaki, displeyni yangilash uch rangli versiyada talab qilinadigan o'n-o'n besh soniya o'rniga atigi bir soniyani oladi. Kino ko'rish.

Adafruit -ning Blinka kutubxonasi Raspberry Pi -da Circuit Python kodini ishga tushirishga imkon beradi va Adafruit -dan turli xil sensorlar uchun Circuit Python namunalari mavjud. Blinka va Circuit Python kodlarini qanday o'rnatishni batafsil tavsifini Adafruit veb -saytida topishingiz mumkin. Men hozirgacha sinovdan o'tkazgan kutubxonalar (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) juda yaxshi ishlagan, ba'zi misol kodlarida kichik muammolar bo'lgan.

BME280 - harorat, namlik va atmosfera bosimini o'lchaydigan sensor. BMP280 -ni ko'plab sotuvchilar, shu jumladan Adafruit -dan olish mumkin, lekin men bu erda xitoyning arzon versiyasini ishlatardim. Shuni yodda tutingki, ular turli xil i2c manzillaridan foydalanadi (Adafruit: 0x77, boshqalar: 0x76).

Ajratish Pi ga i2c orqali ulangan va kutubxona va misol kodi yordamida sensorni o'qish juda oddiy.

1 -qadam: Ishlatilgan materiallar

Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar

Raspberry Pi Zero, erkak boshi biriktirilgan. Ammo Raspberry Pi -ning har qanday versiyasi shunday bo'ladi.

Pimoroni Ink pHAT, qora/monoxromli versiya, 25 € | 22 £ | 20US $, Pimoroni.

Pimoroni Pico HAT xakerlari, 2,50 € | 2 £, ikkita ayol sarlavhasi biriktirilgan, ulardan biri uzunroq pinli mustahkamlovchi bosh. Menda ikki xil versiya bor, quyida tavsifga qarang.

BME280 uzilishi, AZ. Amazon.de orqali 7.50 €, sarlavha biriktirilgan.

Uzayish o'tish kabellari

Majburiy emas:

USB quvvat to'plami, mobil ilovalar uchun

Pi yoki qurilma uchun korpus (bu erda ko'rsatilmagan)

2 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
  • Ayol sarlavhalarini Pico HAT xakeriga lehimlang. Lehimlashdan oldin, to'g'ri yo'nalishni tekshiring. Men turli maqsadlar uchun buning ikkita versiyasini tuzdim. Old qatorga pastga qaragan ko'taruvchi sarlavhasi qo'yilgan, orqa qatorda odatiy, yuqoriga/yuqoriga qarab, pastki qatorga ko'taruvchi va orqa qatorga to'g'ri burchakli ayol boshli versiya.. Rasmlarni ko'rish. Birinchi versiya datchiklar va kabellarni ulash va almashtirishga juda oson, ichkariga qaragan sarlavhali versiya esa Pi, sensor va Inky pHATni korpusga joylashtirish imkonini beradi. Shu bilan bir qatorda, GPIO va sensorni bog'laydigan kabellarni to'g'ridan -to'g'ri Pico HAT xakeriga va/yoki Pico HAT xakerini to'g'ridan -to'g'ri GPIO pinlariga lehimlashingiz mumkin. Qanday bo'lmasin, kerakli miqdordagi lehimdan foydalaning.
  • Agar kerak bo'lsa, sarlavhani sensorga lehimlang.
  • O'zgartirilgan Pico HAT xakerlar blokini Pi -ga joylashtiring, so'ngra pH pH -ni qo'shing. Agar kerak bo'lsa, qo'llab -quvvatlovchini kiriting, masalan. Ink pHAT uchun ko'pikli blok yoki to'xtash joylari.
  • 3V, GND, SDA va SCL portlari yordamida kabellar va sensorni ulang. Hamma datchiklar ham 5Vdan omon qolmaydi, shuning uchun ularni 5V portlariga ulashdan oldin tekshiring.
  • Blinka kutubxonasini o'rnating, so'ngra Adafruit -dan Circuit Python BME280 kutubxonasini o'rnating.
  • Pimoroni -dan Inky pHAT kutubxonasini o'rnating.
  • Keyingi bosqichda tasvirlangan va bu ko'rsatmaga biriktirilgan misol Python kodini o'rnating.
  • Kodni ishga tushiring.

3 -qadam: Qurilmadan foydalanish

Qurilmadan foydalanish
Qurilmadan foydalanish

Qurilmani ishlatishning ikkita varianti mavjud.

Bu erda ko'rsatilgan kod biriktirilgan ekran yordamida ishga tushirilishi kerak, lekin keyin ularsiz ishlashi mumkin.

Kodga ozgina o'zgartirishlar kiritilganda, siz crontab -dan foydalanib, belgilangan vaqtda o'lchashni amalga oshirishingiz mumkin. Bu energiya sarfini yanada kamaytirish imkonini beradi. Crontab -dan qanday foydalanish haqida ajoyib tavsiflarni boshqa joyda topish mumkin.

Quvvat to'plami bilan birgalikda siz mobil qurilmani yasashingiz va undan ichkarida yoki tashqarida, muzlatgichda, saunada, namlagichingizda, vino qabrida, samolyotda bo'lgan sharoitni o'lchashingiz mumkin.

Zero W -dan foydalanib, siz nafaqat qiymatlarni ko'rsatishingiz, balki ularni WLAN orqali serverga yoki veb -saytingizga yuborishingiz mumkin.

4 -qadam: BME280 skript

BME280 skriptlari
BME280 skriptlari

Yuqorida aytib o'tganimizdek, siz Adafruit Blinka va Circuit Python BME280 kutubxonalarini hamda Pimoroni Inky pHAT kutubxonasini o'rnatishingiz kerak.

Kod birinchi navbatda sensor va Ink pHAT ni ishga tushiradi, so'ng sensordan harorat, bosim va namlik qiymatlarini o'qiydi va ularni ekran va elektron siyoh displeyda ko'rsatadi. Time.sleep () buyrug'i yordamida o'lchovlar har daqiqada olinadi. Zarur bo'lganda sozlang. Til parametrini o'rnatish orqali siz natijalarni ko'rsatish uchun ishlatiladigan tilni o'zgartirishingiz mumkin.

Inky pHAT elektron siyoh displeyidan foydalanib, siz birinchi navbatda inkyphat.show () buyrug'i yordamida ekranga o'tkazilmasdan oldin tasvirni xotirada aks ettirish uchun qurasiz. Inky pHAT kutubxonasi jarayonni soddalashtirib, matn, chiziqlar, to'rtburchaklar, doiralar chizish va formatlash yoki fon rasmlarini ishlatish buyruqlarini taklif qiladi.

O'lchangan qiymatlardan tashqari, o'lchash vaqti ham ko'rsatiladi.

Shuni yodda tutingki, skript va kutubxonalar Python 3 da yozilgan, shuning uchun Py3 IDLE yoki unga tenglashtirilgan holda oching va ishga tushiring.

# Bme280 harorat/bosim/namlik sensori uchun skript (Adafruit bo'lmagan versiya) # va siyoh pHAT - qora versiya # # versiya 01 Dekabr 2018, Dr H # # Adafruit Blinka va Circuit Python BME280 kutubxonalarini talab qiladi # va Pimoroni siyohi pHAT kutubxonasi import vaqti import datetime import kartasi adafruit_bme280 dan import busio import adafruit_bme280 dan Adafruit_BME280 import 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Standart shriftni tanlang2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Standart shrift ma'lumotlarini tanlang # lang = "DE" # til parametrini o'rnating, standart ("") -> ingliz tili = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, manzil = 0x76) # standart i2c manzili (Adafruit BMP280 uchun) 0x77 (standart), 0x76 xitoylik sindirish uchun) # mos yozuvlar bosimini belgilang # al uchun zarur titul hisobi, iltimos sozlang. Standart qiymat 1013,25 hPa # qo'lda kiritish: #reference_hPa = kiritish ("hPa ga mos yozuvlar bosimini kiriting") # yoki # bosimni boshlanish vaqtida mos yozuvlar sifatida o'rnating, masalan. nisbiy balandlik o'lchovlari uchun vaqt. uyqu (1) # 1 -o'lchovdan oldin bir soniya kuting 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # bmp.sea_level_pressure = float (reference_hPa) print () ni o'lchash uchun boshlang'ich o'lchovni mos yozuvlar nuqtasi sifatida o'rnating, rost: # abadiy ishlaydi, crontab-versiya # uchun o'lchanadi qadriyatlar t = bmp.temperaturasi p = bmp. bosim h = bmp. namlik a = bmp. balandlik # adafruit kutubxonasi tomonidan bosimdan hisoblab chiqilgan # timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. format (ts) # vaqt tamg'asi - sana, EN formati ts0_DE =' {:%d.%m.%Y} '. format (ts) # vaqt tamg'asi - sana, nemis formati ts1 =' {: %H:%M:%S} '. Format (ts) # vaqt tamg'asi - vaqt 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 = "Bosim:" pText_DE = "Luftdruck:" h Text_EN = "Namlik:" hText_DE = "rel. LF: "aText_EN =" Balandlik: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, lekin Oddiy Höhen Null agar (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText_: # standart inglizcha ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # bosma qiymatlari bosma (ts) bosib chiqarish (tText, tmp, "° C") chop etish (pText, pre, "hPa") chop etish (hText, hyg, " %") print (aText, alt, "m") print () # bosma qiymatlari Inky pHAT t1 = 5 # tab 1, frist ustuni, t2 = 110 # tab 2, ikkinchi ustunli inkifatning tartibini optimallashtirishni osonlashtiradi. tozalash ((t1, 25, 207, 25), 1, 3) # inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp +) "° C"), inkyphat. BLACK, shrift2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, shrift2) inkyphat.text ((t2, 55), (pre + "hPa"), inkifat. QORA, shrift2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, shrift2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # muqobil ravishda hisoblangan balandlikni ko'rsatish # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, shrift2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, shrift2) inkyphat.show () time.sleep (51) # Keyingi o'lchovlardan oldin bir necha soniya kutib turing, tsikl uchun +19 soniya inkyphat.clear () # bo'sh siyoh pHAT ko'rsatish tartibi, inkyphat.show () # crontab-versiya uchun # sukunat

5 -qadam: BMP280 skript

BMP280 BME280 sensoriga juda o'xshaydi, lekin faqat harorat va bosimni o'lchaydi. Skriptlar juda o'xshash, lekin sizga turli xil Circuit Python kutubxonalari kerak. Bu erda namlik o'rniga mos yozuvlar bosimiga asoslangan hisoblangan balandlik ko'rsatiladi.

Siz skriptni topasiz.

Tavsiya: