مرحبا يا هبر!
الغرض من هذه المقالة (دورة) هو
تأثير Habra ، وهي قصة تمهيدية عن نظام التشغيل الآلي للمنزل ، بالطبع لم أخترع وأوجد كل شيء من البداية ، ولكن فقط التقنيات والمشروعات التي تم جمعها والتي اعتبرتها الأكثر ملائمة لهذا الغرض وأضفت القليل من نفسي. مستوى الهواة ، ولكن نتيجة لذلك ، كل شيء يعمل ، ويستخدمه الناس ولا يركضون بعدي مع النادي. فعلت كل شيء بنفسي. النقد البناء هو موضع ترحيب ، سيكون من المثير للاهتمام معرفة أي رأي.
يشتمل النظام على معدات ومجموعة من البرامج: نظام أتمتة مباشر لتوصيل المعدات وتصورها ، والاتصالات والقياس عن بُعد للمراقبة والتحديث عن بُعد ، ومساعد صوت من Yandex. كل شيء
(كل شيء تقريبًا) مفتوح ويتم نشره على
جيثب .
مستوى المعدات
الجزء الرئيسي والضروري هو خادم قائم على Raspberry Pi ، ولكنه يمكن أن يعمل على جهاز كمبيوتر شخصي مع Debian أو Ubuntu دون مشاكل. نظام التشغيل Raspbian. يجب أن يعمل النظام 24/7/365 حتى تحتاج إلى مصدر طاقة عالي الجودة ، على سبيل المثال ، وحدة PSU مثالية لجهاز iPad.

بالنسبة للإدارة عن بُعد ، لدي أيضًا مهارة مساعد الصوت Yandex التي تحتاج إلى خادم به عنوان IP "أبيض" ومجال. خادم MQTT يعمل على الخادم ؛ يتم استخدام SSL / TLS للأمان.
دعم KNX من خلال بوابة BAOS 771-774. BAOS هي الواجهة بين ناقل KNX و LAN. للسماح بالوصول إلى العناوين على الحافلة من خلال خدمة ويب بتنسيق JSON.
المعدات الخاصة بي:مشاريع لاردوينو IDEواي فاي المراقب المالي على أساس Wemos D1 مصغرة
يتم تشغيله بواسطة شبكة بجهد 230 فولت ، ومن الممكن أيضًا بدون مصدر طاقة من حافلة عامة بقدرة 5 فولت لتشغيل نظام Wemos أو من جهاز يتحكم فيه ، على سبيل المثال ، محرك ستارة. من الممكن التثبيت في مربعات التثبيت والوصلات ذات العمق الكافي ، على سبيل المثال خلف المفتاح.
يمكن استخدامه بدلاً من التحكم في الراديو لمحركات الستائر المختلفة.
Pinout من النواتج التي تسيطر عليها:
L1 ، L2 - خرج الطاقة من triacs BT-137S ، التي تسيطر عليها مخرجات wemos D0 ، D5 من خلال optocoupler MOC 3063S مع التحكم في انتقال المرحلة من خلال الصفر. سيتم تشغيل وإيقاف التحميل دون التسبب في تداخل في الشبكة.
p1 ، p2 - إخراج pwm لمخفتات الأقراص أو محركات الستائر المزودة بمحركات أو أزرار إضافية ، اعتمادًا على الإعدادات. تتوافق مع استنتاجات wemos'a D6 ، D7.
مدخلات تناظرية A0 لتوصيل أجهزة استشعار مختلفة ، مثل الضوء أو زر إضافي.
ds - اتصال مستشعر درجة الحرارة DS18B20 يناظر الدبوس D1.
DHT - توصيل جهاز استشعار درجة الحرارة DHT22 يتوافق مع دبوس D2.
b1 ، b2 - الأزرار ، الضغط القصير والطويل ، مع وظيفة عداد النقرات ، يمكن توصيلها بمخرجات النبض لعدادات الكهرباء ، الماء ، إلخ.
برنامج تحكم تم إنشاؤه في Arduino IDE. مناسبة لجميع اللوحات الأم على أساس ESP-8266. يتم إعداد الشبكة والتحكم فيها وتشغيلها بواسطة MQTT. من أجل العرض المريح للإعدادات ، هناك واجهة ويب ، كانت هناك في السابق القدرة على التحكم من خلال http ، ولكن بعد ذلك اعتبرتها غير ضرورية وأزلتها.
يمكن تعطيل واجهة الويب. لراحة التكوين الأولي ، يتم توفير برنامج نصي winit.sh والتعليمات. لإعادة ضبط وحدة التحكم على الإعدادات الافتراضية ، يجب عليك إما إدخال الأمر "default 1" أو في نفس الوقت اضغط على الأزرار b1 و b2 لمدة 20 ثانية. هناك أيضًا نسخة مبسطة من البرنامج لمنافذ Sonoff المدارة.
اردوينو ميجا تحكم مقرها
وهي تتألف من ميجا نفسها ودرع بطاقة الشبكة W5100 ، ولوحة بها مخرجات منفصلة لمخففات الضوء ومدخل لأجهزة الاستشعار والأزرار ، يجب توصيل مخرجات الترحيل بشكل منفصل باستخدام كابل للموصل ذي الصفين الموجود على اللوحة الضخمة على الجانب الآخر من منافذ الطاقة ومنفذ USB. تم تصميم وحدة التحكم من أجل حاوية D6MG.
Pinout:
D2-9 ، D11-13 - مخرجات PWM لمخففات الضوء ، يتم زيادة تردد PWM من المعيار.
D14-21 - DS18B20 و DHT22 أجهزة استشعار درجة الحرارة.
D22-49 - مخرجات الترحيل ، يمكن تكوين مخرجات D22-29 لمحركات الستائر ، والبوابات ، والستائر.
D 10.50-53 - يستخدم بطاقة الشبكة W5100.
A0-16 - مدخلات للأزرار ، الصحافة قصيرة وطويلة. يمكن تكوين A0-A6 لأجهزة الاستشعار التناظرية.
يتم ضبط إعدادات الشبكة للميغا في البرنامج قبل الوميض. تم إصلاح عنوان IP.
باهتة على التيرستورات BT137-600E
إدخال 220 فولت ، التحكم PWM 0-5 / 3.3 فولت ، تعيين عن طريق وضع العبور. 0-5 فولت للعمل مع Arduino Mega أو 0-3.3 فولت في حالة wemos. يتم تغذية إشارة PWM إلى المدخلات التناظرية A0 Arduino Pro حيث يتم تحويلها إلى تأخير لفتح الترياك ، يتم توفير موصل لفلاش اردوينو في مكانه. مساحة مخصصة للمبرد. على جانب اردوينو ، يوجد موصل للتحكم والطاقة من اردوينو (PWM ، - ، +) ، على جانب جهاز التلحيم ، يوجد موصل طاقة رباعي السنون - قوة وإخراج للتحميل ، إذا لزم الأمر ، يمكن أيضًا أن يكون مزودًا بمكثف أو متدفق. لوحة باهتة مصممة للهيكل D2MG.
مشروع باهتة:
هناك أيضا وحدة التيرستورات
28 قناة في حزمة D9MG.
يتم توصيل الجهاز من خلال الشبكة المحلية ، وهو بروتوكول للاتصال MQTT. أنا أستخدم خادم MQTT Mosquitto.
جزء البرمجيات
للراحة ، تحتاج أولاً إلى إعداد صورة لنظام التشغيل مع جميع البرامج اللازمة ، وأنا أستخدم Raspbian Stretch Lite. سوف تحتاج إلى تثبيت nodejs ، python-pip ، python3-pip ، المشرف ، البعوض ، عملاء البعوض ، sqlite3. وحزم النقطة: paho-mqtt و psutil. يمكنك أيضًا تثبيت Node-red ، مما يجعلها مثالية لجميع أنواع التجارب.
بعد إصدار Apple Homekit في عام 2016 ، اتضح أن جميع المصنعين والمطورين لوجود كامل لأنظمة Smart Home لا يمكنهم فعل أي شيء قريب من حيث الراحة والأداء الوظيفي مقارنة مع homkit ، وهذا مشابه للوضع مع إصدار iPhone الأول ، عندما تبين أن حديقة الحيوان بأكملها تحولت الهواتف والهواتف الذكية والاتصالات إلى حفنة من الزباله. في أي حال ، من الجيد دائمًا استخدام منتج عالي الجودة ومنتهي.
اخترت مشروع
homekit2mqtt كنظام التصور الرئيسي. بالطبع ، يمكنك استخدام OpenHUB أو Homeassistant ، كما تعمل هذه الأنظمة مع MQTT.
hjmqttHomekit2mqtt يخلق Homekit Bridge ، ويمكن العثور عليه في برنامج Home على أجهزة Apple. يجب تسجيل الملحقات (الإضاءة ، وأجهزة الاستشعار ، وأجهزة التحكم في درجة الحرارة ، وما إلى ذلك) في ملف خاص بتنسيق JSON. البرامج النصية filegen.sh و install.sh هي المسؤولة عن إنشاء هذا الملف. تحتاج إلى تسجيل الملحقات في filegen.sh ، ويضيف install.sh homekit2mqtt إلى التحميل التلقائي ويبدأ. يحدث الشيء الرئيسي في ملف hjmqtt.py - توصيل الملحقات مع المعدات ، وأيضًا في الملف يدويًا ، تحتاج إلى تسجيل الملحقات ومعايير المعدات وعناوين KNX.
يتم تسجيل وظيفة الملحقات في ملفات accessory.py و accessoryknx.py. يتم تخزين حالات الجهاز في قاعدة بيانات sqlite ؛ يتم استخدام مكتبة statdb.py لعمليات قاعدة البيانات.
hjconnectهناك حاجة إلى المشروع التالي للقياس عن بعد. هذا هو استخدام الذاكرة والأقراص والحمل ودرجة الحرارة ، ويتم استخدام حزمة psutil لهذا الغرض. يتوفر الآن الوصول المفتوح لإصدار hjconnect فقط للمراقبة وبدون تشفير ، وكبرنامج منفصل ، فإن برنامج ربط الملفات هو أيضًا MQTT
file-transfer-via-mqtt . الإعدادات مباشرة في ملف hjconnect.py الرئيسي. إذا قمت بتشغيله باستخدام الخيار -l ، فيمكنك اختباره على خادم MQTT المحلي ، وتكون إعدادات الخادم البعيد على الخط 160
rclient.connect("test.mosquitto.org", 1883, 60)
server test.mosquitto.org يمكن استبداله بنطاقك أو عنوان IP الخاص بك. لتحديد Raspberry Pi ، يتم تضمين الرقم التسلسلي للمعالج في الموضوع ، إذا تم تشغيل البرنامج على كمبيوتر آخر ، بدلاً من الرقم التسلسلي ، ستكون هناك السلسلة "SN". يتم تعيين الفاصل الزمني للرسالة على السطر 96.
th = threading.Timer(9, my_stat)
حيث 9 ثواني.
سيماالآن فقط Yandex لديها العمود الوحيد الناطق باللغة الروسية. من السهل خلق مهارة لأليس. على عكس سيري ، هناك حرية كاملة للعمل. والوصول على أي جهاز. فقط ، لسوء الحظ ، بينما لا توجد طريقة عقلانية لإطلاق مهارة ، فإن تشغيل المهارة باستمرار أمر غير مريح.
هذا مثال على مهارة العمل. لبدء المهارة ، تحتاج إلى شهادة طبقة مآخذ توصيل آمنة (SSL) ؛ يمكن إنشاؤها باستخدام openssl. في السطر sima.py على السطر 14 ، يوجد مثال على إنشاء الشهادة
openssl req -new -keyout crt.pem -out crt.pem -x509 -days 365 -nodes -subj '/CN=site.com/O=user/C=RU'
site.com والمستخدم بحاجة إلى استبدال بياناتهم.
عندما يتم إطلاق مهارة على جهاز جديد ، يتم تسجيل معرفها. لربط المعرف ونظام التشغيل الآلي ، تحتاج أولاً إلى إنشاء ملف CSV جديد في دليل العملاء بناءً على نموذج ملف my.csv. الرقم التسلسلي مكتوب في الملف وفقًا للقالب ، وهذا هو نفس الرقم التسلسلي من برنامج hjconnect ، وتتم كتابة كائنات التحكم: الاسم والنوع والموضوع. الموضوع جزء مهم من موضوع ملحق MQTT من ملف JSON لـ homekit2mqtt. بعد ذلك ، باستخدام sn.py ، تحتاج إلى تحويل الرقم التسلسلي إلى كلمة مرور وتسمية كلمة المرور هذه على الجهاز الذي ستدير منه. يتم توفير الاتصال بواسطة برنامج hjconnect ، وخادم مراقبة MQTT هو نفس الكمبيوتر الذي تعمل عليه المهارة.
شكرا وداعا.