قطعات الکترونیک مدارهای الکترونیک پروژه های آردوینو پکیج سنسور آردوینو

آموزش راه اندازی ماژول سنسور فشار سنج BMP085 با آردوینو Arduino

آموزش راه اندازی ماژول bmp085 با استفاده از آردوینو -دیجی اسپارک
نوشته شده توسط علیرضا قربانی

ماژول فشارسنج BMP085 یک سنسور فشار هوا و دما است که توسط شرکت Bosch تولید شده است. این سنسور با استفاده از تکنولوژی سنجش فشار بارومتری و ترمومتری عمل می‌کند. BMP085 دقت و قابلیت اندازه‌گیری فشار هوا و دمای محیط را دارد و از رابط ارتباطی I2C برای ارتباط با میکروکنترلر یا برد کنترلی استفاده می‌کند. در ادامه با مرجع تخصصی الکترونیک به زبان فارسی، دیجی اسپارک همراه باشید.

 


ماژول فشارسنج BMP085


ماژول فشارسنج BMP085 یک سنسور فشار هوا و دما است که توسط شرکت Bosch تولید شده است. این سنسور با استفاده از تکنولوژی سنجش فشار بارومتری و ترمومتری عمل می‌کند. BMP085 دقت و قابلیت اندازه‌گیری فشار هوا و دمای محیط را دارد و از رابط ارتباطی I2C برای ارتباط با میکروکنترلر یا برد کنترلی استفاده می‌کند. با استفاده از ماژول BMP085 می‌توانید فشار هوا را با دقت بالا اندازه‌گیری کنید. این ماژول قابلیت تعیین ارتفاع نسبی را نیز دارد، به این معنی که می‌توانید بر اساس تغییرات فشار هوا ارتفاع را محاسبه کنید. علاوه بر این، BMP085 دارای یک حالت پیش‌بینی آب و هوا است که امکان پیش‌بینی تغییرات آب و هوا را بر اساس تغییرات فشار هوا فراهم می‌کند.این ماژول در انواع پروژه‌هایی که نیاز به اندازه‌گیری فشار هوا، ارتفاع یا دما دارند، بسیار مفید است. مثال‌هایی از کاربردهای ماژول BMP085 شامل سیستم‌های رصد هواشناسی، کنترل اتوماتیک آبیاری، سیستم‌های ناوبری، دریافت ارتفاع هوایی در فعالیت‌های مرتفع و غیره می‌شود.اندازه گیری فشار دما در دو مورد میتواند مفید واقع شود. مورد اول در اندازه گیری ارتفاع می‌باشد. هنگامی که از سطح دریا به ارتفاعات سفر میکنیم فشار هوا کاهش می‌یابد و این بدان معناست که با اندازه گیری فشار میتوان ارتفاع را نیز اندازه گیری نمود. مورد دوم هنگامی است که از تغییرات فشار برای پیش بینی وضعیت آب و هوا استفاده کرد. ماژول سنسور فشار سنج BMP085 قابلیت اندازه گیری فشار هوا در محدوده‌ی  ۳۰۰ الی ۱۱۰۰ هکتوپاسکال (۵۰۰- الی ۹۰۰۰ متر از سطح دریا) با ررزولوشن ۰٫۰۳hP /0.25 m  را دارد می‌باشد. همچنین سنسور فشار BMP085 قابلیت اندازه گیری دما در محدوده ی ۴۰- الی ۸۰ درجه سانتی گراد را دارا میباشد. ماژول فشار سنج BMP085 بر اساس پروتوکل I2C  راه اندازی می‌شود.

 


مشخصات فنی BMP085


مشخصات فنی سنسور BMP085 عبارتند از:

فشار هوا:

  • محدوده اندازه‌گیری: ۳۰۰ تا ۱۱۰۰ هکتوپاسکال (hPa)
  • دقت اندازه‌گیری: ۰٫۰۳ hPa (در حالت استاندارد)
  • دقت ارتفاع: ۰٫۱ متر

دما:

  • محدوده اندازه‌گیری: -۴۰ درجه سانتیگراد تا +۸۵ درجه سانتیگراد
  • دقت اندازه‌گیری: ۰٫۱ درجه سانتیگراد

رابط ارتباطی: I2C (قابلیت انتقال داده با سرعت چند کیلوهرتز)

ولتاژ عملکرد: ۱٫۸ تا ۳٫۶ ولت

مصرف برق:

  • در حالت فعال: ۳ میلی آمپر
  • در حالت استندبای: ۰٫۱ میکروآمپر

ابعاد: ۵٫۵ میلی‌متر در ۵٫۵ میلی‌متر در ۱٫۲ میلی‌متر

قابلیت پیش‌بینی آب و هوا براساس تغییرات فشار هوا

 

 

 


بررسی پایه های سنسور BMP085


سنسور BMP085 دارای ۸ پین (پایه) است که برای ارتباط و کنترل با میکروکنترلر یا برد کنترلی استفاده می‌شوند.

  • VCC: این پایه به منبع تغذیه مورد نیاز سنسور وصل می‌شود. ولتاژ تغذیه مورد نیاز BMP085 بین ۱٫۸ و ۳٫۶ ولت است.
  • GND: این پایه به زمین (منفی) مربوط به منبع تغذیه متصل می‌شود.
  • SDA (Serial Data): این پایه برای ارتباط دو طرفه (داده) بین BMP085 و میکروکنترلر از طریق رابط I2C استفاده می‌شود.
  • SCL (Serial Clock): این پایه برای ارسال سیگنال ساعت I2C بین BMP085 و میکروکنترلر مورد استفاده قرار می‌گیرد.
  • XCLR (External Clock): این پایه به یک سیگنال ساعت خارجی وصل می‌شود، اما در BMP085 مورد استفاده قرار نمی‌گیرد و به طور عمومی با اتصال به GND می‌توان آن را غیرفعال کرد.
  • EOC (End of Conversion): این پایه به میکروکنترلر اعلام می‌کند که تبدیل داده در سنسور BMP085 به پایان رسیده است و داده مورد نظر در دسترس است.
  • SDO/ADR (Serial Data Output/Address Select): این پایه از طریق آن می‌توان آدرس I2C سنسور BMP085 را تغییر داد. با اتصال به VCC یا با ارتباط به GND، آدرس سنسور می‌تواند تغییر کند.
  • CSB (Chip Select Bar): این پایه به طور عمومی با اتصال به VCC استفاده می‌شود و نشان می‌دهد که سنسور فعال است. در برخی موارد، اتصال به GND سبب غیرفعال شدن سنسور BMP085 می‌شود.

 

 


راه اندازی سنسور BMP085 با Arduino


برای اتصال سنسور BMP085 به برد آردوینو، شما نیاز به اتصال پین‌های سنسور به پین‌های متناظر برد آردوینو دارید. در زیر روش اتصال را بررسی می‌کنیم. سنسور BMP085 دارای پایه‌های VCC، GND، SDA، و SCL است. برای اتصال به برد آردوینو، این پایه‌ها به صورت زیر متصل می‌شوند:

  • پایه VCC سنسور به پین VCC برد آردوینو متصل می‌شود.
  • پایه GND سنسور به پین GND برد آردوینو متصل می‌شود.
  • پایه SDA سنسور به پین SDA (معمولاً پین A4) برد آردوینو متصل می‌شود.
  • پایه SCL سنسور به پین SCL (معمولاً پین A5) برد آردوینو متصل می‌شود.

پس از اتصال درست، مطمئن شوید که شما از منبع تغذیه مناسب برای سنسور (بین ۱٫۸ و ۳٫۶ ولت) استفاده می‌کنید.با اتصال درست و استفاده از کد مربوطه، شما باید بتوانید اندازه‌گیری‌های دما، فشار و ارتفاع را با استفاده از سنسور BMP085 در آردوینو خود انجام دهید.

 


کتابخانه Adafruit BMP085


کتابخانه Adafruit BMP085 یک کتابخانه است که توسط شرکت Adafruit Industries توسعه داده شده است و قابلیت‌ها و توابعی را برای ارتباط با سنسور فشار دیجیتالی BMP085/BMP180 فراهم می‌کند. سنسور BMP085 یک سنسور فشار جوی است که همچنین قادر است دما را اندازه‌گیری کند.برای استفاده از کتابخانه Adafruit BMP085 باید مراحل زیر را دنبال کنید:

  •  نصب کتابخانه: می‌توانید کتابخانه را از مخزن GitHub شرکت Adafruit دانلود کنید یا از مدیریت کتابخانه Arduino استفاده کنید. اگر از محیط Arduino IDE استفاده می‌کنید، به “Sketch” -> “Include Library” -> “Manage Libraries” بروید و کتابخانه “Adafruit BMP085” را جستجو کنید. سپس روی کتابخانه کلیک کرده و دکمه “Install” را بزنید.
  •  اتصال سنسور: مطمئن شوید که سنسور BMP085 را به درستی به برد Arduino خود متصل کرده‌اید. BMP085 از طریق I2C با Arduino ارتباط برقرار می‌کند، بنابراین باید پین‌های SDA و SCL سنسور را به پین‌های متناظر روی Arduino خود (معمولاً با علامت A4 و A5) متصل کنید.
  •  اضافه کردن کتابخانه: در کد Arduino خود، کتابخانه Adafruit BMP085 را با اضافه کردن خط زیر در ابتدای کدتان وارد کنید: #include <Adafruit_BMP085.h>

 


کد آردوینو سنسور BMP085


کد را کپی و در نرم افزار آردوینو  اجرا کنید.

 

#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;

void setup() {
Serial.begin(9600);

if (!bmp.begin()) {
Serial.println(“Could not find a valid BMP085 sensor, check wiring!”);
while (1);
}
}

void loop() {
float temperature = bmp.readTemperature();
float pressure = bmp.readPressure();
float altitude = bmp.readAltitude();

Serial.print(“Temperature: “);
Serial.print(temperature);
Serial.println(” °C”);

Serial.print(“Pressure: “);
Serial.print(pressure);
Serial.println(” Pa”);

Serial.print(“Altitude: “);
Serial.print(altitude);
Serial.println(” meters”);

Serial.println();

delay(2000);
}

 

این کد ابتدا کتابخانه Wire و Adafruit BMP085 را فراخوانی می‌کند. سپس در تابع setup()، ارتباط سریال با سرعت ۹۶۰۰ بیت بر ثانیه را آغاز می‌کند و سنسور BMP085 را مقداردهی اولیه می‌کند. در صورت عدم شناسایی سنسور، پیام خطا را به صورت مکرر نمایش می‌دهد.در تابع loop()، اندازه‌گیری دما، فشار و ارتفاع با استفاده از سنسور BMP085 انجام می‌شود. سپس مقادیر به صورت سریال چاپ می‌شوند. بین هر اندازه‌گیری، تاخیری به مدت ۲ ثانیه وجود دارد.با بارگذاری این کد بر روی برد آردوینو و با اتصال درست سنسور BMP085، شما باید اندازه‌گیری‌های دما، فشار و ارتفاع را در پنجره سریال مشاهده کنید.

 


جمع بندی


سنسور BMP085 یک سنسور فشار جوی دیجیتالی است که توسط شرکت Bosch تولید شده است. این سنسور قادر است فشار جو را با دقت بالا اندازه‌گیری کند و همچنین قابلیت اندازه‌گیری دما را نیز داراست. BMP085 یک سنسور ایده‌آل برای پروژه‌هایی است که نیاز به اندازه‌گیری فشار جوی و تغییرات آن در طول زمان دارند.از آنجا که BMP085 از پروتکل ارتباطی I2C استفاده می‌کند، اتصال و ارتباط آن با بردهای Arduino و سایر میکروکنترلرها بسیار آسان است. با استفاده از کتابخانه Adafruit BMP085، قادر خواهید بود به راحتی و با استفاده از توابع آن، داده‌های فشار جو و دما را خوانده و در پروژه‌های خود استفاده کنید.با توجه به قابلیت‌های BMP085، می‌توان آن را در انواع پروژه‌هایی استفاده کرد. از جمله می‌توان به پروژه‌های هواشناسی، سیستم‌های کنترلی خودکار و رباتیک، اندازه‌گیری ارتفاع و تعیین سطح دریا و همچنین پروژه‌های مرتبط با انرژی خورشیدی و تولید برق اشاره کرد.با استفاده از BMP085، می‌توانید به صورت دقیق و قابل اعتماد فشار جو و تغییرات آن را در پروژه‌های خود اندازه‌گیری کنید. همچنین، با داشتن قابلیت اندازه‌گیری دما، می‌توانید داده‌های مرتبط با دما را نیز در برنامه خود استفاده کنید.بنابراین، با توجه به دقت، سهولت استفاده و قابلیت‌های گسترده آن، سنسور BMP085 یک انتخاب مناسب برای پروژه‌ه های الکترونیکی و سیستم‌های کنترلی است. با استفاده از این سنسور، می‌توانید در طراحی سامانه‌های خودکار مانند سیستم‌های کنترل دما و فشار، سامانه‌های اندازه‌گیری ارتفاع و سطح آب، سیستم‌های آب و هواشناسی و سایر پروژه‌های مرتبط با محیط زیست و انرژی استفاده کنید.به طور خلاصه، سنسور BMP085 با دقت بالا و قابلیت‌های اندازه‌گیری فشار جو و دما، انتخابی مناسب برای پروژه‌هایی است که نیاز به اندازه‌گیری و کنترل فشار جو و دما دارند. با استفاده از کتابخانه Adafruit BMP085، می‌توانید به راحتی و با کمترین تلاش از این سنسور در پروژه‌های خود استفاده کنید و به داده‌های دقیق و موثق دسترسی پیدا کنید.

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

علیرضا قربانی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۱ دیدگاه

  • باعرض سلام و تشکر از مطالب مفیدتون.
    برای پروژه کارشناسی رشته مهندسی پزشکی نیاز به استفاده از ماژول فشار bmp085 یا bmp180 هستم.دریچه ورود وخروج هوای محیط اندازه گیری درماژول از روی تصویرش مشخص نیست. لطفا راهنمایی کنین.
    فایل های آموزشی سایت در این زمینه رو و برنامه فشارماژول را چطور میتونیم تهیه کنیم؟
    ممنون میشم پاسخ بدین.

    • با سلام
      ضمن تشکر از توجه شما، لطفا دقت داشیته باشید که این ماژول دریچه ورود و خروج ندارد. بلکه سنسور به کار رفته در آن دارای یک حفره ریز جهت تماس با نقطه فشار است. همچنین نمونه ساده برنامه ماژول فشار سنج در همین صفحه آموزش داده شده است. برنامه‌های دیگر را باید خودتان توسعه دهید، به عبارتی نیاز به دانش برنامه نویسی دارید. و سوالات مربوطه را میتوانید با خیال راحت از طریق ثبت نظر به همین روش مطرح کنید.

      شاد و پیروز باشید.

  • سلام.پس چه سنسوری رو میتونم استفاده کنم که سر ورودی وخروجی داشته باشه قابل اتصال به برد اردوینو باشه و سرخروجی هم داشته باشه وبتونم فشارهوای یک مخزن رو ازطریق شیلنگ متصل به اون اندازه وسرخروجی شیلنگ که ازماژول دربیاد رواستفاده کنم؟
    ممنون میشم راهنمایی کنین

      • سلام
        ممنون ازپاسختون.ببخشیداین ماژول رو موجود ندارین من اگه بخوام امکانش هست سریع به دستم برسه وداشته باین؟
        درباره برنامه نویسی با اردوینو این ماژول هم میشه یه راهنمایی کنین؟
        ممنون

        • سلام مجدد، چنانچه کالایى ناموجود است، میتوانید از قسمت مربوطه ایمیلتان را جهت یادآورى وارد کنید. همچنین براى راه اندازى ماژول مربوطه باید از کتابخانه مربوط به آن استفاده کنید.

      • ایا سنسور MLP3115A2 برای پروژه ما مناسب نیست.لطفا نظرتون رو بفرمایید؟
        چون این سنسور مناسبتره

  • سلام.
    روزتون بخیر.
    تشکر بابت آموزش خوبتون.
    من یک پروژه ای دارم و میخوام قطعه ای تولید کنم که اگر به زیر آب رفت با استفاده از فشار آب تشخیص دهد در چه عمقی قطعه قرار دارد.
    برای این مهم میشه از این ماژول استفاده کرد؟
    اگر پاسخ منفی است چه ماژول و سنسوری توانایی ارسال عمق قرار گرفته زیر آب را داراست.
    با تشکر

    • با سلام
      ضمن تشکر از توجه شما، تا جایی که بنده اطلاع دارم از این ماژول نمی‌توان در زیر آب استفاده کرده، در شرایط جوی مختلف کارایی دارد ولی در آب خیر. ماژول و سنسورهای فشار سنج انواع مختلفی دارند که با جستجو در وب میتوانید مدل مناسب را پیدا کنید. همچنین از دیگر کاربران که در این زمینه تجربه دارند، خواهشمندم که تجربه‌شان را به اشتراک بگذارند.

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

    • با سلام و تشکر از شما
      برای این منظور نیاز به طراحی برد نمی‌باشد. کافیست یک برد آردوینو Arduino انتخاب کنید. سپس با استفاده از سنسورهای مربوطه فقط کافیست موارد را برنامه نویسی کنید. در خصوص برنامه نویسی هم از طریق دیجی اسپارک و همین کامنت‌ها می‌توانید سوالتان را مطرح کنید.

      • سلام مقدور هست که نام این سنسور ها رو عنوان کنید چون نتونستم تا سرچ کردن گزینه های مناسبی پیدا کنم

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

    • سلام
      کاربر گرامی لطفا سوال خود را شفاف تر بپرسید تا راهنمایی شود.
      اگر منظور شما از برد، بردهای میکروکنترل است که بله می‌توانید با کدنویسی از یک برد برای راه اندازی چند سنسور استفاده کنید.

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

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