استقبال البيانات من مستشعر Dadget لثاني أكسيد الكربون في أنظمة المنزل الذكي

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





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



تناولت هذه المقالة إرسال البيانات إلى IoBroker و Home Assistant.



ستحتاج إلى مكتبة libhidapi وبرنامج co2mon صغير يقع على github.



apt-get install git cmake g++ pkg-config libhidapi-dev


قم بتحميل وتجميع برنامج co2mon



mkdir co2
cd co2
git clone https://github.com/dmage/co2mon.git
cd co2mon
mkdir build
cd build
cmake ..
make
cd co2mond
mv co2mond ../../../co2mond


قد تحتاج إلى تعديل المسارات لتناسب نظامك.



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



في كلا الوضعين ، يمكن للبرنامج حفظ البيانات إلى ملفات نصية ، فقط قم بإضافة مفتاح التبديل -D وحدد المسار إلى الدليل.



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



#!/bin/bash
cd /home/server/co2
./co2mond -D /home/server/co2 > log.txt &
sleep 5
pkill co2mond
rm log.txt


أضف نصًا إلى cron ، وأقوم بتشغيله مرة واحدة في الدقيقة ، وهذا أكثر من كافٍ.



منجز! الآن في ملفين نصيين ينشئهما البرنامج ، هناك قراءات مناخية حالية.



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



الآن الجزء الثاني - نرسل البيانات المستلمة إلى أنظمة المنزل الذكي. لنبدأ مع IoBroker. بادئ ذي بدء ، منذ ذلك الحين عندما قمت بتعيين هذه المهمة لنفسي ، استخدمتها.



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







نحفظ ، وفويلا:







ثم انتقلت إلى مساعد المنزل. استخدم فيها البعوض ، وقررت إرسال البيانات من خلاله ، بهدف فصل أجهزة الكمبيوتر في المستقبل أو إضافة أجهزة استشعار.



أنا لا أعتبر تثبيت وتكوين وسيط ، هذا خارج نطاق المقال.



يجب تثبيت عميل البعوض على الكمبيوتر الذي يتصل به المستشعر ، إذا لم يكن مثبتًا:



apt-get install mosquitto-clients


أضف مستشعرين إلى تكوين Home Assistant ، وأعد التشغيل:



- platform: mqtt
  state_topic: "co2/co2"
  name: "co2.co2"
  unit_of_measurement: ppm
 
- platform: mqtt
  state_topic: "co2/temp"
  name: "co2.temp"
  unit_of_measurement: °C


أضف أربعة أسطر إلى البرنامج النصي الذي يتلقى البيانات:



read co2 /home/server/co2/CntR
read temp /home/server/co2/Tamb
mosquitto_pub -h localhost -t "co2/co2" -m $co2 -u "" -P ""
mosquitto_pub -h localhost -t "co2/temp" -m $temp -u "" -P ""


تم ، أنت بخير) الآن ينشر kroner قراءات المستشعر إلى موضوع co2 مرة واحدة في الدقيقة ، ويقرأها Home Assistant بدوره:







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



All Articles