آموزش راه اندازی سنسور فشار BOSCH BMP180 با آردوینو

مقدمه

در پروژه هایی نظیر ربات های پرنده، ایستگاه های هواشناسی، بهبود عملکرد مسیریابی، پروژه های ورزشی و … اندازه گیری فشار و ارتفاع امری مهم است. در این آموزش با نحوه استفاده از سنسور BMP180 که از رایج ترین سنسورها برای اندازه گیری فشار است آشنا می شوید.

آنچه در این آموزش یاد می گیرید

  • فشار بارومتریک چیست؟
  • سنسور فشار BOSCH BMP180 چیست؟
  • چگونه از سنسور فشار BMP180 با آردوینو استفاده کنید؟

فشار بارومتریک چیست؟

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

برای بیان میزان فشار اتمسفر واحدهای مختلفی وجود دارد که این واحدها به راحتی قابل تبدیل به یکدیگر می باشند، واحد SI برای اندازه گیری فشار پاسکال (Pa) می باشد.

DescriptionResponseCommand
Just testOKAT
Reset moduleOKAT+RESET
Firmware version of module+VERSION:
OK
AT+VERSION?
Module role(0 is slave & 1 is master)+ROLE:AT+ROLE?

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

معرفی سنسور فشار BOSCH BMP180

از رایج ترین سنسورها برای اندازه گیری فشار و ارتفاع، سنسور BOSH BMP180 می باشد. از مهم ترین ویژگی های این سنسور می توانیم به موارد زیر اشاره کنیم:

  • رنج اندازه گیری فشار از 300 تا 1100 hPa
  • دارای دقت اندازه گیری -0.1hPa  برای فشار مطلق
  • دارای دقت اندازه گیری 12hPa برای فشار نسبی
  • مصرف توان بسیار پایین (5 میکروآمپر در مد استاندارد و یک نمونه در ثانیه (1 sample/sec))
  • دارای سنسور دمای داخلی با دقت 5 درجه سانتی گراد
  • پشتیبانی از پروتکل I2C برای برقراری ارتباط
  • کاملا کالبیره شده

چگونه از سنسور فشار BMP180 با آردوینو استفاده کنیم؟

این سنسور بصورت ماژولی برای استفاده آسان موجود می باشد. قسمت های اصلی ماژول سنسور BMP180 عبارتند از:

  • سنسور BMP180
  • رگولاتر 3 ولت، بخاطر وجود این رگولاتر می توانید ماژول را به 5 ولت متصل کنید.
  • مقاومت های پول آپ لازم برای برقراری ارتباط صحیح I2C

قطعات مورد نیاز

Hardware Components

آردوینو UNO R3 × 1
سنسور BOSH BMP180 × 1
سیم جامپر برد بورد × 1

Software Apps

Arduino IDE

سیم بندی

برای استفاده از ماژول سنسور BMP180 از کتابخانه BMP180_Breakout_Arduino_Library استفاده کنید.

لینک دانلود کتابخانه BMP180_Breakout_Arduino_Library 

محاسبه فشار مطلق با یکاهای مختلف و ارتفاع از سطح دریا

روند محاسبه فشار و ارتفاع را دقیق تر بررسی می کنیم:

طبق الگوریتم بالا ابتدا با   SoftwareSerial MyBlue(2, 3); شروع به محاسبه دما می کنید سپس با  getTemperature(T) مقدار دما را در متغیر T ذخیره می کنید، سپس محاسبه فشار را با   startPressure(3) آغاز می کنید. عدد 3 نشانگر اعمال بیشترین رزولوشن است که می تواند از 0 تا 3 تغییر کند،با   getPressure(P)فشار مطلق را در متغیر P ذخیره می کنید. مقدار فشار ذخیره شده در P برحسب hpa می باشد که می توان آنرا با توجه به جدول ابتدایی به یکاهای مختلف تبدیل کرد. فشار مطلق بر حسب ارتفاع تغییر می کند برای حذف اثر ارتفاع بر فشار محاسبه شده می بایست با توجه به ارتفاعی که در ابتدای کد در متغیر ALTITUDE ذخیره کردید از تابع   sealevel(P,ALTITUDE)استفاده کنید و مقدار خوانده شده را در متغیری دلخواه مانند p0 ذخیره کنید.
برای محاسبه ارتفاع از سطح دریای محل خود(altitude) نیز از دستور   altitude(P,p0)استفاده کنید. این تابع مقدار ارتفاع را برحسب متر محاسبه می کند.

نکته

دقت داشته باشید که برای متغیر ALTITUDE که در ابتدای کد تعریف کردید، می توانید ارتفاع از سطح دریای شهر خود را درج کنید.

یک ارتفاع سنج (altimeter) بسازید!

شاید شما نیاز داشته باشید یک ارتفاع سنج (altimeter) بسازید، سنسور فشار BMP180 نیز مانند بسیاری از سنسورهای فشار دیگر فشار مطلق را اندازه گیری می کند و از آنجاییکه فشار مطلق با ارتفاع تغییر می کند درنتیجه شما می توانید با بدست آوردن فشار، ارتفاع نسبی را محسابه کنید.


در این کد تابع readPressure() مقدار فشار مطلق را محاسبه می کند. از آنجایی که مقدار فشار با تغییر دما و رطوبت هوا نیز تغییر می کند در ابتدای کار مقدار فشار اولیه را در baseline ذخیره می کنیم و با توجه به این مقدار و مقدار فشار لحظه ای، ارتفاع نسبی بر حسب متر توسط altitude(P,baseline) محاسبه می شود.

یک گام جلوتر

  • سعی کنید در شرایطی که دما ناپایدار است و تغییرات زیادی دارد فشار هوا را بدست آورید.

Share this post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *