مقدمه
آنچه در این آموزش یاد می گیرید
- فشار بارومتریک چیست؟
- سنسور فشار BOSCH BMP180 چیست؟
- چگونه از سنسور فشار BMP180 با آردوینو استفاده کنید؟
فشار بارومتریک چیست؟
فشار بارومتریک یا فشار اتمسفر، از وزن هوای روی زمین ناشی می شود. این فشار در سطح دریاهای آزاد حدود 1 کیلوگرم بر سانتی متر مربع می باشد.
برای بیان میزان فشار اتمسفر واحدهای مختلفی وجود دارد که این واحدها به راحتی قابل تبدیل به یکدیگر می باشند، واحد SI برای اندازه گیری فشار پاسکال (Pa) می باشد.
Unit | 1hPa equivalent |
---|---|
Pascal(Pa) | 100 |
Atmosphere(atm) | 0.000986923 |
Milibar(MBR) | 1 |
Millimeters Mercury(mmHg) | 0.750063755 |
Inch of Mercury(inHg) | 0.02953 |
Torr(torr) | 0.750061683 |
Pounds per square inch(psi) | 0.014503774 |
Newtons per square meter(N/m^2) | 100 |
ویژگیهای ماژول سنسور فشار بارومتریک BMP180
سنسور BMP180 سنسوری برای اندازهگیری فشار میباشد. این ماژول قابلیت اندازهگیری دما را نیز دارد.
مهمترین ویژگیهای این ماژول در زیر آورده شده است:
- محدوده فشار : 300 تا 1100hPa
- قابلیت اندازهگیری دما
- کاملا کالیبره
- دقت اندازه گیری فشار: 0.01hPa
- دقت اندازه گیری دما: 0.1 درجه سانتیگراد
- پروتکل ارتباطی I2C
موارد کاربرد این ماژول:
- گوشی های همراه
- PDA
- GPS
- تجهیزات فضای باز
نکته
هر hPa برابر 100Pa میباشد.
معرفی پایه های (Pinout) ماژول سنسور فشار بارومتریک BMP180
ماژول فشار بارومتریک BMP180 دارای 4 پایه به شرح زیر است:
- VIN: تغذیه ماژول
- GND: زمین
- SDA: پایه دیتا I2C
- SCL: پایه کلاک I2C
پین اوت (Pinout) این ماژول را میتوانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول سنسور فشار بارومتریک BMP180 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، ماژول را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
به Library manager رفته و با سرچ کلمه BMP085، کتابخانهی Adafruit_BMP085_Unified را نصب کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید.
/*
GY-68-BMP180-Barometric-Pressure-Sensor-Module
modified on 30 Dec 2020
by Amir Mohammad Shojaee @ Electropeak
https://electropeak.com/learn/
Based on Adafruit Example
*/
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup(void)
{
Serial.begin(9600);
Serial.println("Pressure Sensor Test"); Serial.println("");
/* Initialise the sensor */
if(!bmp.begin())
{
/* There was a problem detecting the BMP085 ... check your connections */
Serial.print("Ooops, no BMP085 detected ... Check your wiring or I2C ADDR!");
while(1);
}
}
void loop(void)
{
/* Get a new sensor event */
sensors_event_t event;
bmp.getEvent(&event);
/* Display the results (barometric pressure is measure in hPa) */
if (event.pressure)
{
/* Display atmospheric pressue in hPa */
Serial.print(" Pressure: ");
Serial.print(event.pressure);
Serial.println(" hPa");
float temperature;
bmp.getTemperature(&temperature);
Serial.print(" Temperature: ");
Serial.print(temperature);
Serial.println(" C");
/* Convert the atmospheric pressure, and SLP to altitude */
/* Update this next line with the current SLP for better results */
float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA;
Serial.print(" Altitude: ");
Serial.print(bmp.pressureToAltitude(seaLevelPressure,
event.pressure));
Serial.println(" m");
Serial.println("");
}
else
{
Serial.println("Sensor error");
}
delay(1000);
}
در ابتدای برنامه 3 کتابخانه مدنظر را وارد میکنیم. در ادامه و در خروجی سریال مانیتور به ترتیب فشار بر حسب hPa، دما بر حسب سانتیگراد و ارتفاع از سطح دریا بر حسب متر را نمایش میدهیم. ارتفاع از سطح دریا از طریق فشار اندازهگیری شده محاسبه میشود.
عکس زیر خروجی سریال مانیتور را نشان میدهد. سه پارامتر فشار، دما و ارتفاع را مشاهده میکنید.