مواجهة BME280 حساس الضغط الجوي ودرجة الحرارة مع اردوينو اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

ـ

امنح مشروع الاردوينو خاصتك القدرة على الشعور بالعالم من حوله باستخدام BME280 . تتميز هذه المستشعرات بسهولة الاستخدام ، والمعايرة مسبقًا ، ولا تتطلب مكونات إضافية حتى تتمكن من البدء في قياس الرطوبة النسبية ودرجة الحرارة والضغط الجوي وتقريبا الارتفاع في أي وقت من الأوقات .

حساس درجة الحرارة والرطوبة و الضغط BME280

في قلب هذه الوحدة ، يوجد مستشعر درجة الحرارة والرطوبة والضغط الرقمي . إنه بديل لأجهزة استشعار مثل BMP180 أو BMP085 أو BMP183 .

BME280-Chip-On-The-Module

للمستشعر دقة في قياس الرطوبة النسبية من 0 إلى 100٪ بدقة ± 3٪ ، والضغط الجوي من 300Pa إلى 1100 hPa بدقة مطلقة ± 1 hPa ، ودرجة الحرارة من -40 درجة مئوية إلى 85 درجة مئوية مع دقة ± 1.0 درجة مئوية .

قياسات الضغط دقيقة للغاية (ضجيج منخفض الارتفاع يبلغ 0.25 متر) ، حتى يمكنك استخدامه كمقياس الارتفاع بدقة ± 1 متر .

BME280-Sensor-Specifications

متطلبات الطاقة في BME280

تأتي الوحدة مع منظم LM6206 3.3V على متن اللوحة وبرتكول  I2C ، حتى تتمكن من استخدامه مع متحكم منطقي 3.3 فولت أو 5 فولت مثل اردوينو دون قلق  .

BME280-Module-I2C-Voltage-Translator-3.3V-Regulator

يستهلك الموديل BME280 أقل من 1 مللي أمبير خلال القياسات و 5μA فقط أثناء الخمول . يسمح انخفاض استهلاك الطاقة بالتنفيذ في الأجهزة التي تعمل بالبطاريات مثل الهواتف أو وحدات GPS أو الساعات .

مواجهة برتكول I2C في BME280

تتميز الوحدة بواجهة I2C بسيطة بسلكين يمكن ربطها بسهولة مع أي متحكم من اختيارك .

عنوان I2C الافتراضي لوحدة BME280 هو 0x76HEX ويمكن تغييره إلى 0x77HEX بسهولة باستخدام وصلة لحام إلى جانب الرقاقة .

BME280-Module-I2C-Address-Selector-Solder-Jumper
الإجراء لتغيير عنوان I2C :
  • تحديد موقع الشرائح لحام إلى جانب الرقاقة . افتراضيًا ، يتم توصيل اللوحة النحاسية الوسطى باللوحة اليسرى. 
  • خدش الاتصال بين الوسادة النحاسية الوسطي واليسرى لفصل الاتصال بينهم  .
  • أضف نقطة لحام بين الوسادة النحاسية اليمنى والوسطى للانضمام إليهم . هذا يسمح لك بتعيين عنوان I2C 0x77HEX .
BME280-I2C-Address-Selection-Jumper-Setting

أطراف حساس BME280

تحتوي وحدة BME280 على 4 دبابيس فقط تصل بها إلى العالم الخارجي . الاتصالات كالتالي :

BME280-Pinout-Temperature-Humidity-Barometric-Pressure-Sensor
  • VIN هو مصدر الطاقة للوحدة التي يمكن أن تكون بين 3.3V إلى 5V .
  • GND يجب أن تكون مرتبطة إلى GND الاردوينو .
  • SCL هو دبوس على مدار الساعة التسلسلية لواجهة I2C .
  • SDA هو دبوس البيانات التسلسلية لواجهة I2C .

الأسلاك - ربط وحدة BME280 لاردوينو UNO

دعنا نربط وحدة BME280 مع الاردوينو .

الاتصالات بسيطة إلى حد ما . ابدأ بتوصيل دبوس VIN بمخرج 5V على الاردوينو وقم بتوصيل GND بالأرضي .

الآن ما زلنا مع الاطراف التي يتم استخدامها للاتصال I2C . لاحظ أن كل لوحة اردوينو بها دبابيس I2C مختلفة يجب توصيلها وفقًا لذلك . على لوحات الاردوينو ذات تخطيط R3 ، توجد SDA  و SCL  على رؤوس الدبوس القريبة من دبوس AREF . وهي معروفة أيضًا باسم A5 (SCL) و A4 (SDA) .
إذا كان لديك ميجا ، فإن الاطراف مختلفة! ستحتاج إلى استخدام الرقمين 21 (SCL) و 20 (SDA) . أو الرجوع للجدول أدناه لفهم سريع .

5

يوضح لك الرسم التوضيحي التالي كيفية توصيل كل شيء .

Fritzing-Wiring-BME280-Module-to-Arduino
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

كود اردوينو - قراءة درجة الحرارة والرطوبة النسبية والضغط الجوي لوحدة BME280

سوف يعطيك الكود التالي فهماً كاملاً لكيفية قراءة درجة الحرارة والرطوبة النسبية والضغط الجوي من وحدة BME280 ويمكن أن يكون بمثابة أساس لمزيد من التجارب والمشاريع العملية .

لتحميل الكود البرمجي اضغط هنا
#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-Temperature-Humidity-Pressure-Altitude-Output-On-Serail-Monitor

أنتهت !!!

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *