آموزش آردوینوپروژه های آردوینو

اتصال سنسور BME280 به آردوینو (اندازه گیری دما، رطوبت و فشار)

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

ماژول سنسور BME280

ماژول حسگر BME280 فشار هوا، دما و رطوبت را می خواند. از آنجا که فشار با ارتفاع تغییر می کند، می توانید ارتفاع را نیز تخمین بزنید. چندین نسخه از این ماژول سنسور وجود دارد. سنسور BME280 از پروتکل ارتباطی I2C یا SPI برای تبادل داده با میکروکنترلر استفاده می کند.

ما از ماژول نشان داده شده در شکل زیر استفاده می کنیم.

ماژول سنسور BME280این سنسور با استفاده از پروتکل ارتباطی I2C ارتباط برقرار می کند، بنابراین سیم کشی بسیار ساده است. همانطور که در جدول زیر نشان داده شده است، سنسور BME280 را به پین ​​های Arduino Uno I2C متصل می کنید:

BME280 Arduino
Vin 5V
GND GND
SCL A5
SDA A4

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

سنسور BME280 با SPI و I2C

برای استفاده از پروتکل ارتباطی I2C، از پین های زیر استفاده کنید:

BME280 Arduino
SCK (SCL Pin) A5
SDI (SDA pin) A4

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

BME280 Arduino
SCK (SPI Clock) Pin 13
SDO (MISO) Pin 12
SDI (MOSI) Pin 11
CS (Chip Select) Pin 10

مدار راه اندازی BME280

سنسور BME280 را همانطور که در مدار شماتیک زیر نشان داده شده است به برد آردوینو خود وصل کنید.

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

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

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

  • ماژول سنسور BME280
  • برد آردوینو Uno
  • برد بورد
  • سیم های جامپر

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

برای دریافت اطلاعات از ماژول حسگر BME280 باید از کتابخانه Adafruit_BME280 استفاده کنید. مراحل بعدی را برای نصب کتابخانه در Arduino IDE خود دنبال کنید:

Arduino IDE خود را باز کنید و به Sketch > Include Library > Manage Libraries بروید.

عبارت adafruit bme280 را در کادر جستجو جستجو کنید و کتابخانه را نصب کنید.

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

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

به Sketch > Include Library > Manage Libraries بروید و «Adafruit Unified Sensor» را در کادر جستجو تایپ کنید. برای یافتن کتابخانه و نصب آن تا انتها به پایین بروید.

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

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

مطلب پیشنهادی:  ساخت موبایل ساده با برد آردوینو و ماژول GSM Sim900

کد با گنجاندن کتابخانه‌های مورد نیاز شروع می‌شود: کتابخانه Wire برای استفاده از I2C، و کتابخانه‌های Adafruit_Sensor و Adafruit_BME280 برای ارتباط با حسگر BME280 استفاده میشوند.

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BME280.h>

 

به دلیل این که می خواهیم از ارتباط I2C استفاده کنیم، خطوط زیر که پین ​​های SPI را تعریف می کنند را کامنت میکنیم.

/*#define BME_SCK 13
#تعریف BME_MISO 12
#تعریف BME_MOSI 11
#define BME_CS 10*/

متغیری به نام SEALEVELPRESSURE_HPA ایجاد می شود.

#define SEALEVELPRESSURE_HPA (1013.25)

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

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

Adafruit_BME280 bme; // I2C

برای استفاده از SPI، باید خط قبلی را کامنت کرده و خطوط زیر را از حالت کامنت خارج کنید.

//Adafruit_BME280 bme(BME_CS);

// Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

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

Serial.begin(9600);

و سنسور مقداردهی اولیه می شود:

status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}

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

void loop() {
printValues();
delay(delayTime);
}

خواندن دما، رطوبت، فشار و تخمین ارتفاع به سادگی استفاده از متود های زیر در شی bme است:

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

آپلود کد آردوینو برای سنسور BME280

کد کامل را در برد آردوینو خود آپلود کنید. سپس سریال مانیتور را با نرخ باود 9600 باز کنید. شما باید مقدار های نمایش داده شده در مانیتور سریال را ببینید.

آپلود کد آردوینو برای سنسور BME280

BME280 یک راه آسان و ارزان برای اندازه گیری فشار، دما و رطوبت فراهم می کند. سنسور از طریق پروتکل ارتباطی I2C ارتباط برقرار می کند، به این معنی که سیم کشی بسیار ساده است، فقط باید سنسور را به پین ​​های Arduino I2C متصل کنید.

نوشتن کد برای دریافت خوانش سنسور نیز به لطف کتابخانه BME280_Adafruit بسیار ساده است. شما فقط باید از متدهای readTemperature()، readHumidity() و readPressure() استفاده کنید. همچنین می توانید با استفاده از متد readAltitude() ارتفاع را تخمین بزنید.

موارد موجود در فایل : سورس کامل

4 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

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

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