فهرست مطالب:

ایستگاه هواشناسی Inky_pHAT: 5 مرحله
ایستگاه هواشناسی Inky_pHAT: 5 مرحله

تصویری: ایستگاه هواشناسی Inky_pHAT: 5 مرحله

تصویری: ایستگاه هواشناسی Inky_pHAT: 5 مرحله
تصویری: 5 Minimalist Bullet Journal Spread Ideas for Homemaking & Organization 2024, جولای
Anonim
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT
ایستگاه هواشناسی Inky_pHAT

در اینجا می خواهم یک ایستگاه هواشناسی بسیار ساده و جمع و جور ، مبتنی بر Raspberry Pi Zero را توصیف کنم ، که مقادیر اندازه گیری شده توسط سنسور دما/فشار/رطوبت BME280 را بر روی صفحه نمایش کاغذ الکترونیکی/جوهر الکترونیکی Pimoroni Inky PHAT نمایش می دهد. برای اتصال سنسورها و pHAT به GPIO Pi ، یک هکر Pimorini Pico HAT با دو سر زن بین GPIO و صفحه نمایش متصل شد. از این دستگاه برای اتصال چندین سنسور استفاده شده است ، بنابراین نسخه BME280 که در اینجا شرح داده شده فقط یک مثال است.

برخلاف نمایشگرهای LCD ، نمایشگرهای جوهر الکترونیکی حتی در صورت خاموش بودن تصویر ، تصویر را حفظ می کنند. بنابراین اگر می خواهید اطلاعاتی را که گاه به گاه به روز می شوند ، به ویژه برای ساخت دستگاه های کم مصرف ، راه حل بسیار خوبی باشند. مزیت اصلی نسخه تک رنگ/سیاه رنگ PHAT Inky این است که به روزرسانی صفحه نمایش به جای 10 تا پانزده ثانیه که برای نسخه های سه رنگ لازم است فقط یک ثانیه طول می کشد. فیلم ببینید.

کتابخانه Blinka Adafruit اجازه می دهد تا کد Circuit Python را روی Raspberry Pi اجرا کنید و نمونه های Circuit Python برای انواع مختلفی از سنسورها از Adafruit در دسترس است. توضیحات دقیق نحوه نصب Blinka و کدهای Circuit Python را می توانید در وب سایت Adafruit مشاهده کنید. کتابخانه هایی که تا کنون آزمایش کرده ام (BMP280 ، BME280 ، TSL2591 ، TCS34785 ، VEML7065 ، …) بسیار خوب کار می کردند ، در حالی که در برخی از کدهای مثال مشکلات جزئی وجود داشت.

BME280 یک سنسور برای اندازه گیری دما ، رطوبت و فشار اتمسفر است. شکست های BMP280 از بسیاری از فروشندگان از جمله Adafruit در دسترس است ، اما من در اینجا از نسخه چینی ارزان قیمت استفاده می کردم. لطفاً توجه داشته باشید که اینها از آدرس های مختلف i2c استفاده می کنند (Adafruit: 0x77 ، دیگران: 0x76).

شکست با i2c به Pi متصل می شود و خواندن سنسور با استفاده از کتابخانه و کد مثال بسیار ساده است.

مرحله 1: مواد مورد استفاده

مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده
مواد استفاده شده

Raspberry Pi Zero ، با یک سربرگ مردانه متصل شده است. اما هر نسخه رزبری پای این کار را می کند.

A Pimoroni Inky pHAT ، نسخه مشکی/تک رنگ ، 25 € | 22 £ | 20 دلار آمریکا ، در Pimoroni.

هکر Pimoroni Pico HAT ، 2.50 یورو | 2 £ ، با دو سربرگ زن متصل شده است ، یکی از آنها هدر تقویت کننده با پین های بلندتر است. من دو نسخه مختلف ایجاد کرده ام ، توضیحات زیر را ببینید.

شکست BME280 ، تحویل AZ از طریق Amazon.de @ 7.50 یورو ، با سرصفحه پیوست شده است.

کابل های بلوز کششی

اختیاری:

پاور USB ، برای برنامه های تلفن همراه

محفظه ای برای Pi یا دستگاه (در اینجا نشان داده نشده است)

مرحله 2: مونتاژ

مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
  • سربرگ های زن را به هکر Pico HAT لحیم کنید. قبل از لحیم کاری ، جهت درست را بررسی کنید. من دو نسخه از این را برای اهداف مختلف ساخته ام. یکی با هدر تقویت کننده رو به پایین در ردیف جلو و یک سربرگ معمولی ، بالا/رو در ردیف عقب ، و یک نسخه با سربرگ تقویت کننده رو به پایین در ردیف عقب ، و یک سربرگ زن با زاویه راست در ردیف جلو به تصاویر را مشاهده کنید. نسخه اول امکان اتصال و تبادل حسگرها و کابل ها را بسیار آسان می کند ، در حالی که نسخه دارای سربرگ داخلی به شما این امکان را می دهد که Pi ، حسگر و pHAT جوهر را در محفظه ای قرار دهید. همچنین می توانید کابل های اتصال GPIO و سنسور را مستقیماً به هکر Pico HAT لحیم کرده و/یا هکر Pico HAT را مستقیماً به پین های GPIO لحیم کنید. در هر صورت از حداقل مقدار لحیم مورد نیاز استفاده کنید.
  • در صورت لزوم هدر را به سنسور لحیم کنید.
  • واحد هکر Pico HAT اصلاح شده را روی Pi قرار دهید ، سپس PHAT Inky را اضافه کنید. در صورت لزوم ، برخی از پشتیبانی ها را وارد کنید ، به عنوان مثال یک بلوک فوم یا استند ، برای pHAT جوهر.
  • کابل ها و سنسور را با استفاده از پورت های 3V ، GND ، SDA و SCL وصل کنید. همه سنسورها 5 ولت دوام نمی آورند ، بنابراین لطفاً قبل از اتصال آنها به پورت های 5 ولت بررسی کنید.
  • کتابخانه Blinka را نصب کنید ، سپس کتابخانه Circuit Python BME280 را از Adafruit نصب کنید.
  • کتابخانه PHAT Inky را از Pimoroni نصب کنید.
  • نمونه کد پایتون را که در مرحله بعد توضیح داده شده و به این دستورالعمل ضمیمه شده است ، نصب کنید.
  • کد را اجرا کنید.

مرحله 3: استفاده از دستگاه

با استفاده از دستگاه
با استفاده از دستگاه

دو گزینه برای استفاده از دستگاه وجود دارد.

کدی که در اینجا نشان داده می شود باید با استفاده از یک صفحه ضمیمه شروع شود ، اما سپس می تواند بدون آن اجرا شود.

با تغییرات جزئی در کد ، می توانید از crontab برای اندازه گیری در نقاط زمانی مشخص استفاده کنید. این امر باعث می شود مصرف برق حتی بیشتر کاهش یابد. توضیحات عالی در مورد نحوه استفاده از crontab در جاهای دیگر یافت می شود.

همراه با یک پاور پک می توانید یک دستگاه تلفن همراه بسازید و از آن برای اندازه گیری شرایط داخل یا خارج ، در یخچال ، در سونا ، رطوبت خود ، انبار شراب ، در هواپیما و… استفاده کنید.

با استفاده از Zero W نه تنها می توانید مقادیر را روی صفحه نمایش دهید ، بلکه آنها را به سرور یا وب سایت خود از طریق WLAN ، همانطور که در جاهای دیگر توضیح داده شده است ، ارسال کنید.

مرحله 4: اسکریپت BME280

اسکریپت BME280
اسکریپت BME280

همانطور که قبلاً ذکر شد ، شما باید کتابخانه های Adafruit Blinka و Circuit Python BME280 و همچنین کتابخانه PHATOR Pimoroni Inky را نصب کنید.

کد ابتدا سنسور و pHAT جوهر را راه اندازی می کند ، سپس مقادیر دما ، فشار و رطوبت را از سنسور می خواند و آنها را روی صفحه نمایش و نمایش جوهر الکترونیکی نشان می دهد. با استفاده از دستور time.sleep () ، اندازه گیری ها در هر دقیقه انجام می شود. در صورت لزوم تنظیم کنید. با تنظیم پارامتر زبان ، ممکن است زبان مورد استفاده برای نمایش نتایج را تغییر دهید.

با استفاده از نمایشگر جوهر الکترونیکی جوهر PHAT ، ابتدا تصویر را برای نمایش در حافظه می سازید تا در نهایت با استفاده از دستور () inkyphat.show به صفحه منتقل شود. کتابخانه pHAT Inky با ساده سازی فرایند ، دستوراتی را برای ترسیم و قالب بندی متن ، خطوط ، مستطیل ها ، حلقه ها یا استفاده از تصاویر پس زمینه ارائه می دهد.

علاوه بر مقادیر اندازه گیری شده ، زمان اندازه گیری نیز نمایش داده می شود.

لطفاً به خاطر داشته باشید که اسکریپت و کتابخانه ها در پایتون 3 نوشته شده اند ، بنابراین با استفاده از Py3 IDLE یا معادل آن باز و اجرا کنید.

# اسکریپت برای سنسور دما/فشار/رطوبت bme280 (نسخه غیر Adafruit) # و pHAT جوهر - نسخه سیاه # # نسخه دسامبر 01 2018 ، دکتر H # # به کتابخانه های Adafruit Blinka و Circuit Python BME280 # و جوهر Pimoroni نیاز دارد. واردات کتابخانه PHAT زمان واردات زمان واردات صفحه واردات busio از adafruit_bme280 واردات Adafruit_BME280 از adafruit_bme280 import Adafruit_BME280_I2C واردات inkyphat sys از واردات PIL ImageFont inkyphat.set_colour ('black') # برای b/w جوهر inkyp # 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، address = 0x76) # آدرس i2c پیش فرض (برای Adafruit BMP280) 0x77 (به طور پیش فرض) ، 0x76 برای شکست چینی) # تنظیم فشار مرجع # مورد نیاز برای al محاسبه عنوان ، لطفاً تنظیم کنید مقدار استاندارد 1013.25 hPa # ورودی دستی: #reference_hPa = ورودی ("فشار مرجع را در hPa وارد کنید:") # یا # فشار را در زمان شروع به عنوان مرجع تنظیم کنید ، به عنوان مثال برای اندازه گیری قد نسبی زمان. خواب (1) # یک ثانیه قبل از اندازه گیری اول صبر کنید j = 0 pres_norm_sum = 0 در حالیکه j در محدوده (5): # پنج اندازه گیری را برای تعیین مقدار مرجع pres_norm_sum = pres_norm_sum + bmp.pressure j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # اندازه گیری اولیه را به عنوان نقطه مرجع تنظیم کنید تا اندازه گیری ارتفاع امکان پذیر باشد bmp.sea_level_pressure = float (reference_hPa) print () در حالیکه True: # برای همیشه اجرا می شود ، برای crontab-version # اندازه گیری شده اصلاح کنید مقادیر t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # محاسبه شده توسط کتابخانه adafruit از فشار # نشان زمان ts = datetime.datetime.now () # timestamp ts0_EN = '{:٪ Y-٪ m-٪ d} '. format (ts) # timestamp - date، EN format ts0_DE =' {:٪ d.٪ m.٪ Y} '. format (ts) # timestamp - date، format German 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 = "فشار:" pText_DE = "Luftdruck:" h Text_EN = "رطوبت:" hText_DE = "rel. LF: "aText_EN =" ارتفاع: "aText_DE =" Höhe üNN: " # exakt: ü. NHN ، über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = hText_De = hText_DE = =: # پیش فرض انگلیسی ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # مقادیر چاپ برای نمایش چاپ (ts) چاپ (tText، tmp، "° C") print (pText ، pre، "hPa") print (hText ، hyg، "٪") print (aText، alt، "m") print () # مقادیر چاپ به Inky pHAT t1 = 5 # tab 1، stist stist ، بهینه سازی طرح t2 = 110 # tab 2 ، ستون دوم inkyphat را ساده می کند. clear () 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. BLACK ، font2) 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 نیاز دارید. در اینجا به جای رطوبت ، یک ارتفاع محاسبه شده ، بر اساس فشار مرجع ، نمایش داده می شود.

پیوست اسکریپت را پیدا می کنید.

توصیه شده: