فهرست مطالب:
- مرحله 1: مواد مورد استفاده
- مرحله 2: مونتاژ
- مرحله 3: استفاده از دستگاه
- مرحله 4: اسکریپت BME280
- مرحله 5: اسکریپت BMP280
تصویری: ایستگاه هواشناسی Inky_pHAT: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
در اینجا می خواهم یک ایستگاه هواشناسی بسیار ساده و جمع و جور ، مبتنی بر 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
همانطور که قبلاً ذکر شد ، شما باید کتابخانه های 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 نیاز دارید. در اینجا به جای رطوبت ، یک ارتفاع محاسبه شده ، بر اساس فشار مرجع ، نمایش داده می شود.
پیوست اسکریپت را پیدا می کنید.
توصیه شده:
ایستگاه هواشناسی حرفه ای با استفاده از ESP8266 و ESP32 DIY: 9 مرحله (همراه با تصاویر)
ایستگاه هواشناسی حرفه ای با استفاده از ESP8266 و ESP32 DIY: LineaMeteoStazione یک ایستگاه آب و هوایی کامل است که می تواند با سنسورهای حرفه ای Sensirion و برخی از اجزای ابزار Davis (باران سنج ، بادسنج) ارتباط برقرار کند. این پروژه به عنوان ایستگاه هواشناسی DIY طراحی شده است اما فقط نیاز به
HC-12 ایستگاه هواشناسی از راه دور و سنسورهای DHT: 9 مرحله
HC-12 Long Range Distance Weather Station و DHT Sensors: در این آموزش ما نحوه ساخت ایستگاه آب و هوایی از راه دور با استفاده از دو سنسور dht ، ماژول HC12 و نمایشگر LCD I2C را یاد می گیریم. فیلم را تماشا کنید
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: 8 مرحله (همراه با تصاویر)
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: پس از 1 سال عملیات موفق در 2 مکان مختلف ، من برنامه های پروژه ایستگاه هواشناسی خورشیدی خود را به اشتراک می گذارم و توضیح می دهم که چگونه به یک سیستم تبدیل شده است که می تواند در مدت زمان طولانی زنده بماند. دوره های انرژی خورشیدی اگر دنبال کنید
ایستگاه هواشناسی DIY و ایستگاه حسگر WiFi: 7 مرحله (همراه با تصاویر)
DIY Weather Station & WiFi Sensor Station: در این پروژه نحوه ایجاد ایستگاه هواشناسی به همراه ایستگاه حسگر WiFi را به شما نشان خواهم داد. ایستگاه حسگر داده های دما و رطوبت محلی را اندازه گیری می کند و آنها را از طریق WiFi به ایستگاه هواشناسی ارسال می کند. سپس ایستگاه هواشناسی t
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (سایر ایستگاه های هواشناسی سازگار هستند): 5 مرحله (همراه با تصاویر)
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (دیگر ایستگاه های آب و هوایی سازگار هستند): وقتی ایستگاه هواشناسی Acurite 5 in 1 را خریداری کردم ، می خواستم بتوانم آب و هوا را در خانه ام بررسی کنم. وقتی به خانه رسیدم و آن را راه اندازی کردم ، متوجه شدم که یا باید صفحه نمایش را به کامپیوتر وصل کنم یا هاب هوشمند آنها را بخرم ،