سنسورها یکی از ابزارهای جدانشدنی پروژه های الکترونیک به شمار می روند. به کمک سنسورها می توان پارامترهای فیزیکی محیط را انازه گیری کرده و به فرمی دیجیتال در میکروکنترلرها، تحلیل و ذخیره نمود. یکی از سنورهای پرکاربرد در پروژه های مختلف، سنسور BMP180 است. این سنسور قادر است تا فشار هوای محیط را اندازه گیری نماید. جهت راه اندازی و کار با این سنسور کتابخانه bmp180.h تحت آردوینو توسعه یافته است. بدین ترتیب روال راه اندازی و کار با این سنسور بسیار تسریع می شود. در این آموزش به تحلیل و بررسی کتابخانه bmp180 می پردازیم. در ابتدا نحوه نصب و الزامات فنی را بررسی می کنیم. سپس در ادامه به تحلیل و بررسی توابع کلیدی کتابخانه می پردازیم. در نهایت با ارائه مثالی، نحوه استفاده از توابع را خواهیم دید. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.
نصب کتابخانه bmp180.h
به منظور استفاده از کتابخانه bmp180، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه سنسور شتاب سنج با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت bmp180 را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه مشخص شده با کادر قرمز رنگ را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه bmp180.h
سنسور فشار bmp180 از پروتکل I2C جهت ارتباط با میکروکنترلرها استفاده می کند. توجه داشته باشید که این ارتباط I2C باید به صورت سخت افزاری برای سنسور تامین گردد. کتابخانه bmp180 مورد بررسی در این آموزش، توسط شرکت adafruit توسعه یافته است. این کتابخانه برای بردهای آردوینو و ESP قابل استفاده خواهد بود.
توابع کلیدی کتابخانه BMP180.h
در این قسمت به بررسی توابع کلیدی و کاربردی کتابخانه BMP180 می پردازیم. جدول زیر شرح کاملی از توابع را نمایش می دهد. در این جدول ورودی ها از چپ به راست به ترتیب ورود اول، ورودی دوم و…. نام گذاری می شوند.
شرح | ورودی ها | نام تابع |
به کمک این تابع سنسور راه اندازی شده و ارتباط با آن برقرار می شود. | بدون ورودی | begin |
از آنجاییکه سنسور bmp180 قادر به اندازه گیری دماست، این تابع دمای اندازه گیری شده را در خروجی قرار می دهد. | بدون ورودی | float readTemperature() |
این تابع میزان فشار هوای محیط را اندازه گیری کرده و در خروجی قرار می دهد. خروجی از نوع ۳۲ بیتی است. | بدون ورودی | int32_t readPressure(void) |
به کمک این تابع می توانیم فشار در سطح دریا را محاسبه کرده و در خروجی مشاهده کنیم. در ورودی تابع ارتفاع نیز قرار می گیرد. مقدار پیشفرض ورودی این تابع(بدون قرار دادن ورودی) ۰ منظور می گردد. | ورودی از نوع عدد اعشاری | int32_t readSealevelPressure(float altitude_meters = 0) |
به کمک این تابع ارتفاع خوانده شده و در خروجی قرار می گیرد. توجه داشته باشید که در ورودی این تابع فشار در سطح دریا می بایست لحاظ گردد. مقدار پیشفرض ورودی این تابع(بدون درج ورودی) ۱۰۱۳۲۵ است. | ورودی از نوع اعشار | float readAltitude(float sealevelPressure = 101325) |
پس از بررسی و تشریح توابع کلیدی، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعدی مربوط به این موضوع است.
اجرای یک برنامه
در این قسمت به اجرای یک نمونه برنامه ساده جهت آشنایی با توابع کاربردی می پردازیم. در این برنامه مقدار فشار خوانده شده و در سریال مانیتور نمایش داده می شود.
#include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); if (!bmp.begin()) { //راه اندازی سنسور bmp Serial.println("sensor running error!"); while (1) {} } } void loop() { Serial.print("Temperature = "); Serial.print(bmp.readTemperature()); //خواندن دما به سانتی گراد Serial.println(" *C"); Serial.print("Pressure = "); Serial.print(bmp.readPressure()); //خواندن فشار Serial.println(" Pa"); }
لوازم متناسب با کتابخانه
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه bmp180 پرداختیم. این کتابخانه جهت راه اندازی و کار با سنسور bmp180 به کار می رود. سنسور bmp180 یک سنسور کاربری جهت اندازه گیری دما و فشار هوای محیط است. در این آموزش به تحلیل کتابخانه این سنسور جهت راه اندازی با آردوینو پرداختیم. در ابتدا نحوه نصب، سپس الزامات فنی و در ادامه به تشریح و تحلیل توابع پرداختیم. درد نهایت با ارائه مثالی، کاربرد توابع را در یک برنامه عملی مشاهده نمودیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.