راه اندازی سنسور فشار، دما و رطوبت BME280 توسط میکرو STM32

450,000 ریال

ماژول BMP280 یک سنسور فشار بارومتریک از شرکت BOSCH می باشد که به منظورسنجش فشار هوا یا تعیین ارتفاع  با استفاده از فشار هوا عرضه شده است. جریان مصرفی بسیار پایین و قابلیت استفاده با باتری ، امکان استفاده از این ماژول در کاربرد های موبایل را فراهم می سازد.  دقت و حساسیت بالا ، پایداری و خطی بودن کامل در ناحیه ی کاری   و پایداری EMC بالا از برتری های خاص این ماژول می باشد.این ماژول علاوه بر فشار قادر به سنجش دما و رطوبت با حساسیت خوب  نیز می باشد.

توضیحات

مقدمه

ماژول BMP280 یک سنسور فشار بارومتریک از شرکت BOSCH می باشد که به منظورسنجش فشار هوا یا تعیین ارتفاع  با استفاده از فشار هوا عرضه شده است. جریان مصرفی بسیار پایین و قابلیت استفاده با باتری ، امکان استفاده از این ماژول در کاربرد های موبایل را فراهم می سازد.  دقت و حساسیت بالا ، پایداری و خطی بودن کامل در ناحیه ی کاری   و پایداری EMC بالا از برتری های خاص این ماژول می باشد.این ماژول علاوه بر فشار قادر به سنجش دما و رطوبت با حساسیت خوب  نیز می باشد.

BME280 یک سنسور محیطی یکپارچه است که مشخصا برای کاربردهایی که اندازه و مصرف توان پایین محدودیت های کلیدی در طراحی هستند در نظر گرفته شده است. این ماژول قادر به اندازه گیری دما، فشار جوی و رطوبت به درستی و دقت و سرعت بالا است. از آنجایی که فشار جوی با تغییر ارتفاع از سطح دریا تغییر می کند، این ماژول همچنین می تواند ارتفاع از سطح دریا را به صورت تقریبی اندازه بگیرد. این ماژول می تواند از طریق درگاه ارتباطی I2C یا SPI به یک میکروکنترلر وصل شود.

BME280 یک نسخه ارتقایافته از BMP180 است و دارای تغییرات چشم گیری نسبت به آن است. تغییرات اعمال شده عبارت اند از: مصرف توان پایین تر، اندازه گیری های کم نویزتر ، دقت بالاتر در اندازه گیری دما و فشار، نویز RMS پایین تر، درگاه SPI اضافه شده، مدهای اندازه گیری بیشتر، نرخ اندازه گیری بالاتر و فیلترهای تازه اضافه شده در برابر تداخل محیطی. از آنجایی که خوانش فشار جوی تحت تاثیردما و ارتفاع از سطح دریاست، مشخصه های جبرانی به BME280 اضافه شده است. بنابراین، مقادیر فشار جوی، دما، رطوبت و ارتفاع تقریبی از سطح دریا ارائه شده توسط سنسور BME280 قابل اعتمادتر است.

شکل ۱: ماژول BME280

 

شکل ۲: مشخصه کاری سنسور

 

کاربردها:

 

  • دستگاه های هواشناسی
  • تجهیزات پزشکی
  • تجهیزات جهت یاب GPS
  • تجهیزات آزمایشگاهی و علمی
  • تشخیص ارتفاع

 

ویژگی ها:

 

  • ولتاژ تغذیه : ۳٫۳ولت (۱٫۷ نا ۳٫۶)
  • رنج کاری: ۳۰۰ تا ۱۱۰۰ hpa
  • رزولیشن فشار : ۰٫۱۸ Pa
  • رزولیشن دما : ۰٫۰۱ سانتی گراد
  • ناحیه دمایی (کاملا خطی) : ۰ تا ۶۵ درجه ی سانتیگراد
  • ناحیه دمایی قابل تحمل : ۴۰ تا ۸۵ درجه سانتی گراد
  • پروتکل های ارتباطی: I2C و SPI
  • جریان مصرفی (میانگین): ۲٫۷۴ میکرو آمپر
  • جریان مصرفی در حالت خواب: ۰٫۱ میکرو آمپر

 

 

BME280 می تواند در ۳ حالت مختلف کار کند:

  • حالت خواب (Sleep Mode)
  • حالت اجباری (Forced Mode)
  • حالت عادی (Normal Mode)

در حالت Sleep Mode هیچ اندازه گیری انجام نمی شود و مصرف برق حداقل است. همه رجیسترها قابل دسترسی هستند و ما می توانیم آنها را بخوانیم یا اصلاح کنیم.

در حالت اجباری، سنسور یک اندازه گیری را انجام می دهد و به حالت خواب برمی گردد. نتایج اندازه گیری را می توان از رجیسترهای داده به دست آورد.

برای اندازه گیری بعدی، حالت اجباری باید دوباره انتخاب شود.

در حالت عادی، BME280 به حالت خواب نمی رود. بین اندازه گیری و حالت آماده به کار ماندگار می شود. این حالت اغلب زمانی استفاده می شود که داده ها به طور مداوم مورد نیاز است.

 

اندازه گیری

۱- اندازه گیری رطوبت

اندازه گیری رطوبت را می توان فعال یا نادیده گرفت. هنگامی که فعال باشد، چندین گزینه جهت نمونه برداری وجود دارد.

اندازه گیری رطوبت با تنظیم osrs_h[2:0] (ctrl_hum Register) کنترل می شود که در شکل زیر نشان داده شده است. برای اندازه گیری رطوبت، تعداد نمونه برداری بالا برای کاهش نویز امکان پذیر است. رزولیشن اندازه گیری رطوبت در خروجی ADC 16 بیتی ثابت است.

شکل ۳: جدول راه اندازی بخش رطوبت سنسور

۲- اندازه گیری فشار

اندازه گیری فشار را می توان فعال یا نادیده گرفت. هنگامی که فعال باشد، چندین گزینه جهت نمونه برداری وجود دارد.

اندازه گیری فشار توسط تنظیم osrs_p[2:0] (ctrl_meas Register) که در شکل زیر نشان داده شده است، کنترل می شود. برای اندازه گیری فشار، تعداد نمونه برداری بالا برای کاهش نویز امکان پذیر است.

تفکیک داده های فشار به فیلتر IIR و تنظیمات تعداد نمونه برداری بستگی دارد:

  • هنگامی که فیلتر IIR فعال است، رزولیشن فشار ۲۰ بیت است.
  • وقتی فیلتر IIR غیرفعال است، رزولیشن فشار ۱۶ + (osrs_p – ۱) ) بیت است، به عنوان مثال. ۱۸ بیت وقتی osrs_p روی “۳” ست شود.

شکل ۴: جدول راه اندازی بخش فشار سنسور

 

۳- اندازه گیری دما

به طور مشابه، اندازه گیری دما در شکل زیر نشان داده شده است. رزولیشن دما مشابه اندازه گیری فشار است.

 


 

پیکربندی

رجیستر “config” نرخ، فیلتر و گزینه های رابط دستگاه را تنظیم می کند. نوشتن در رجیستر “” config  در حالت عادی ممکن است نادیده گرفته شود، اما در حالت خواب، نوشتن نادیده گرفته نمی شود.

شکل۵: جدول کانفیگ اولیه سنسور

 

در اینجا Standby را برای حالت عادی (بیت های ۷،۶،۵) و ضرایب فیلتر IIR را برای (بیت های ۴،۳،۲) تنظیم می کنیم. در بخش بعدی در کد سورس مکان آن نشان داده خواهد شد. Standby با زمان اندازه گیری ترکیب می شود و با هم مسئول زمان چرخه (نرخ داده خروجی) هستند.

شکل ۶: سیکل چرخش داده سنسور در حالت نرمال و فیلتر IIR

 

اتصالات

شکل ۷: نحوه اتصال ماژول به میکروکنترلر

 

اتصال بسیار ساده استSCK  را به PB6 (SCL) و SDI را به PB7 (SDA) وصل کنید. برق این ماژول ۳٫۳ ولت است.

در اینجا توجه داشته باشید که SDO به زمین متصل است. این یک پارامتر مهم در هنگام استفاده از I2C برای ارتباط است.

شکل ۸: طریقه نوشتن دیتا با پروتکل I2C روی سنسور

 

همان طور که در دیتاشیت ذکر شد، آدرس BME280 111011X0 است و در اینجا X توسط پین SDO تعیین می شود. از آنجایی که ما آن را به زمین وصل کرده ایم، آدرس مورد نظر ۱۱۱۰۱۱۰۰ خواهد بود که ۰xEC است.



مدت ویدئو: ۸ دقیقه

نوع آموزش: فارسی 

کد سورس: دارد

شماتیک مدار: ندارد

تست روی سخت افزار: دارد

کامپایلر: STM32Cube IDE

کتابخانه: HAL Library


توجه: برای پخش ویدئو نرم افزار های KMPlayer و K-Lite Codec Pack در سیستم شما نصب باشد. و از نرم افزار ۷zip برای خارج کردن پروژه از حالت فشرده استفاده کنید.