حساس الضغط الجوي BME280

تعريف بالحساس :

يقيس هذا الحساس الضغط الجوي والحرارة والرطوبة في الجو المحيط به والارتفاع التقريبي عن سطح البحر ويتميز بالدقة العالية ويستطيع التواصل مع المتحكمات كالاردوينو عن طريق بروتوكول اتصال I2C .

يأتي هذا الحساس بتصميمين (مبين بالصورة جانباً) ب4 او 6 منافذ توصيل ولكن بسبب دعمه لاتصال I2C ففي كلا الحالتين نحتاج لمنفذي توصيل SDA , SCL فقط (اضافة للتغذية الكهربائية).

كما يمكن توصيل الحساس (نسخة 6 منافذ) مع المتحكمات عن طريق بروتوكول SPI .

 

BME280 . Atmospheric Pressure Sensor

تحميل المكتبات الضرورية :

يحتاج هذا الحساس لمكتبات خاصة لتشغيله وهي مكتبة Adafruit sensors و مكتبة bme280

بالإضافة الى مكتبات بروتوكول الاتصال المستخدم I2C أو SPI (هذه المكتبات مضمنة في برنامج الاردوينو بشكل تلقائي).

التوصيل والبرمجة :

سنقوم الان بعرض كيفية توصيل الحساس بالاردوينو باستخدام بروتوكولي الاتصال I2C , SPI وقراءة قيم الحساس وعرضها على السيريال مونيتور .

BME280 . Atmospheric Pressure Sensor

الكود

				
					#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); 
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
status = bme.begin();  
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();}
void loop() { 
printValues();
delay(delayTime);}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();}
				
			

الكود

				
					#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
void setup() {
Serial.begin(9600);
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor,check wiring!");
while (1);}}
void loop() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println("*C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println("hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println("m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println("%");
Serial.println();
delay(1000);}
				
			

انتقل إلى المتجر

حساس BME280

30.00 ر.س

اردوينو اونو

50.00 ر.س

اسلاك توصيل

15.00 ر.س
انتقال إلى الأعلى