1. صفحه نخست
  2. راهنمای سنسورها
  3. آموزش جامع سنسور(فشار،دما،رطوبت) BME280 با برد Arduino

آموزش جامع سنسور(فشار،دما،رطوبت) BME280 با برد Arduino

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

از جمله سرفصل های کاربردی در این مقاله می توان به موارد زیر اشاره کرد :

  1. معرفی کامل سنسور
  2. نحوه اتصال و بستن کامل مدار
  3. نصب کتابخانه های مورد نیاز
  4. شرح کد سنسور
  5. اجرای یک پروژه ساده و کاربردی (در این قسمت نحوه نمایش پارامترها توسط سنسور را متوجه خواهید شد.)
سنسور BME280 با آردوینو
سنسور BME280 با آردوینو

معرفی ماژول سنسور BME280

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

چندین ورژن از این ماژول سنسور موجود می باشد. ماژول سنسور BME280 از I2C و SPI (پروتکل ارتباطی) برای تبادل داده با یک میکروکنترلر استفاده می شود.

سنسور BME280
سنسور BME280

اتصال Arduino-uno به سنسور BME280

برای اتصال این سنسور از پروتکل ارتباطی I2C استفاده می شود. بنابراین وصل کردن آن، به اصطلاح سیم کشی ماژول سنسور ما بسیار کار ساده ای بنظر می رسد!

طبق فرمت زیر اتصال سنسور BME280 به پایه های I2C آردوینو uno انجام می شود.

اتصال سنسور BME280 به آردوینو

  • پایه Vin: اتصال به مثبت 5 ولت
  • پایه SCL: پایه سریال کلاک پروتکل I2C
  • پایه SDA: پایه سریال دیتا (اطلاعات) پروتکل I2C
  • پایه GND: پایه زمین یا ولتاژ 0

ورژن های  هم وجود دارد که می توانند از پروتکل های ارتباطی I2C و SPI دیگری استفاده کنند.در شکل زیر یک ماژول BME280-SPI را مشاهده می کنید:

سنسور BME280-SPI
سنسور BME280-SPI

 

اگر شما یکی از این سنسورها را استفاده می کنید، برای اتصال پروتکل I2C پین ها را مطابق فرمت زیر وصل کنید :

اتصال سنسور BME280 به آردوینو

  • پایه (SCK(SCL pin: اتصال به A5 آردوینو
  • پایه (SDI(SDA pin: اتصال به A4 آردوینو

اگر از پروتکل SPI استفاده می کنید. مطابق دستور زیر اتصال را انجام دهید :

اتصال سنسور BME280 به آردوینو با پروتکل SPI

  • پایه (SCK(SPI Clock: اتصال به pin13 آردوینو
  • پایه (SDO(MISO: اتصال به pin12 آردونیو
  • پایه (SDI(MOSI: اتصال به pin11 آردوینو
  • پایه (CS(Chip Select: اتصال به pin10 آردوینو

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

برای تکمیل آموخته هایتان در این آموزش، ساخت یک پروژه را به عنوان نمونه شروع می کنیم و جهت اجرا نیاز به قطعات زیر دارید:

تمامی قطعات الکترونیکی خود را با هزینه ای به صرفه می توانید در اینجا پیدا کنید.

شماتیک مدار

اتصال سنسور BME280 در شکل زیر به صورت مداری شماتیک قرار دارد:

شماتیک مدار سنسور BME280 با برد آردوینو
شماتیک مدار سنسور BME280 با برد آردوینو

نصب کتابخانه BME280

برای دریافت پارامترهای ذکر شده در ابتدا این مقاله (دما،فشار،رطوبت و تخمین ارتفاع)، باید کتابخانه Adafruit_BME280  را نصب کنید.

مراحل زیر را به ترتیب در Arduino IDE انجام دهید:

نرم افزار Arduino IDE را باز کنید به منوی Sketch بروید پس از آن به زیر منوی Include Library سپس به  Manage Libraries وارد شوید.

عبارت “adafruit bme280 ” را سرچ و کتابخانه را نصب کنید:

نصب کتابخانه سنسور BME280
نصب کتابخانه سنسور BME280

نصب کتابخانهAdafruit_Sensor

برای فعال سازی و استفاده از BME280 library، نصب کتابخانه  Adafruit_Sensor library ضروری است. مراحل نصب آن را در نرم افزار آردوینو IDE به شما آموزش خواهیم داد:

به منوی Sketch بروید. پس از آن به زیر منوی Include Library، سپس به Manage Libraries وارد شوید و عبارت  “Adafruit Unified Sensor” را سرچ کنید. بعد از اینکه تا انتهای صفحه  آمدید،کتابخانه را پیدا و نصب کنید:

نصب کتابخانه adafruit sensor library
نصب adafruit sensor library

در آخر، Arduino IDE خود را ببندید و دوباره باز کنید:

خواندن پارامترهای فشار،دما و رطوبت

برای خواندن این سه پارامتر،(به اصطلاح reading کردن این 3 پارامتر توسط سنسور) ما از یک مدل طرح شده در کتابخانه استفاده می کنیم.

مدار آردوینو و سنسور BME280
مدار آردوینو و سنسور BME280

تا به اینجا آموزش، کتابخانه BME280 و Adafruit_Sensor نصب شده است.

نرم افزار Arduino IDE را باز کنید. به منوی file پس از آن به زیر منوی Examples بروید پس از آن به Adafruit BME280 library  و سپس  bme280 test را باز کنید:

نحوه عملکرد کد

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

کتابخانه ها

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

کتابخانه wire از پروتکل I2C و Adafruit_Sensor استفاده می کند تا کتابخانه های Adafruit_BME280 را به BME280 sensor متصل کند:

رابط SPI

طبق دستور زیر پین های SPI را تعریف می کنیم:

فشار سطح دریا

متغیری به نام SEALEVELPRESSURE_HPA با دستور زیر ایجاد می شود:

  • این متغیر فشار سطح دریا را بر حسب هکتوپاسکال ( معادل میلی بار) محاسبه می کند.
  • همچنین برای تخمین ارتفاع، با دادن مقادیر مختلف فشار؛ارتفاع را بدست می آوریم.

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

I2C

در این مثال از پروتکل رابط I2C، به عنوان پیش فرض استفاده می شود. که باید یک شی Adafruit_BME280 به نام bme ایجاد کنید.

برای استفاده از SPI، باید دستور قبلی را comment و یکی از دستورهای زیر را uncomment کنید:

()setup

در این قسمت، ارتباط سریال را شروع کنید :

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

 اگر در زمان آزمایش و استفاده از سنسور هیچ پارامتری را دریافت نکردید،باید آدرس I2C سنسور BME280 خودتان را پیدا کنید! با اتصال سنسور به آردوینو می توانید این مدل اسکنر I2C را برای چک کردن آدرس سنسور خود، اجرا کنید. سپس آدرس را در متد ()begin قرار دهید.

نمایش مقادیر

در ()loop، تابع ()printValues مقادیر را از BME280 می خواند و نتایج را در مانیتور سریال چاپ می کند.

برای مشاهده پارامترهای:دما،رطوبت،فشار و تخمین ارتفاع یکی از متدهای زیر را در آبجکت bme وارد کنید :

  • ()bme.readTemperature : برای نمایش دما بر حسب سلسیوس
  • ()bme.readHumidity: برای نمایش رطوبت مطلق
  • ()bme.readPressure: برای نمایش فضار مطلق (برحسب هکتوپاسکال hPa=میلی بار)
  • (bme.readAltitude(SEALEVELPRESSURE_HPA: تخمین ارتفاع برحسب متر بر اساس فشار سطح دریا

نمایش

راهنمای جامع BME280-Arduino
راهنمای جامع BME280-Arduino

 

  • کد را در برد آردوینو آپلود کنید.

  • مانتیور سریال در ریت باد 9600 باز کنید.
serial-monitor

پس از مراحل گفته شده اکنون باید پارامترها را در مانیتور سریال ببینید :

نمایش پارامترها بر مانیتور سریال
نمایش پارامترها بر مانیتور سریال
جمع بندی مطالب فوق

سنسور BME280 یک راه به صرفه و کارآمد برای محاسبه فشار، دما و رطوبت نسبی می باشد. رابط های این سنسور، پروتکل I2C است.باید سنسور را به آردوینو I2C pins  وصل کنید.  همانطور که می دانید، وصل شدن با این پروتکل به معنای اسانتر شدن راه شماست.

کد نویسی را شروع کنید و با نصب BME280_Adafruit library خیلی ساده شرح تمامی  مقادیر پارامترهای لازمه را در مانیتور سریال خود دریافت کنید.

باید از متد های زیر استفاده کنید :

()readTemperature()، readHumidity()،readPressure()، readAltitude

برای آموزش های بیشتر و تکمیلی راجع به سنسورها، اینجا کلیک کنید.

امیدواریم که این آموزش برای شما مفید واقع شده باشد.

در قسمت نظرات ایده ها و مطالب پیشنهادی خود را با ما به اشتراک بگذارید.

با تشکر.

آخرین آپدیت در آوریل 10, 2021

آیا این مقاله آموزشی مفید بود ؟

نوشته های مرتبط

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