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

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

ــــــــــــــــــــ

امنح مشروع الاردوينو خاصتك القدرة على الشعور بالعالم من حوله باستخدام BMP180 .

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

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

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

نظرة عامة على حساس BMP180 :

في قلب الوحدة ، يوجد مستشعر الضغط ودرجة الحرارة .

شريحة BMP180 :

يمكن لحساس BMP180 قياس الضغط الجوي من 300 إلى 1100 hPa ” 9000m إلى -500m فوق مستوى سطح البحر” ، ودرجة الحرارة من -40 درجة مئوية إلى 85 درجة مئوية مع دقة ± 1.0 درجة مئوية .

BMP180-Chip-On-The-Module

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

BMP180-Sensor-Specifications

متطلبات الطاقة للحساس BMP180 :

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

BMP180-Module-3V3-Regulator

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

مواجهة I2C في حساس BMP180 :

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

This module has a hardwired I2C address and is set to 0x77HEX.

أطراف حساس BMP180 :

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

BMP180-Module-Pinout
  • VCC هو مصدر الطاقة للوحدة التي يمكن أن تكون في أي مكان بين 3.3V إلى 5V .
  • GND يجب أن تكون مرتبطة إلى GND اردوينو .
  • SCL هو دبوس على مدار الساعة التسلسلية لواجهة I2C .
  • SDA هو دبوس البيانات التسلسلية لواجهة I2C .

الأسلاك لحساس BMP180 مع الاردوينو :

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

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

الآن ما زلنا مع الاطراف التي يتم استخدامها للاتصال I2C . لاحظ أن كل لوحة الاردوينو بها دبابيس I2C مختلفة يجب توصيلها وفقًا لذلك .

SCL SDA
Arduino Uno A5 A4
Arduino Nano A5 A4
Arduino Mega 21 20
Leonardo/Micro 3 2

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

датчик-давления-gy-68-bmp180_1_
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

كود اردوينو - قراءة درجة الحرارة والضغط الجوي لوحدة BMP180 :

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

لتحميل الكود البرمجي اضغط هنا
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define seaLevelPressure_hPa 1013.25

Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");

    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(seaLevelPressure_hPa * 100));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

إليك كيفية ظهور الإخراج في الشاشة التسلسلية .

BMP180-Temperature-Pressure-Altitude-Output

كل 1hPa قبالة على مستوى سطح البحر يؤدي الضغط في حوالي 8.5 متر من الخطأ في حسابات الارتفاع . لذا ، فإن الارتفاع الذي نحصل عليه قريب بما فيه الكفاية ولكنه غير دقيق .

يمكنك الحصول على قياس ارتفاع أكثر دقة ، إذا كنت تعرف الضغط الحالي لمستوى سطح البحر والذي سيختلف مع الطقس .
يفترض هذا الكود أن ضغط مستوى سطح البحر الحالي هو 1013.25 مليبار ويساوي 101325 باسكال . لهذا السبب تم تعيين متغير seaLevelPressure_hPa على 1013.25

 

أنتهت !!!!!!

اترك تعليقاً

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