Mündəricat:
- Addım 1: İstifadə olunan materiallar
- Addım 2: Quraşdırma
- Addım 3: Cihazdan istifadə
- Addım 4: BME280 Script
- Addım 5: BMP280 Script
Video: Inky_pHAT Hava İstasyonu: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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
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
- 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ə
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
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ə:
HC-12 Uzun Mənzilli Məsafə Hava İstasyonu və DHT Sensorları: 9 Addım
HC-12 Uzun Mesafeli Hava İstasyonu və DHT Sensorları: Bu dərsdə iki dht sensoru, HC12 modulu və I2C LCD Ekranından istifadə edərək uzaq məsafəli bir hava stansiyası qurmağı öyrənəcəyik
Peyk Yardımlı Hava İstasyonu: 5 addım
Peyk Dəstəkli Hava İstasyonu: Bu layihə öz hava məlumatlarını toplamaq istəyən insanlar üçündür. Küləyin sürətini və istiqamətini, temperaturu və havanın rütubətini ölçə bilir. Hər 100 dəqiqədə bir dəfə Yerin ətrafında fırlanan hava peyklərini dinləyə bilir. İstəyərəm
ESP8266 Hava İstasyonu Saatı: 4 addım
ESP8266 Hava İstasyonu Saatı: Bu layihə, vaxtı və havanı kiçik bir rahat paketdə göstərmək üçün gözəl bir yoldur. Layihəni, necə işlədiyini izah edəcəyəm və kodu burada göstərəcəyəm. Müəyyən bir yerdə mövcud hava vəziyyətini göstərmək üçün fərqli düymələrə basa bilərsiniz
NaTaLia Hava İstasyonu: Arduino Günəş Enerjili Hava İstasyonu Düzgün Edildi: 8 Addım (Şəkillərlə)
NaTaLia Hava İstasyonu: Arduino Günəş Enerjili Hava İstasyonu Düzgün Edildi: 2 fərqli yerdə 1 illik uğurlu əməliyyatdan sonra günəş enerjisi ilə işləyən hava stansiyası layihə planlarımı paylaşıram və uzun müddət ərzində həqiqətən də sağ qala biləcək bir sistemə necə çevrildiyini izah edirəm. günəş enerjisindən dövrlər. Təqib etsəniz
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): 5 Addım (Şəkillərlə)
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): Acurite 5 -i 1 hava stansiyasından alanda evdən kənarda olduğum zaman havanı yoxlamaq istəyirdim. Evə gəlib qurduqda ya ekranı kompüterə bağlamalı olduğumu, ya da ağıllı mərkəzini almalı olduğumu başa düşdüm