جدول المحتويات:

مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi: 6 خطوات (بالصور)
مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi: 6 خطوات (بالصور)

فيديو: مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi: 6 خطوات (بالصور)

فيديو: مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi: 6 خطوات (بالصور)
فيديو: IoT Enabled Smart Industrial Pollution Monitoring and Control Using Raspberry Pi Pico with Blynk App 2024, يوليو
Anonim
مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi
مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi
مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi
مراقبة درجة الحرارة والرطوبة باستخدام Raspberry Pi

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

أنا أستخدم لوحة Raspberry Pi 1 ومستشعر DHT22. يمكنك فعل الشيء نفسه على أي جهاز كمبيوتر يحتوي على الإنترنت و GPIO و Python. يعمل مستشعر DHT11 الأرخص أيضًا بشكل جيد.

الخطوة 1: تجهيز الأجهزة

تحضير الأجهزة
تحضير الأجهزة
تحضير الأجهزة
تحضير الأجهزة

لنبدأ من البداية ، لأنني لم أستخدم Raspberry Pi الخاص بي لفترة طويلة.

سنحتاج:

  • لوحة Raspberry Pi (أو منصة أخرى موجهة لإنترنت الأشياء).
  • بطاقة SD أو microSD (حسب النظام الأساسي).
  • 5V / 1A عبر micro-USB.
  • كبل LAN الذي يوفر الاتصال بالإنترنت.
  • شاشة HDMI أو شاشة RCA أو منفذ UART (لتمكين SSH).

الخطوة الأولى هي تنزيل Raspbian. لقد اخترت الإصدار Lite ، حيث سأستخدم SSH بدلاً من العرض ، لقد تغيرت الأمور منذ آخر مرة قمت بها: يوجد الآن برنامج نسخ رائع يسمى Etcher ، والذي يعمل بشكل مثالي ، وله تصميم مذهل.

بعد اكتمال نسخ الصورة ، أدخلت بطاقة SD في Pi ، وقمت بتوصيل الشبكة المحلية وكابلات الطاقة ، وبعد فترة ، قام جهاز التوجيه الخاص بي بتسجيل الجهاز الجديد.

الخطوة 2: تفعيل SSH

تمكين SSH
تمكين SSH
تمكين SSH
تمكين SSH
تمكين SSH
تمكين SSH

يتم تعطيل SSH افتراضيًا. يمكنني استخدام محول UART-USB أو فقط توصيل شاشة للوصول إلى الغلاف وتمكين SSH.

بعد إعادة التشغيل ، دخلت أخيرًا. أول الأشياء أولاً ، دعنا نحدث:

تحديث sudo apt && sudo apt Upgrade -y

دعونا الآن نربط هذا الجهاز الجديد بـ Cloud.

الخطوة الثالثة: تثبيت Cloud4RPi

تثبيت Cloud4RPi
تثبيت Cloud4RPi

قررت أن أجرب النظام الأساسي السحابي المسمى Cloud4RPi ، المصمم لإنترنت الأشياء.

وفقًا للمستندات ، نحتاج إلى الحزم التالية لتشغيله:

sudo apt install git python python-pip -y

يمكن تثبيت مكتبة العميل بأمر واحد:

تثبيت sudo pip cloud4rpi

الآن نحن بحاجة إلى بعض التعليمات البرمجية للتأكد من أنها تعمل.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e / simple.py min.py && rmdir -re

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

من استيراد rpi *

ثم احذف هذه الوظائف التي توفر بيانات مزيفة (تحددها rpi.py الآن):

def cpu_temp ():

إرجاع 70 def ip_address (): إرجاع '8.8.8.8' def host_name (): إرجاع 'hostname' def os_name (): إرجاع 'osx'

نحتاج الآن إلى رمز مميز يسمح لـ Cloud4RPi بربط الأجهزة بالحسابات. للحصول على حساب ، قم بإنشاء حساب على cloud4rpi.io واضغط على زر جهاز جديد في هذه الصفحة. استبدل السلسلة _YOUR_DEVICE_TOKEN_ في ملف min.py بالرمز المميز لجهازك واحفظ الملف. الآن نحن جاهزون للإطلاق الأول.

بيثون min.py

افتح صفحة الجهاز وتحقق من وجود البيانات.

دعنا الآن ننتقل إلى بيانات العالم الحقيقي.

الخطوة 4: توصيل المستشعر

توصيل جهاز الاستشعار
توصيل جهاز الاستشعار

سنحتاج:

  • مستشعر الرطوبة DHT22 أو DHT11
  • مقاوم سحب (5-10 KΩ)
  • الأسلاك

يقيس مستشعر DHT22 درجة الحرارة والرطوبة في نفس الوقت. بروتوكول الاتصال غير موحد ، لذلك لا نحتاج إلى تمكينه في raspi-config - دبوس GPIO البسيط أكثر من كافٍ.

للحصول على البيانات ، سأستخدم مكتبة Adafruit الرائعة لأجهزة استشعار DHT ، ولكنها قد لا تعمل كما هي. لقد وجدت ذات مرة تأخيرًا مستمرًا غريبًا في الكود ، والذي لم يعمل مع أجهزتي ، وبعد عامين لا يزال طلب السحب معلقًا. لقد قمت أيضًا بتغيير ثوابت اكتشاف اللوحة لأن Raspberry Pi 1 الخاص بي مع BCM2835 تم اكتشافه بشكل مفاجئ على أنه Raspberry Pi 3. أتمنى أن يكون هذا صحيحًا … وبالتالي ، أوصي باستخدام مفترقتي. إذا واجهت أي مشاكل في ذلك ، فالرجاء تجربة المستودع الأصلي ، فربما يعمل مع شخص ما ، لكنني لست واحدًا منهم.

استنساخ بوابة https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

نظرًا لأن المكتبة مكتوبة بلغة C ، فإنها تتطلب التجميع ، لذا فأنت بحاجة إلى حزم build-basic و python-dev.

sudo apt install build-basic python-dev -ysudo python setup.py install

أثناء تثبيت الحزم ، قم بتوصيل DHT22 كما هو موضح في الصورة.

واختبرها:

cd ~ python -c "استيراد Adafruit_DHT مثل d ؛ طباعة d.read_retry (ت. DHT22 ، 4)"

إذا رأيت شيئًا مثل (39.20000076293945 ، 22.600000381469727) ، فيجب أن تعلم أن هذه هي الرطوبة بالنسب المئوية ودرجة الحرارة بالدرجة المئوية.

الآن ، دعونا نجمع كل شيء معًا!

الخطوة 5: إرسال قراءات المستشعر إلى السحابة

إرسال قراءات أجهزة الاستشعار إلى السحابة
إرسال قراءات أجهزة الاستشعار إلى السحابة

سأستخدم min.py كقاعدة وأضف تفاعل DHT22 فيه.

القرص المضغوط cloud4rpi-raspberrypi-python

cp min.py ~ / cloud_dht22.py cp rpi.py ~ / rpi.py cd vi cloud_dht22.py

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

استيراد Adafruit_DHT

temp، hum = None، None last_update = time.time () - 20 def update_data (): global last_update، hum، temp if time.time () - last_update> 10: hum، temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22، 4) last_update = time.time () def get_t (): update_data () عودة الجولة (temp، 2) إذا لم تكن درجة الحرارة لا شيء آخر لا شيء def get_h (): update_data () عودة الجولة (همهمة ، 2) إذا لم يكن همهمة لا شيء آخر لا شيء

أدخل هذا الرمز بعد عمليات الاستيراد الحالية وقم بتحرير قسم المتغيرات بحيث يستخدم الوظائف الجديدة:

المتغيرات = {

'DHT22 Temp': {'type': 'numeric'، 'bind': get_t}، 'DHT22 Humidity': {'type': 'numeric'، 'bind': get_h}، 'CPU Temp': {'type ':' numeric '،' bind ': cpu_temp}}

اضغط على الزر الأحمر لبدء نقل البيانات:

python cloud_dht22.py

ثم يمكنك التحقق من صفحة الجهاز.

يمكنك تركها كما هي ، لكني أفضل وجود خدمة لكل شيء. هذا يضمن أن البرنامج النصي يعمل دائمًا. إنشاء خدمة بنص مؤتمت بالكامل:

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

بدء الخدمة:

تبدأ خدمة sudo cloud4rpi

والتحقق منها:

pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l

● cloud4rpi.service - تحميل البرنامج الخفي Cloud4RPi: تم تحميله (/lib/systemd/system/cloud4rpi.service ؛ مُمكّن) نشط: نشط (قيد التشغيل) منذ الأربعاء 2017-05-17 20:22:48 بالتوقيت العالمي المنسق ؛ منذ دقيقة واحدة معرف المنتج الرئيسي: 560 (بيثون) مجموعة C: / system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.pyMay 17 20:22:51 raspberrypi python [560]: نشر iot -hub / messages: {'type': 'config'، 'ts': '2017-05-17T20… y'}]} 17 مايو 20:22:53 raspberrypi python [560]: نشر iot-hub / messages: {'type': 'data'، 'ts': '2017-05-17T20: 2… 40'}} 17 مايو 20:22:53 raspberrypi python [560]: نشر iot-hub / messages: {'type': 'system'، 'ts': '2017-05-17T20….4'}}

إذا كان كل شيء يعمل كما هو متوقع ، فيمكننا المضي قدمًا واستخدام إمكانات النظام الأساسي Cloud4RPi للتعامل مع البيانات.

الخطوة 6: الرسوم البيانية والإنذارات

الرسوم البيانية والإنذارات
الرسوم البيانية والإنذارات
الرسوم البيانية والإنذارات
الرسوم البيانية والإنذارات
الرسوم البيانية والإنذارات
الرسوم البيانية والإنذارات

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

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

بعد ذلك مباشرة ، بدأت الرطوبة في غرفتي في الانخفاض بسرعة دون أي سبب ملحوظ ، وسرعان ما تبع الإنذار.

يمكنك استخدام Cloud4RPi مجانًا مع أي جهاز قادر على تنفيذ Python ، أما بالنسبة لي ، فأنا الآن أعرف دائمًا متى يجب تشغيل مرطب الهواء ، ويمكنني أيضًا توصيله بمرحل للتحكم عن بُعد عبر Cloud4RPi. أنا مستعد للحرارة! أهلا بالصيف!

موصى به: