قياس الرطوبة ودرجة الحرارة باستخدام الحسّاسَين DHT11/DHT22 والراسبيري باي

يمكن استخدام الراسبيري باي مع بعض الحسّاسات لقياس درجة الحرارة بسهولة بالغة، ولكن يمكن أن تعطي الرطوبة الجويّة فكرة أفضل عن الوسط المحيط في بعض الاستخدامات كما في محطّات الطقس، وهنا يَظهر كلّ من الحسّاسَين DHT11 وDHT22 اللذين لا يتميّزان فقط بالثمن المنخفض، بل وبقدرتهما على قياس درجة الحرارة والرطوبة الجويّة أيضاً.

القطع المطلوبة:

بما أنّ أغلب القطع موجودة على الحسّاس أصلاً، فلن نحتاج أيّ قطع أخرى عدا مقاومة واحدة. سنستخدم هنا القطع والمعدات التالية:

  • حسّاس الحرارة والرطوبة DHT11 أو DHT22.
  • مقاومة 10kΩ.
  • لوح اختبار.
  • أسلاك توصيل.

وبما أنّ الحسّاس DHT11 (ذا اللون الأزرق) أرخص ثمناً، والحسّاس DHT22 (ذو اللون الأبيض) أكثر دقّة وأطول عمراً، فيجب استخدام الحسّاس DHT22 في المناطق ذات المناخ المتطرف (رطوبة جوية 0~20% أو 80~100%)، فهو يحتمل هذه الظروف على عكس الحسّاس DHT11. على سبيل المثال: يمكن استخدام الحسّاس DHT22 في الثلاجة لقياس وتسجيل درجات الحرارة والرطوبة، وبشكل عام يمكن أن يكون الحسّاس DHT11 ملائماً أيضاً.

توصيل الراسبيري باي مع الحسّاس:

توصيل الدارة
توصيل الدارة

يتمّ توصيل القطب الأيسر للحسّاس مع القطب الأول للراسبيري باي 3.3V، والقطب الثاني عبر مقاومة الرفع (التي تتراوح قيمتها بين 4.7kO و10kO) إلى أحد الأقطاب العامّة (القطب العام الرابع)، والقطب الأيمن للحسّاس يوصل إلى الأرضي GND القطب رقم 6 على الراسبيري باي، ويبقى القطب الثاني من جهة اليمين بدون توصيل.

نتّبع ذات الهيكليّة في توصيل الدارة مع كلا الحسّاسَين DHT11 وDHT22 لأنّ أقطابهما محدّدة بذات الطريقة.

تنصيب واختبار البرمجيات لقياس درجة الحرارة والرطوبة:

أولاً يجب علينا أن نقوم بتنصيب بعض الحزم:

sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git

والآن نقوم بتحميل مكتبة الحسّاسَين. هنا استخدمنا مكتبة معدّة مسبقاً من قبل Adafruit تدعم العديد من الحسّاسات:

git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd
Adafruit_Python_DHTsudo python setup.py install

هذا الأمر يقوم بتنصيب مكتبة يمكن أن نُضمِّنها بسهولة في المشاريع.

إذا ما سار كلّ شيء على ما يرام فسنستطيع أن نأخذ قراءات للحرارة والرطوبة، وأسهل طريقة لذلك هي استخدام الملفات التعليميّة بكتابة الأمر:

cd examplessudo ./AdafruitDHT.py 11 4

يشير المعيار الأول (11) إلى الحسّاس المستخدَم (حيث نضع 22 عند استخدام الحسّاس DHT22)، ويشير المعيار الثاني إلى رقم القطب العام المستخدَم (رقم القطب العام وليس رقم القطب حسب مكانه على اللوح). وهذا الأمر يعطي الخرج التالي:

$ sudo ./AdafruitDHT.py 11 4Temp=24.0*  Humidity=41.0%

ملاحظة:

يمكن أخذ القراءات من الحسّاس كلّ ثانيتين فقط، ولذلك لا يجب أن نطلب القراءة كلّ ثانية مثلاً.

من أجل تضمين مكتبة الرطوبة في مشاريع أخرى يجب أن تدخل الكود البرمجي التالي:

import Adafruit_DHT

sensor = Adafruit_DHT.DHT11
pin = 4
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)…

التسجيل الدائم للبيانات:

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


 

ترجمة:لؤي أزدشير ديب
مراجعة:علي العلي
تدقيق لغوي:سلام أحمد
تحرير:كرم ديوب