وحدة مستشعر الضغط ودرجة الحرارة BMP280 عالية الدقة

50,00 DH 80,00 DH

التوفر:

549 متوفر في المخزون

رمز المنتج: 0177 التصنيفات: ,

الوصف

وحدة مستشعر الضغط الجوي ودرجة الحرارة BMP280

تعتمد لوحة التوصيل هذه على مستشعر الضغط الجوي المطلق BMP280 من Bosch. تقيس الضغط الجوي ودرجة الحرارة؛ ويمكن للمتحكم استخدام قراءة الضغط لتقدير الارتفاع أو متابعة تغيرات الطقس. يتواصل المستشعر عبر I²C أو SPI، لكن نوع الموصل والجهد المدعوم يعتمدان على إصدار لوحة التوصيل المرفقة.

🔧 مواصفات مستشعر BMP280

  • نطاق قياس الضغط: 300–1100 hPa
  • نطاق درجة الحرارة: من −40 إلى +85 °C
  • دقة الضغط المطلقة النموذجية: نحو ±1 hPa ضمن ظروف القياس المحددة من Bosch
  • دقة الضغط النسبية النموذجية: ±0.12 hPa ضمن نطاق 700–900 hPa المحدد عند 25 °C
  • الواجهات الرقمية: I²C حتى 3.4 MHz وSPI حتى 10 MHz
  • جهد تغذية شريحة BMP280: ‏1.71–3.6 V؛ وجهد الإدخال/الإخراج: ‏1.2–3.6 V

ملاحظة جهد لوحة التوصيل: تذكر القائمة أن بعض إصدارات I²C تحتوي على منظم 5 V، لكن وجود المنظم وحده لا يعني أن أطراف I²C تتحمل إشارات 5 V. لا تفترض أن كل لوحة ذات 4 أو 6 أطراف تحتوي على منظم أو محوّل لمستويات الإشارة. تعرّف على اللوحة المرفقة وعلامات أطرافها؛ واستخدم منطق 3.3 V ما لم تؤكد وثائقها دعم 5 V. أرقام استهلاك التيار المذكورة هي مواصفات من القائمة أو المصدر وقد تختلف حسب إعداد المستشعر ومعدل القياس.

⚙️ طريقة العمل

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

💡 الاستخدامات

  • محطات الطقس ومراقبة الضغط الجوي
  • دعم أنظمة GPS والملاحة الخارجية
  • نماذج أولية لاكتشاف الطوابق أو المصاعد داخليًا
  • تجارب الارتفاع والحركة الرأسية
  • المشاريع القابلة للارتداء والهواية والتعليم

📌 ملاحظات التوصيل

يختلف عدد الأطراف وأسماؤها حسب اللوحة؛ اتبع العلامات على اللوحة الفعلية. تتضمن لوحة I²C عادةً VCC وGND وSDA وSCL؛ وقد تكشف نسخة 6 أطراف أيضًا CSB وSDO لاختيار الواجهة أو العنوان. في لوحات BMP280 الشائعة يختار SDO عنوان I²C ‏0x76 أو 0x77؛ تحقّق من إعداد اللوحة. في Arduino Uno يكون SDA على A4 وSCL على A5.

🔌 مثال Arduino أساسي عبر I²C

نُبقي الشيفرة الأصلية أدناه. يهيئ المثال BMP280 ويطبع قراءتي درجة الحرارة والضغط في Serial Monitor. يفترض المثال أن المستشعر يستجيب على عنوان I²C ‏0x76؛ استخدم العنوان المضبوط على اللوحة.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

// Déclaration du capteur BMP280
Adafruit_BMP280 bmp;

void setup() {
// Initialisation de la communication série
Serial.begin(9600);

// Vérification de la connexion avec le capteur
if (!bmp.begin(0x76)) {
Serial.println(F("Impossible de trouver le capteur BMP280, vérifiez les connexions !"));
while (1);
}
}

void loop() {
// Lecture de la température et affichage sur le moniteur série
Serial.print(F("Température = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");

// Lecture de la pression et affichage sur le moniteur série
Serial.print(F("Pression = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");

// Pause de 2 secondes entre les lectures
delay(2000);
}

مكونات المثال الأساسي

  • Arduino Uno
  • لوحة مستشعر BMP280
  • أسلاك توصيل

التوصيلات المذكورة في المصدر

  • VCC: ‏3.3 V في Arduino افتراضيًا؛ استخدم 5 V فقط إذا كانت لوحة التوصيل المحددة تدعمه صراحةً
  • GND: ‏GND في Arduino
  • SCL: ‏A5 في Arduino Uno
  • SDA: ‏A4 في Arduino Uno

🌡️ مثال متقدم مع شاشة I²C ‏16×2

نُبقي مثال الشيفرة الأصلي الثاني أدناه. يعرض المثال قراءتي درجة الحرارة والضغط على شاشة I²C. قد يختلف عنوان الشاشة وطريقة تهيئة المكتبة حسب الوحدة والمكتبة.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <LiquidCrystal_I2C.h>


// Déclaration du capteur BMP280
Adafruit_BMP280 bmp;


// Adresse I2C du LCD (0x27 ou 0x3F selon votre module)
LiquidCrystal_I2C lcd(0x27, 16, 2);


void setup() {
  // Initialisation de la communication série
  Serial.begin(9600);


  // Initialisation de l'afficheur LCD
  lcd.begin();
  lcd.backlight();
  lcd.print("Initialisation");


  // Vérification de la connexion avec le capteur
  if (!bmp.begin(0x76)) {
    lcd.print("Erreur BMP280");
    Serial.println(F("Impossible de trouver le capteur BMP280, vérifiez les connexions !"));
    while (1);
  }


  // Affichage prêt
  lcd.clear();
  lcd.print("BMP280 Pret");
}


void loop() {
  // Effacer l'écran avant d'afficher les nouvelles valeurs
  lcd.clear();
  
  // Lecture de la température et affichage sur le LCD
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(bmp.readTemperature());
  lcd.print(" C");


  // Lecture de la pression et affichage sur le LCD
  lcd.setCursor(0, 1);
  lcd.print("Press: ");
  lcd.print(bmp.readPressure() / 100);  // Diviser par 100 pour obtenir la pression en hPa
  lcd.print(" hPa");


  // Pause de 2 secondes entre les lectures
  delay(2000);
}

التوصيلات المذكورة في المصدر

  • VCC/GND للمستشعر: وصّلهما وفق جهد التشغيل المحدد للوحة التوصيل المرفقة
  • SDA/SCL للمستشعر: ‏A4/A5 في Uno
  • VCC/GND للشاشة: وصّلهما وفق جهد التشغيل المحدد لوحدة الشاشة
  • SDA/SCL للشاشة: يمكن مشاركة ناقل I²C مع BMP280 فقط عند توافق جهد التغذية ومستويات مقاومات السحب

البرمجيات

تستخدم أمثلة المصدر مكتبة Wire في Arduino ومكتبتي Adafruit BMP280 وAdafruit Unified Sensor؛ كما يستخدم مثال الشاشة مكتبة LiquidCrystal_I2C. ثبّت إصدارات متوافقة عبر مدير المكتبات في Arduino IDE وتحقّق من واجهات التهيئة المتاحة فيها.

ملاحظة توافق: يقيس BMP280 الضغط ودرجة الحرارة ولا يقيس الرطوبة. وهو ليس بديلًا مباشرًا عن BME280 عند الحاجة إلى قياس الرطوبة. تحقّق من علامة الشريحة ودارات لوحة التوصيل قبل التوصيل.

شكرًا لولائك!

AR