من المهمّ دائماً لمحطّات الطّقس والمشاريع المشابهة معرفة كميّة ضغط الهواء، وقمنا في مقالاتٍ سابقة بعرض كيفيّة تحديد قيم درجات الحرارة والرّطوبة باستخدام حسّاساتٍ ذكرناها سابقاَ، حيث يُعطى ضغط الهواء بواحدة hpa/bar بمساعدة مقياس الضّغط الجوي BMP180 وممرّ I2c في الـ . raspberry pi
مقارنةً مع حسّاس dht11 /dht22 الذي يمكننا من تحسّس الحرارة والرطوبة، فإن حسّاس الضّغط bmp180 يقيس بالإضافة للحرارة ضغطَ الهواء، وهذا ما يتفرّد به عن بقيّة الحسّاسات الأخرى.

الإضافات:

صنعت شركة Bosch النّسخة السّابقة من الحسّاس وتسمّى  BMP085 نستخدم في هذا المقال نموذج BMP180 الجديد، ويُعتبر الإصدار السابق مناسب أيضاً.
• حسّاس ضغط الهواء .BMP180
• كبل مطّاط مؤنث-مؤنث.
• لوحة اختبار.

التّركيب:

تختلف طريقة التّوصيل تبعاً للنّسخة المستخدمة وإلى أي شركة تنتمي، لذلك سنحاول إعطاء وصفٍ عام، حيث نحتاج فقط لأربعة أرجلٍ من الراسبيري باي هي: .3V3, GND, data line SDA, clock SCL

الحساس الراسبيري باي
VCC (3V3 (Pin 1
GND (GND (Pin 6
SCL (SCL (pin 5
SDA (SDA (Pin 3
لا نحتاج لتوصيل بقية أرجل الحسّاس مثل 3.3 أو XCLR .
يبيّن الشّكل أرجل الراسبيري باي:

أرجل الراسبيري باي

تفعيلI²C

بما أنّ الحسّاس يعمل باستخدام برتوكول I2C، فلابدّ من تفعيله لأنّه يكون غير مفعّلٍ بشكلٍ افتراضيٍّ
أولا: نعدّل الملفّ التاّلي:

sudo nano /etc/modules

ونضيف في نهاية الملفّ هذين السّطرين:

i2c-bcm2708
i2c-dev

نحفظ الملف ونغلقه عبر CTRL + O و CTRL + X
من الممكن أن لا يتواجد الملفّ في بعض النّسخ، لذا قم بالانتقال للأمر التّالي:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

يمكن استخدام رمز المربّع (#) للتّعليق عند المدخلات الموافقة.

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

تتطلّب إصدارات Raspbian منذ عام 2015 تنشيط الDevietree ، ويمكن ذلك عبر الإعداد:

sudo raspi-config

قم بتنشيط التّحميل التلقائي لمنفذ I2c ضمن الخيارات المتقدّمة، ثم أعد تشغيل الراسبيري باي
نحمّل الآن ثلاثة أدواتٍ إضافيّة:

sudo apt-get install python-smbus i2c-tools git

ثمّ عن طريق:

i2cdetect -y 1

اختبار إذا كان كلّ شيءٍ يعمل بشكلٍ جيّدٍ، فيجب أن يظهر على شاشة العرض بالشكل التالي:

pi@raspberrypi ~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

برمجة  BMP180

يُعتبر استخدام مكتبةٍ تحتوي كل التّوابع اللازمة مثل مكتبة Adafruit أسهل طريقةٍ في التّعامل مع هذا الحسّاس.
ننسخ محتويات مكتبة Adafruit (يجب تحميلها عبر GITHUB )

git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code/
git checkout 9ff733d59242a02f7ccd0222001ce80f6090a978 
cd Adafruit_BMP085

ثمّ نقوم بأوّل اختبارٍ:

sudo python Adafruit_BMP085_example.py

نتيجة هذا الكود تشبه التّالي:

Temperature: 25.70 C
Pressure:    1007.08 hPa
Altitude:    50.83

يمكن بالتّأكيد دمج الملفّ ضمن مشروع آخر، وننسخ الملفّ لتضمينه فقط ونعدّل فقط ما يُدعى Adafruit_BMP085_example.py كالتّالي:

يمكنك اختيار أوضاع عملٍ مختلفةٍ كوضع توفير الطاقة وغيره، ويمكنك التّعديل كما يحلو لك.


المصدر: هنا
ترجمة: رهام حبيب, مراجعة: علي العلي, تدقيق لغوي: مي همدر, تصميم : علي العلي, تحرير: كرم ديوب.