Mündəricat:

Inky_pHAT Hava İstasyonu: 5 addım
Inky_pHAT Hava İstasyonu: 5 addım

Video: Inky_pHAT Hava İstasyonu: 5 addım

Video: Inky_pHAT Hava İstasyonu: 5 addım
Video: Лучший из ЛУЧШИХ???. Радиоприемник TECSUN PL680 ПОЛНЫЙ ОБЗОР!!! #tecsun 2024, Noyabr
Anonim
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası
Inky_pHAT Hava Stansiyası

Burada, Pimoroni Inky pHAT e-kağız/e-mürəkkəb ekranda BME280 temperatur/təzyiq/rütubət sensoru ilə ölçülən dəyərləri əks etdirən çox sadə və yığcam, Raspberry Pi Zero əsaslı bir hava stansiyasını təsvir etmək istərdim. Sensorların və pHAT -ın Pi GPIO -ya qoşulmasına icazə vermək üçün GPIO ilə ekran arasına iki qadın başlığı olan Pimorini Pico HAT hacker yerləşdirdim. Cihaz bir neçə sensoru bağlamaq üçün istifadə edildiyindən burada təsvir olunan BME280 versiyası yalnız bir nümunədir.

LCD displeylərdən fərqli olaraq, e-mürəkkəb ekranlar elektrik enerjisi söndürülsə belə görüntünü saxlayır. Xüsusilə az enerjili cihazlar qurmaq üçün zaman zaman yenilənən məlumatları göstərmək istəyirsinizsə, bu çox yaxşı bir həlldir. Inky pHAT-ın monoxrom/qara versiyasının əsas üstünlüyü, ekranın yenilənməsinin üç rəngli versiyalarda tələb olunan on-on beş saniyə yerinə təxminən bir saniyə çəkməsidir. Filmə baxın.

Adafruit -in Blinka kitabxanası, Raspberry Pi -də Circuit Python kodunu işə salmağa imkan verir və Adafruit -dən müxtəlif sensorlar üçün Circuit Python nümunələri mövcuddur. Blinka və Circuit Python kodlarının necə qurulacağının ətraflı təsvirini Adafruit veb saytında tapa bilərsiniz. İndiyə qədər sınadığım kitabxanalar (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) çox yaxşı işləyirdi, bəzi nümunə kodlarında kiçik problemlər var idi.

BME280 temperatur, rütubət və atmosfer təzyiqini ölçmək üçün bir sensordur. Adafruit də daxil olmaqla bir çox satıcıdan BMP280 qırılmaları var, amma burada ucuz bir Çin versiyasından istifadə edirdim. Unutmayın ki, bunlar fərqli i2c ünvanlarından istifadə edir (Adafruit: 0x77, digərləri: 0x76).

Kopma i2c ilə Pi -yə bağlıdır və kitabxanadan və nümunə kodundan istifadə edərək sensorun oxunması çox sadədir.

Addım 1: İstifadə olunan materiallar

İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar
İstifadə olunan materiallar

Kişi başlığı əlavə edilmiş bir Raspberry Pi Zero. Ancaq hər hansı bir Raspberry Pi versiyası bunu edərdi.

Pimoroni Ink pHAT, qara/monoxrom versiyası, 25 € | 22 £ | 20US $, Pimoroni -də.

Bir Pimoroni Pico HAT hacker, 2.50 € | 2 £, iki qadın başlıq əlavə olunur, onlardan biri daha uzun sancaqlar olan gücləndirici başlıqdır. İki fərqli versiyam var, aşağıdakı təsvirə baxın.

Bir BME280 qırılması, AZ. Amazon.de vasitəsilə @ 7.50 €, başlıq əlavə olunur.

Uzanma tullanan kabellər

İsteğe bağlı:

Mobil tətbiqlər üçün USB güc paketi

Pi və ya cihaz üçün korpus (burada göstərilməyib)

Addım 2: Quraşdırma

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
  • Qadın başlıqlarını Pico HAT hakerinə lehimləyin. Lehimdən əvvəl, düzgün istiqamətləndirməni yoxlayın. Fərqli məqsədlər üçün bunun iki versiyasını hazırladım. Ön sıraya aşağı baxan yükseltici başlığı və arxa cərgədə normal, yuxarı/baxan başlığı və arxa sırada aşağıya baxan yükseltici başlığı və ön sırada düz bucaqlı qadın başlığı olan bir versiya. Şəkillərə baxın. Birinci versiya, sensorları və kabelləri çox asanlıqla bağlamağa və dəyişdirməyə imkan verir, içəri baxan başlığı olan versiya Pi, sensor və Inky pHAT -ı bir korpusa bağlamağa imkan verir. Alternativ olaraq GPIO və sensoru birləşdirən kabelləri birbaşa Pico HAT hackerinə və/və ya Pico HAT hackerini birbaşa GPIO pinlərinə lehimləyə bilərsiniz. Hər halda, lazım olan minimum miqdarda lehimdən istifadə edin.
  • Lazım gələrsə başlığı sensora lehimləyin.
  • Dəyişdirilmiş Pico HAT hacker vahidini Pi üzərinə yığın, sonra Inky pHAT əlavə edin. Gerekirse, bir dəstəyi daxil edin, məsələn. Inky pHAT üçün köpük bloku və ya dayaqlar.
  • 3V, GND, SDA və SCL portlarını istifadə edərək kabelləri və sensoru bağlayın. Bütün sensorlar 5V -dan sağ çıxmayacaq, buna görə də onları 5V portlarına bağlamadan əvvəl yoxlayın.
  • Blinka kitabxanasını qurun, sonra Adafruit -dən Circuit Python BME280 kitabxanasını quraşdırın.
  • Pimoroni -dən Inky pHAT kitabxanasını quraşdırın.
  • Növbəti addımda təsvir olunan və bu təlimata əlavə edilmiş Python kod nümunəsini quraşdırın.
  • Kodu işə salın.

Addım 3: Cihazdan istifadə

Cihazdan istifadə
Cihazdan istifadə

Cihazı istifadə etmək üçün iki seçim var.

Burada göstərilən kod əlavə edilmiş bir ekran istifadə edilməklə başlayacaq, lakin sonra onsuz da işləyə bilər.

Kodun kiçik dəyişiklikləri ilə müəyyən vaxt nöqtələrində ölçmə aparmaq üçün crontab istifadə edə bilərsiniz. Bu, enerji istehlakını daha da azaltmağa imkan verəcəkdir. Crontabın necə istifadə olunacağına dair əla təsvirləri başqa yerdə tapa bilərsiniz.

Güc paketi ilə birlikdə bir mobil cihaz qura və içəridəki və ya xaricdəki şərtləri ölçmək üçün istifadə edə bilərsiniz, soyuducuda, saunada, nəmləndiricinizdə, şərab zirzəmisində, təyyarədə ….

Sıfır W istifadə edərək, dəyərləri yalnız ekranda göstərə bilməz, həm də başqa yerdə təsvir edildiyi kimi WLAN vasitəsilə bir serverə və ya veb saytınıza göndərə bilərsiniz.

Addım 4: BME280 Script

BME280 Script
BME280 Script

Daha əvvəl də qeyd edildiyi kimi, Adafruit Blinka və Circuit Python BME280 kitabxanalarını və Pimoroni Inky pHAT kitabxanasını quraşdırmalısınız.

Kod əvvəlcə sensoru və Inky pHAT-ı işə salır, sonra temperaturdan, təzyiqdən və rütubət dəyərlərini sensordan oxuyur və onları ekranda və elektron mürəkkəb ekranında göstərir. Time.sleep () əmrindən istifadə edərək hər dəqiqədə ölçülər alınır. Lazım olduğu kimi tənzimləyin. Bir dil parametri təyin edərək, nəticələri göstərmək üçün istifadə olunan dili dəyişə bilərsiniz.

Inky pHAT e-ink displeyindən istifadə edərək, əvvəlcə inkyphat.show () əmrindən istifadə edərək nəhayət ekrana köçürülməzdən əvvəl yaddaşda göstəriləcək şəkli qurursunuz. Inky pHAT kitabxanası, mətni, xətləri, düzbucaqları, dairələri çəkmək və formatlaşdırmaq və ya arxa plan şəkillərini istifadə etmək üçün əmrlər təklif edərək prosesi asanlaşdırır.

Ölçülən dəyərlərə əlavə olaraq ölçmə vaxtı da göstərilir.

Unutmayın ki, skript və kitabxanalar Python 3 -də yazılmışdır, buna görə Py3 IDLE və ya ona bərabər tutaraq açın və işləyin.

# Bme280 temperatur/təzyiq/rütubət sensoru (qeyri -Adafruit versiyası) # və mürəkkəb pHAT - qara versiya # # versiya Dec 01 2018, Dr H # # üçün Adafruit Blinka və Circuit Python BME280 kitabxanaları # və Pimoroni Inky tələb olunur pHAT kitabxana idxal vaxtı idxal datetime idxal taxtası adafruit_bme280 -dən import Adafruit_BME280 adafruit_bme280 -dən idxal Adafruit_BME280_I2C idxal mürekkep idxal sistemi syl PIL import ImageFont inkyphat.set_colour ('qara') # üçün b/w mürekkep_sifət göstəricisi üçün 180 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Standart font font seçin2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Standart font məlumatlarını seçin # lang = "DE" # dil parametrini təyin edin, default ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, adres = 0x76) # default i2c ünvanı (Adafruit BMP280 üçün) 0x77 (standart), Çin qırılması üçün 0x76) # təyin referans təzyiqi # al üçün tələb olunur titut hesablaması, zəhmət olmasa tənzimləyin. Standart dəyər 1013.25 hPa # manuel giriş: #reference_hPa = giriş ("Referans təzyiqini hPa ilə daxil edin:") # və ya # başlanğıcda təzyiq olaraq istinad olaraq təyin edin, məsələn. nisbi hündürlük ölçüləri üçün vaxt.yuxu (1) # 1 -ci ölçmədən bir saniyə əvvəl gözləyin j = 0 pres_norm_sum = 0, j aralığında isə (5): # istinad dəyərini təyin etmək üçün beş ölçmə aparın pres_norm_sum = pres_norm_sum + bmp. təzyiq j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # hündürlük ölçmələrini aktiv etmək üçün başlanğıc ölçüsünü istinad nöqtəsi olaraq təyin edin bmp.sea_level_pressure = float (reference_hPa) print () True: # sonsuza qədər qaçır, crontab versiyası üçün # ölçülür dəyərlər t = bmp.temperatur p = bmp. təzyiq h = bmp.həmlik a = bmp.altitude # təzyiqdən adafruit kitabxanası tərəfindən hesablanır # 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 - tarix, alman formatı 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 = "Təzyiq:" pText_DE = "Luftdruck:" h Text_EN = "Rütubət:" hText_DE = "rel. LF: "aText_EN =" Rakım: "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_ hText_: # default english ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # print dəyərlərini göstərmək üçün çap (ts) çap (tText, tmp, "° C") çap (pText, pre, "hPa") çap (hText, hyg, " %") çap (aText, alt, "m") print () # çap dəyərləri Inky pHAT t1 = 5 # tab 1, frist sütunu, t2 = 110 # tab 2, ikinci sütun inkyphatın optimallaşdırılmasını asanlaşdırır. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # zaman damgası tarixi inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # vaxt damgası vaxtı inkyphat.line yaz ((t1, 25, 207, 25), 1, 3) # bir xətt çəkin 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. QARA, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # alternativ olaraq hesablanmış hündürlüyü göstərin # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # növbəti ölçmələrdən əvvəl bir neçə saniyə gözləyin, dövr başına +19 san inkyphat.clear () # boş Mürekkep pHAT göstərmə proseduru, inkyphat.show () # crontab versiyası üçün # sükut

Addım 5: BMP280 Script

BMP280, BME280 sensoruna çox bənzəyir, ancaq temperatur və təzyiqi ölçür. Ssenarilər çox oxşardır, lakin fərqli Circuit Python kitabxanalarına ehtiyacınız var. Burada rütubət əvəzinə istinad təzyiqinə əsaslanaraq hesablanmış bir hündürlük göstərilir.

Ssenarini tapa bilərsiniz.

Tövsiyə: