Სარჩევი:

Inky_pHAT ამინდის სადგური: 5 ნაბიჯი
Inky_pHAT ამინდის სადგური: 5 ნაბიჯი

ვიდეო: Inky_pHAT ამინდის სადგური: 5 ნაბიჯი

ვიდეო: Inky_pHAT ამინდის სადგური: 5 ნაბიჯი
ვიდეო: Inky pHAT test - Raspberry Pi Zero 2024, ნოემბერი
Anonim
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური
Inky_pHAT ამინდის სადგური

აქ მინდა აღვწერო ძალიან მარტივი და კომპაქტური, ჟოლოს პი ნულოვანი ამინდის სადგური, რომელიც აჩვენებს მნიშვნელობებს, რომლებიც იზომება BME280 ტემპერატურის/წნევის/ტენიანობის სენსორით Pimoroni Inky pHAT ელექტრონული ქაღალდის/ელ-მელნის ჩვენებაზე. სენსორების და pHAT– ის PiI– ს GPIO– სთან დასაკავშირებლად დავუშვი Pimorini Pico HAT ჰაკერი, რომელსაც ორი ქალი სათაური აქვს მიმაგრებული GPIO– ს და ეკრანს შორის. მოწყობილობა გამოყენებულია რამდენიმე სენსორის დასამაგრებლად, ამიტომ აქ აღწერილი BME280 ვერსია მხოლოდ მაგალითია.

LCD მონიტორებისგან განსხვავებით, ელექტრონული მელნის ეკრანები ინარჩუნებენ სურათს მაშინაც კი, როდესაც დენი გამორთულია. ამიტომ ისინი ძალიან კარგი გამოსავალია, თუ გსურთ აჩვენოთ ინფორმაცია, რომელიც დროდადრო განახლდება, განსაკუთრებით დაბალი ენერგიის მოწყობილობების ასაშენებლად. მელნის pHAT– ის მონოქრომული/შავი ვერსიის მთავარი უპირატესობა ის არის, რომ ეკრანის განახლებას სულ რაღაც ერთი წამი სჭირდება, სამ ფერადი ვერსიებისთვის საჭირო ათიდან თხუთმეტი წამის ნაცვლად. ფილმის ნახვა.

Adafruit– ის Blinka ბიბლიოთეკა საშუალებას გაძლევთ გაუშვათ Circuit Python კოდი Raspberry Pi– ზე, ხოლო Circuit Python– ის ნიმუშები მრავალფეროვანი სენსორებისთვის ხელმისაწვდომია Adafruit– დან. დეტალური აღწერა თუ როგორ უნდა დააინსტალიროთ Blinka და Circuit Python კოდები შეგიძლიათ იხილოთ Adafruit ვებსაიტზე. ბიბლიოთეკები, რომლებიც მე აქამდე გამოვცადე (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) ძალიან კარგად მუშაობდა, ხოლო ზოგიერთ მაგალით კოდში იყო უმნიშვნელო პრობლემები.

BME280 არის სენსორი ტემპერატურის, ტენიანობის და ატმოსფერული წნევის გასაზომად. BMP280 ბზარი ხელმისაწვდომია მრავალი გამყიდველისგან, მათ შორის ადაფრუტისგან, მაგრამ მე აქ ვიყენებდი ჩინურ იაფ ვერსიას. გთხოვთ გაითვალისწინოთ, რომ ისინი იყენებენ სხვადასხვა i2c მისამართებს (ადაფრუტი: 0x77, სხვები: 0x76).

გარღვევა Pi– ს უკავშირდება i2c– ით და სენსორის კითხვა ძალიან მარტივია ბიბლიოთეკისა და მაგალითის კოდის გამოყენებით.

ნაბიჯი 1: გამოყენებული მასალები

გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები
გამოყენებული მასალები

Raspberry Pi Zero, მამრობითი სათაურით. მაგრამ ნებისმიერი Raspberry Pi ვერსია გააკეთებდა.

Pimoroni Inky pHAT, შავი/მონოქრომული ვერსია, 25 € | 22 £ | 20 აშშ დოლარი, Pimoroni– ში.

Pimoroni Pico HAT ჰაკერი, 2.50 € | 2 £, ორი ქალი სათაურით არის მიმაგრებული, ერთი მათგანი გამაძლიერებელი თავით გრძელი ქინძისთავებით. მე ავაშენე ორი განსხვავებული ვერსია, იხილეთ აღწერა ქვემოთ.

BME280 გარღვევა, AZ მიწოდება Amazon.de @ 7.50 €, თან ერთვის სათაური.

დრეკადობის ჯამპერის კაბელები

სურვილისამებრ:

USB კვების ბლოკი, მობილური პროგრამებისთვის

საცხოვრებელი Pi ან მოწყობილობისთვის (აქ არ არის ნაჩვენები)

ნაბიჯი 2: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
  • Solder ქალი headers to Pico HAT ჰაკერი. შედუღებამდე შეამოწმეთ სწორი ორიენტაცია. მე ავაშენე ამის ორი ვერსია, სხვადასხვა მიზნით. ერთი ქვემოთ მოყვანილი გამაძლიერებელი სათაურით მოთავსებული წინა რიგში და ნორმალური, ზემოთ/მიმართული თავით უკანა რიგში, და ვერსია ქვემოდან ქვემოთ გამაძლიერებელი სათაურით უკანა რიგში და მარჯვენა კუთხის მდედრობითი სათაური წინა რიგში რა იხილეთ სურათები. პირველი ვერსია იძლევა სენსორებისა და კაბელების ძალიან მარტივად მიმაგრებას და გაცვლას, ხოლო შინაგანი სათაურის მქონე ვერსია საშუალებას გაძლევთ შეიტანოთ Pi, სენსორი და მელნის pHAT კორპუსში. როგორც ალტერნატივა, შეგიძლიათ შეაერთოთ კაბელები GPIO და სენსორი პირდაპირ Pico HAT ჰაკერს და/ან შეუერთოთ Pico HAT ჰაკერი პირდაპირ GPIO ქინძისთავებს. ნებისმიერ შემთხვევაში გამოიყენეთ შესადუღებელი მინიმალური რაოდენობა.
  • საჭიროების შემთხვევაში შეაერთეთ სათაური სენსორზე.
  • დააინსტალირეთ შეცვლილი Pico HAT ჰაკერების ერთეული Pi- ზე, შემდეგ დაამატეთ მელნის pHAT. საჭიროების შემთხვევაში, ჩადეთ მხარდაჭერა, მაგ. ქაფის ბლოკი ან დგომა, მელნის pHAT- ისთვის.
  • მიამაგრეთ კაბელები და სენსორი 3V, GND, SDA და SCL პორტების გამოყენებით. ყველა სენსორი არ გადარჩება 5V, ასე რომ გთხოვთ შეამოწმოთ სანამ დაუკავშირებთ მათ 5V პორტებს.
  • დააინსტალირეთ ბლინკას ბიბლიოთეკა, შემდეგ დააინსტალირეთ Circuit Python BME280 ბიბლიოთეკა ადაფრუტიდან.
  • დააინსტალირეთ Inky pHAT ბიბლიოთეკა პიმორონიდან.
  • დააინსტალირეთ პითონის კოდის მაგალითი, რომელიც აღწერილია შემდგომ საფეხურზე და თან ერთვის ამ ინსტრუქციას.
  • გაუშვით კოდი.

ნაბიჯი 3: მოწყობილობის გამოყენება

მოწყობილობის გამოყენება
მოწყობილობის გამოყენება

მოწყობილობის გამოყენების ორი ვარიანტი არსებობს.

კოდი, როგორც აქ არის ნაჩვენები, უნდა დაიწყოს თანდართული ეკრანის გამოყენებით, მაგრამ შემდეგ შეიძლება გაშვებულიყო მის გარეშე.

კოდის უმნიშვნელო ცვლილებებით თქვენ შეგიძლიათ გამოიყენოთ crontab გაზომვების განსაზღვრული დროისათვის. ეს კიდევ უფრო შეამცირებს ენერგიის მოხმარებას. შესანიშნავი აღწერილობები, თუ როგორ გამოიყენოთ crontab, შეგიძლიათ იხილოთ სხვაგან.

დენის პაკეტთან ერთად შეგიძლიათ ააწყოთ მობილური მოწყობილობა და გამოიყენოთ იგი შიგნით თუ გარეთ მდგომარეობის გასაზომად, მაცივარში, საუნაში, თქვენს ტენიანობაში, ღვინის სარდაფში, თვითმფრინავში….

ნულოვანი W- ის გამოყენებით თქვენ შეგიძლიათ არა მხოლოდ აჩვენოთ მნიშვნელობები ეკრანზე, არამედ გაგზავნოთ ისინი სერვერზე ან თქვენს ვებგვერდზე WLAN- ის საშუალებით, როგორც ეს სხვაგან არის აღწერილი.

ნაბიჯი 4: BME280 სკრიპტი

BME280 სკრიპტი
BME280 სკრიპტი

როგორც უკვე აღვნიშნეთ, თქვენ უნდა დააინსტალიროთ Adafruit Blinka და Circuit Python BME280 ბიბლიოთეკები, ასევე Pimoroni Inky pHAT ბიბლიოთეკა.

კოდი ჯერ ინიციალებს სენსორს და მელნის pHAT- ს, შემდეგ კითხულობს ტემპერატურის, წნევისა და ტენიანობის მნიშვნელობებს სენსორიდან და აჩვენებს მათ ეკრანზე და ელექტრონული მელნის ჩვენებაზე. Time.sleep () ბრძანების გამოყენებით გაზომვები ხდება ყოველ წუთში. მორგება საჭიროებისამებრ. ენის პარამეტრის დაყენებით, თქვენ შეგიძლიათ შეცვალოთ ენა, რომელიც გამოიყენება შედეგების საჩვენებლად.

Inky pHAT ელექტრონული მელნის ეკრანის გამოყენებით, თქვენ პირველად ააშენებთ გამოსახულებას მეხსიერებაში, სანამ საბოლოოდ გადაეცემა ეკრანზე inkyphat.show () ბრძანების გამოყენებით. Inky pHAT ბიბლიოთეკა ამარტივებს პროცესს, გთავაზობთ ბრძანებებს ტექსტის, ხაზების, ოთხკუთხედების, წრეების და ფონის სურათების ხატვისა და ფორმატისთვის.

გაზომილი მნიშვნელობების გარდა, ნაჩვენებია გაზომვის დროც.

გთხოვთ გაითვალისწინოთ, რომ სკრიპტი და ბიბლიოთეკები დაწერილია პითონში 3, ასე რომ გახსენით და გაუშვით Py3 IDLE ან ექვივალენტის გამოყენებით.

# სკრიპტი bme280 ტემპერატურის/წნევის/ტენიანობის სენსორისთვის (არა -ადაფრუტული ვერსია) # და მელანი pHAT - შავი ვერსია # # ვერსია 01 დეკემბერი 2018, დოქტორი H # # მოითხოვს Adafruit Blinka და Circuit Python BME280 ბიბლიოთეკებს # და Pimoroni Inky pHAT ბიბლიოთეკა იმპორტის დრო იმპორტი თარიღი დრო იმპორტი დაფა იმპორტი იმპორტი adafruit_bme280 იმპორტი adafruit_bme280 adafruit_bme280 იმპორტი adafruit_BME280_I2C იმპორტი მელოდია იმპორტი syky PIL იმპორტი ImageFont inkyphat.set_colour ('შავი') # ბ/w მელანი 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # აირჩიეთ სტანდარტული შრიფტი font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # აირჩიეთ სტანდარტული შრიფტის მონაცემები # lang = "DE" # მითითებული ენის პარამეტრი, ნაგულისხმევი ("") -> ინგლისური lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, მისამართი = 0x76) # ნაგულისხმევი i2c მისამართი (Adafruit BMP280– ისთვის) 0x77 (ნაგულისხმევი), 0x76 ჩინური გარღვევისთვის) # მითითებული საცნობარო წნევა # საჭირო ალ ტიტულის გაანგარიშება, გთხოვთ შეცვალოთ. სტანდარტული მნიშვნელობა 1013.25 hPa # ხელით შეყვანა: #reference_hPa = input ("შეიყვანეთ საცნობარო წნევა hPa- ში:") # ან # დააყენეთ წნევა დაწყების დროს, როგორც მითითება, მაგ. შედარებითი სიმაღლის გაზომვის დროს. ძილი (1) # დაელოდეთ წამს პირველ გაზომვამდე j = 0 pres_norm_sum = 0 ხოლო j დიაპაზონში (5): # მიიღეთ ხუთი გაზომვა საცნობარო მნიშვნელობის განსაზღვრისათვის pres_norm_sum = pres_norm_sum + bmp. წნევა j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # დააყენეთ საწყისი გაზომვა, როგორც საცნობარო წერტილი სიმაღლის გაზომვის საშუალებას bmp.sea_level_pressure = float (reference_hPa) print () ხოლო True: # სამუდამოდ გაუშვით, შეცვალეთ crontab- ვერსია # იზომება მნიშვნელობები t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # გამოითვლება ადაფრუტის ბიბლიოთეკით წნევისგან # timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. ფორმატი (ts) # დროის ნიშნული - თარიღი, EN ფორმატი ts0_DE =' {:%d.%m.%Y} '. ფორმატი (ts) # დროის ნიშნული - თარიღი, გერმანული ფორმატი ts1 =' {: %H:%M:%S} '. ფორმატი (ts) # დროის ნიშნული - დრო tmp = "{0: 0.1f}". ფორმატი (t) pre = "{0: 0.1f}". ფორმატი (p) hyg = "{0: 0.1f}". ფორმატი (თ) alt="{0: 0.1f}". ფორმატი (ა) tText = "ტემპ.:" pText_EN = "წნევა:" pText_DE = "Luftdruck:" h Text_EN = "ტენიანობა:" hText_DE = "rel. LF: "aText_EN =" სიმაღლე: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über ნორმალური Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = hText_DE = სხვა: # ნაგულისხმევი ინგლისური ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # ბეჭდვის მნიშვნელობები print (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # print values to Inky pHAT t1 = 5 # tab 1, frist სვეტი, ამარტივებს განლაგების ოპტიმიზაციას t2 = 110 # tab 2, მეორე სვეტი inkyphat. წმინდა () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # ჩაწერეთ დროის ნიშნული თარიღი 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.text ((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 () # ცარიელი მელანი pHAT ჩვენების პროცედურა, inkyphat.show () # დუმილი crontab- ვერსიისთვის

ნაბიჯი 5: BMP280 სკრიპტი

BMP280 ძალიან ჰგავს BME280 სენსორს, მაგრამ მხოლოდ ზომავს ტემპერატურას და წნევას. სკრიპტები ძალიან ჰგავს, მაგრამ თქვენ გჭირდებათ სხვადასხვა Circuit Python ბიბლიოთეკა. აქ ტენიანობის ნაცვლად ნაჩვენებია გამოთვლილი სიმაღლე, საცნობარო წნევის საფუძველზე.

თანდართული თქვენ იხილავთ სკრიპტს.

გირჩევთ: