يُبيّن الشّكل 1 حسّاس الضّغط الجويّ BMP180 (طراز GY-68), وهو نموذج صغير ذو أبعاد
1mm x 1.1mm.

الشّكل (1) حسّاس الضّغط الجوي BMP180 (طراز GY-68)

يقيس الحسّاس الضّغط المطلق للهواء المحيط به, ويمتلك مجال قياس يتراوح بين 300hPa و 1100hPa وبدقّة تصل إلى 0.02hPa،  كما يمكن للحسّاس قياس الارتفاع ودرجة الحرارة أيضاً.

يَستخدِم الحسّاس واجهة I2C أي أنّه يتّصل بالأردوينو عن طريق قطبين.

ربط الحسّاس مع لوحة التّطوير أردوينو:

يتمّ توصيل الحسّاس مع الأردوينو كما هو موضّح في الشكل 2.

الشّكل (2) مخطّط دارة توصيل الحسّاس مع لوحة أردوينو

 

يبيّن الجدول التّالي آليّة ربط أرجل الحسّاس PMB180 مع الأردوينو UNO:

الرّجل الرّجل الموافق في الأردوينو
Vin 5v
GND GND
SCL A5
SDA A4

الكود البرمجيّ: التحميل من هنا 

يجب تنصيب مكتبة SFE_BMP180 لنتمكّن من التّحكم بحسّاس الضّغط الجويّ PMB180.

آليّة تنصيب المكتبة:

  1. نقوم بتحميل الملف المضغوط من هنا
  2. نقوم بفك الضّغط ونحصل على مجلّد باسم: BMP180_Breakout_Arduino_Librarymaster
  3. نغير اسم المجلد من BMP180_Breakout_Arduino_Library-master إلى BMP180_Breakout_Arduino_Library.
  4. ننقل المجلّد إلى مجلّد مكتبات بيئة الأردوينو.
  5. نفتح واجهة بيئة الأردوينو.

الكود البرمجيّ:

من القائمة نختار:

File }> Examples }>SparkfunBMP180 }> SFE_BMP180_example.

هذا مثال توضيحي مفصّل لكيفيّة قراءة الحسّاس للضّغط والحرارة ومن ثمّ حسابه للارتفاع.

يجب ضبط الارتفاع أوّلاً قبل تحميل الكود البرمجيّ إلى الأردوينو.

يُبيّن الكود البرمجيّ التّالي كيفيّة استخدام مكتبة SFE_BMP180 لقراءة خَرْج حسّاس الضّغط الجويّ BMP180.

يقوم الحسّاس كمعظم حسّاسات الضغط الأخرى بقياس الضّغط المطلق، أي أنّه يقيس الضّغط الحقيقيّ للوسط المحيط والذّي سيتغيّر بتغيّر الارتفاع وعوامل الطّقس.

قبل القيام بقراءة الضّغط يجب قراءة الحرارة باستخدام التابعين (startTemperature)  و (getTemperature), وتكون الحرارة النّاتجة بالسيليزيوس C.

بعد قراءة الحرارة يمكن قراءة الضّغط باستخدام التابعين (startPressure)  و (getPressure)حيث أنّ واحدة القياس هي الميلي بار (millibar (mb  أو ما يعرف أيضاً بالهيكتو باسكال (hectopascals (hPa.

إذا أردنا مراقبة نماذج الطّقس في هذه الحالة يتوجّب علينا تزويد التّابع بالارتفاع الذّي تتمّ عنده قراءة الضّغط باستخدام التّابع (sealevel)، .

إمّا إذا أردنا حساب الارتفاع يجب أن نعرف قيمة الضّغط عند ارتفاع معيّن وسيكون هذا الارتفاع هو مبدأ الصفر،  يمكن أن نختار قيمة الضّغط لتكونَ مساوية لمتوسّط الضّغط عند سطح البحر، أو قراءة ضغط سابقة عند ارتفاع معين، تكون قراءات الارتفاع فوق وتحت الارتفاع الابتدائي ونستخدم لذلك التابع (altitude).

 

ضبط الارتفاع:

قبل تحميل الكود إلى الأردوينو يجب ضبط الارتفاع الحالي للحسّاس، وللقيام بذلك يمكن زيارة الموقع http://elevationmap.net/ وإدخال إحداثيات موضعنا، فيعطي الموقع ارتفاع مكاننا الحالي، نقوم بضبط الارتفاع في المكان التّالي من الكود.

تطبيق البرنامج:

بعد تحميل الكود على الأردوينو نفتح الواجهة التّسلسليّة, ونضبط معدّل الترميز (البود) إلى القيمة 9600 لنتمكّن من متابعة قراءة الحسّاس كما هو موضّح في الشّكل (4).

الشّكل(4) قراءة قيم الحسّاس عبر الواجهة التّسلسلية

ملخّص:

يعد حسّاس الضّغط BMP180 من الحسّاسات ذات الاستخدام المفيد في محطات الأرصاد الجويّة, وطالما أن الضّغط الجوي يتغيّر بحسب الارتفاع فبالتّالي يمكن لهذا الحساس حساب الارتفاع أيضاً.

 

 


المصدر: Ultimate Guide for Arduino Sensors/Modules
ترجمة: عدي ناصر  ،  مراجعة: محمد مرتكوش  ،  تدقيق لغوي: سلام أحمد  ،  تصميم: علي العلي  ، تحرير: كريم سلوم.