كيفية بناء منزل ذكي وليس بالجنون

صورة

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

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

بادئ ذي بدء ، قمت بتجهيز الشقة بترحيل يتم التحكم فيه لتشغيل الضوء تلقائيًا في الممر والحمام. بدا الأمر على هذا النحو: وقف مستشعر واحد في الرواق ، والثاني في الحمام.

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

فكرت أيضًا في مثل هذه الحالات إذا كان أحدهم يفكر كثيرًا أثناء الجلوس على "صديق أبيض" في الحمام (كان لدي حمام مشترك). لهذا ، تم تقسيم الضوء في الحمام إلى مجموعتين. تم إيقاف أحدهما بعد 3 دقائق من توقف المستشعر في الحمام عن الكشف عن الحركات ، والآخر بعد 5 دقائق. لذلك لأكثر من خمس دقائق للبقاء بلا حراك في الحمام في الضوء لم ينجح. تأديبية للغاية. ومع ذلك ، يمكنك دائمًا تحريك يدك ومواصلة التفكير في الأساسيات.

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

ذهبت الإدارة - أو حاولت بدلاً من ذلك - من خلال منصة Arduino. 


الصورة مأخوذة من موقع الشركة المصنعة

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

بعد أن لعبت بما فيه الكفاية مع Arduino ، قمت بإعادة توصيل المنزل بلوحة ESP-8266. في الواقع ، هذا هو نفس Arduino ، ولكن مع Wi-Fi + ، فهو أصغر حجمًا. لا تزال هذه الوحدة شائعة لدى الشركات المصنعة للأدوات للمنازل الذكية. 


الصورة مأخوذة من الإنترنت

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

لقد قمت بحل مشكلة التحكم عن بعد لمكيف الهواء باستخدام محاكي إشارة الأشعة تحت الحمراء Broadlink RM Pro. لا شيء معقد: تقوم بتسجيل إشارة من لوحة التحكم في تكييف الهواء إلى المحاكي (يمكن أن يكون هناك أي تقنية يتم التحكم فيها بواسطة جهاز التحكم عن بعد) ، ثم على الهاتف تضغط على زر في التطبيق ، ويقوم المحاكي بتشغيل الإشارة المسجلة مسبقًا. في حالة مكيف الهواء ، أتيحت لي الفرصة لتشغيله وإيقافه ، وتعيين وضع التشغيل وتعيين المعلمات الأخرى عن بُعد.  

كما تم تثبيت مفاتيح Livolo. وبمساعدتهم ، يمكنني أيضًا تشغيل الأضواء وإيقافها على الهواء. 



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

كما ظهرت في المنزل العديد من مرحلات WiFi التي يتم التحكم فيها مثل Sonoff أو Tuya وحتى Danalock باهظة الثمن لقفل الشقة ، والتي تتطلب أيضًا تطبيقًا منفصلاً. كل هذه الأشياء الصغيرة تقريبًا (باستثناء Danalock) اشتريتها على موقع أليكسبريس الصيني ، حيث كلفت بنسًا واحدًا وسمحت لي بالتجربة دون استثمارات جادة. 

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


تم التقاط الصورة من موقع الشركة المصنعة على الويب .

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

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

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

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

لمدة عام تقريبًا ، كنت منخرطًا في تطوير التطبيقات الأمامية والخلفية. 

تمت كتابة جانب الخادم في NodeJS. تم اختيار NodeJS بسبب المجتمع المتقدم ، حيث توجد بروتوكولات مطبقة لجميع الأجهزة تقريبًا في السوق. جزء العميل مكتوب باللغة Angular (Ionic) ويعمل على Android / iOS. بشكل عام ، البنية الكلاسيكية لخادم العميل.

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

أعدت كتابة برامج تشغيل الجهاز عدة مرات حتى جئت إلى شيء مثل هذا:

رمز مثال لأحد الأجهزة
import {XiaomiSubdeviceV2} from '../xiaomi.subdevice.v2';
import {load_power} from '../capabilities/load_power';
import {power_plug} from '../capabilities/power_plug';
import {PowerPurpose} from '../../base/PowerPurpose';
import {Relay} from '../../base/types/Relay';
import {HomeKitAccessory} from '../../hap/HomeKitAccessory';
import {Lightbulb2Accessory} from '../../hap/Lightbulb2Accessory';
import {Yandex} from '../../yandex/Yandex';
import {YandexLightOrSwitch} from '../../yandex/YandexLightOrSwitch';

export class LumiPlug extends XiaomiSubdeviceV2.with(Relay, power_plug, load_power, PowerPurpose,
  HomeKitAccessory, Lightbulb2Accessory,
  Yandex, YandexLightOrSwitch) {

  onCreate() {
    super.onCreate();
    this.model = 'Mi Smart Plug';
    this.class_name = 'lumi.plug';
    this.driver_name = 'Mi Smart Plug';
    this.driver_type = 3;
    this.parent_class_name = 'lumi.gateway';
  }

  getIcon() {
    return 'socket';
  }
}


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

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

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

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

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

لذلك ، مع الرجال ، قمت بإنشاء تطبيق جديد لأتمتة المنزل الذكي مع بنية كلاسيكية لخادم العميل ، والتي يتم وضعها على أي نظام أساسي ، وبتصميم عصري مناسب. تعرّف على BARY *.

* لم يأت الاسم من اسم باري أليباسوف ، ولكن من شخصية كتاب آرثر سي دويل "The Hound of the Baskervilles" من قبل بتلر باريمور - "خادمك الذكي" الشخصي. 

ماذا حدث: وصف التطبيق بصور وقطط جميلة


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



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



هنا يمكنك تشغيل / إيقاف تشغيل الجهاز ، وكذلك رؤية المعلمة الرئيسية. عند التبديل إلى جهاز ، ستتوفر تحكم أكثر تفصيلاً بقائمة كاملة من الوظائف. 

جميع الأجهزة متصلة باستخدام نفس الإعدادات. بالنسبة إلى العديد من الأجهزة ، يوجد معالج اتصال. لا تكوينات لأولئك الذين يحبون سخونة! في الأساس ، يتعلق الأمر بتحديد عنوان IP للجهاز (يوجد بحث تلقائي للعديد من الأجهزة). إذا تغير عنوان IP فجأة ، فلا بأس ، سيجده الخادم تلقائيًا في العنوان الجديد.



هناك تكامل مع Apple HomeKit ، يتم استخدامه للتحكم الصوتي من خلال Siri. تتكامل جميع الأجهزة المدعومة في BARY مع Apple HomeKit بعلامة واحدة (مرحبًا بعشاق HomeBridge). لا يخلو من دعم ياندكس أليس. كانت أكثر ودية من حيث أوامر الواجهة. على سبيل المثال ، لا يريد Siri إغلاق الستائر باستخدام الأمر "إغلاق الستائر" ، ولا يمكنه تعيين مستوى صوت معين على التلفزيون وما إلى ذلك. Yandex.Alice ليس لديها مثل هذه الكوكيز. 

من أجل راحة إدارة الأراضي الذكية ، تم تنفيذ الأتمتة: قواعد تنفيذ أي إجراءات عند استيفاء مجموعة من الشروط. الأتمتة منطقية ومتعددة المستويات ، أي يمكنك فعل شيء مثل: "الشرط 1 و (الشرط 2 أو الشرط 3)." كل ذلك في محرر آلي منطقي جميل:



شخصيا ، كان لدي بالفعل مائة برنامج أتمتة ، ويمكن العثور على أي منها بسرعة ، لأنه يتم تجميع كل شيء حسب الغرفة والجهاز:



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



لقد غادرت المنزل / أعود إلى المنزل عبر Apple TV - يتم تشغيله / إيقاف تشغيله تلقائيًا عندما يغادر الجميع المنزل ، أو يعود شخص ما إلى المنزل. لقد عدت إلى المنزل ، والمقابل بعيون حزينة من القناة الأولى قابلك بالفعل هناك. حسنًا ، رائع؟

حسنًا ، أي نوع من المنازل الذكية بدون القدرة على مشاهدة قطة؟



يمكنك توصيل أي كاميرا قادرة على تقديم تيار RTSP. 

بشكل منفصل ، أود أن أقول عن كتلة الإحصائيات. اتضح أنه غني بالمعلومات:



في وسيلة الإيضاح ، الشريط الأحمر هو الانحراف عن متوسط ​​القيم للأشهر الستة الماضية ، الشريط الرمادي هو معدل التدفق ضمن متوسط ​​القيم.

في الصورة ، إحصائياتي لشهر سبتمبر. كان الجو باردًا ، ولم يتم تسخينه بعد ، لذلك تم تشغيل التدفئة باستمرار عند التهوية.

يمكنك أيضًا الاطلاع على إحصائيات لأي جهاز متصل:



بالمناسبة ، أدى توفر الأتمتة والإحصاءات إلى تقليل تكاليف الكهرباء بأكثر من مرتين.

يتم تخزين جميع الأحداث الجارية ويمكن مشاهدتها:



كما يوجد على الصفحة الرئيسية علامة تبويب خاصة تجمع جميع المؤشرات الرئيسية التي اختارها المستخدم:



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

العمارة والأمن


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

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

من أين احصل على


يمكن تشغيل جانب الخادم على أي نظام أساسي موجود تقريبًا - شكرًا NodeJS. بالنسبة إلى الأنظمة الأساسية الأكثر شيوعًا ، قمنا بإعداد نصوص ستقوم بكل العمل تلقائيًا.

بالنسبة إلى Raspberry Pi استنادًا إلى Debian Stretch:

wget -qO- "http://bary.io/install?target=pi" | sudo bash

المعلمة الهدف مسؤولة عن النظام الأساسي المستهدف ويمكن أن تحتوي على القيم التالية:
راسبيري باي (ديبيان سترتش)
بي
راسبيري باي (ديبيان باستر)
pi_buster
لوحة Tinker (تمدد ديبيان)
السل
لوحة ويرين (ديبيان سترتش)
فب

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

التطبيق متاح مجانًا على Google Play و App Store . ربما بحلول نهاية العام ، سيتم دفع الطلب.

استنتاج


لماذا كتبت هذا المقال؟ الهدف الرئيسي هو الحصول على تعليقات منك.

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

نحن منفتحون للحوار حول عمليات الدمج الممكنة ونحن على استعداد لتنفيذ دعم المعدات من الشركات المهتمة بالشراكة في أقرب وقت ممكن. تحصل على تطبيق جاهز ولا تضيع الوقت في تطوير البرامج. ونحصل على مجموعة واسعة من الأجهزة المدعومة لكل ذوق ولون. كل شيء على ما يرام. 

الخطط الفورية وقائمة أمنيات قوس قزح


نشارك أنا وفريقي حاليًا بنشاط في تطوير وحدة تخزين الفيديو. سيكون من الممكن وضع الفيديو في مخزن منزلك أو في خدمة سحابية. أعتقد أنه في بداية العام المقبل سيكون من الممكن التحدث عن إصدار جديد. هل يمكن أن يكون من الممكن مراجعة أفضل لآلئ قطة مسلية بنفسها بينما الملاك ليسوا في المنزل؟ 

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

نخطط أيضًا لبدء إنتاج وحدات التحكم باستخدام برنامج مثبت مسبقًا للحلول الدفعية للمنزل الذكي (يتوفر حاليًا حل الدُفعات "البرمجيات + الأجهزة" مع شركائنالوحة Wiren .

ودعم Google Home و Amazon Alexa. حسنًا ، توسيع نطاق المعدات المدعومة ، بالطبع.

بالمناسبة ، من يهتم ، يمكنك رؤية قائمة الأجهزة المدعومة (غير المكتملة) على موقعنا ، وإذا لم يتم العثور على شيء ما في القائمة ، ثم اسأل في مجموعة البرقية .

سنكون ممتنين للغاية إذا شاركت ما تفتقر إليه في التطبيقات الحالية والوظائف التي ستضيفها في مكاننا.

شكرا لكم جميعا على القراءة. دعونا نجعل بيوتنا أكثر ذكاءً معًا!

All Articles