إنشاء جهاز متوافق مع معيار Matter

1- مقدمة

إنّ Matter هو بروتوكول اتصال يوفّر فرصًا مثيرة لتطوير الأجهزة الذكية. في هذا الدرس التطبيقي حول الترميز، ستنشئ أوّل جهاز متوافق مع معيار Matter. للحصول على معلومات حول Matter، يُرجى الانتقال إلى Google Home Developer Center: Matter أو موقع Connectivity Standards Alliance على الويب.

ما ستتعرَّف عليه

  • كيفية دمج جهاز مادي مع معيار Matter.
  • طريقة تفويض جهاز Matter والتحكّم فيه باستخدام Google Home.

المتطلبات

2- إعداد البيئة

تحديد الجهاز التسلسلي

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

  1. وصِّل لوحة المطوّرين بجهاز الكمبيوتر باستخدام كابل USB.
  2. ابحث في نظام الملفات /dev للعثور على جهاز لوحة المطوّرين. يمكنك تضييق نطاق البحث عن طريق تحديد بادئة الجهاز للوحة مطوّري البرامج. يستخدم منتج Espressif's ESP32 /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

إعداد المركز

يمكنك إعداد مركز التحكّم باستخدام حساب Google نفسه الذي تريد استخدامه في هذا الدرس التطبيقي حول الترميز.

إعداد بيئة التطوير

المتطلبات الأساسية

تم اختبار هذه التعليمات على Debian Linux، ومن المفترض أن تعمل على معظم إصدارات Linux المستندة إلى Debian، بما في ذلك Ubuntu. إذا كنت تعمل على توزيع مختلف من Linux، فقد يختلف إجراء إعداد التبعية عما يلي.

تثبيت التبعيات

شغّل الأمر التالي لتثبيت البرامج الثنائية المطلوبة لحزمة Linux التي لم يتم تثبيتها من قبل:

$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \
libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \
python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev screen

إعداد حزمة تطوير البرامج (SDK)

لمواصلة هذا الدرس التطبيقي حول الترميز، عليك استخدام Espressif SDK (أي Espressif IoT Development Framework أو "ESP-IDF").

  1. يمكنك إنشاء دليل يحتوي على ESP-IDF:
    $ mkdir ~/esp-idf_tools
    
  2. استنسِخ ESP-IDF من GitHub في هذا الدليل:
    $ cd ~/esp-idf_tools
    $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
    
  3. أكمِل تثبيت سلسلة الأدوات:
    $ cd ./esp-idf
    $ ./install.sh
    $ cd ~/
    

إعداد حزمة تطوير البرامج (SDK) لمعيار Matter

  1. استنساخ مستودع Matter المفتوح المصدر:
    $ git clone https://github.com/project-chip/connectedhomeip.git
    $ cd ./connectedhomeip
    $ git fetch origin v1.0-branch
    $ git checkout FETCH_HEAD
    
  2. استرجاع الوحدات الفرعية للمستودع:
    $ ./scripts/checkout_submodules.py --shallow --platform esp32
    
  3. بدء تشغيل بيئة تطوير Matter:
    $ source ./scripts/bootstrap.sh
    

3. وحدة تحكّم المطوّرين في Google Home

Google Home Developer Console هو تطبيق الويب الذي يمكنك من خلاله إدارة عمليات دمج Matter مع Google Home.

إنّ أي جهاز Matter اجتاز شهادة Connectivity Standards Alliance (التحالف) متوافق مع منظومة Google Home المتكاملة. إنّ الأجهزة قيد التطوير التي لم يتم اعتمادها يمكن تفويضها في منظومة Google Home المتكاملة في ظل ظروف معيّنة. يُرجى الاطّلاع على قيود الإقران للحصول على مزيد من المعلومات.

إنشاء مشروع مطوِّر

ابدأ بالانتقال إلى وحدة تحكّم المطوّرين في Google Home:

  1. انقر على إنشاء مشروع.
  2. أدخِل اسم مشروع فريدًا ثم انقر على Create project (إنشاء مشروع). مربع حوار إنشاء مشروع جديد
  3. انقر على + إضافة عملية دمج، والتي تنقلك إلى شاشة موارد المسألة القانونية، حيث يمكنك الاطّلاع على مستندات تطوير معيار Matter والقراءة عن بعض الأدوات.
  4. عندما تكون مستعدًا للمتابعة، انقر على التالي: تطوير، حيث سيتم عرض صفحة قائمة التحقق المتعلقة بالمسألة القانونية.
  5. انقر على التالي: الإعداد.
  6. في صفحة الإعداد، أدخِل اسم المنتج.
  7. انقر على اختيار نوع الجهاز واختَر نوع الجهاز من القائمة المنسدلة (Light في هذه الحالة).
  8. في معرِّف المورِّد (VID)، اختَر اختبار VID، واختَر 0xFFF1 من القائمة المنسدلة Test VID. في معرّف المنتج (PID)، أدخل 0x8000 وانقر على حفظ ومتابعة، ثم انقر على حفظ في الصفحة التالية. استخدِم قيم VID/PID الدقيقة هذه، وتعتمد خطوات الدرس التطبيقي لاحقًا على هذه القيم.
    إعداد المشروع
  9. ستظهر لك الآن عملية الدمج ضمن عمليات دمج المسائل القانونية.
  10. يُرجى إعادة تشغيل الجهاز للتأكُّد من تلقّيه أحدث إعدادات لمشروع دمج Matter. وإذا اضطررت إلى تغيير VID أو PID لاحقًا، فستحتاج أيضًا إلى إعادة التشغيل بعد حفظ المشروع حتى يسري التغيير. يُرجى الاطّلاع على إعادة تشغيل أجهزة Google Nest أو Google Wifi للحصول على تعليمات مفصّلة حول إعادة التشغيل.

4- تصميم الجهاز

يتم وضع جميع الأمثلة في Matter في مجلد الأمثلة على مستودع جيت هب. تتوفّر نماذج متعدّدة، ولكن ينصب تركيزنا في هذا الدرس التطبيقي حول الترميز على lighting-app.

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

ضبط الإصدار

  1. اضبط حزمة تطوير البرامج (SDK) لمعيار Matter وفعِّل بيئة إصدار Matter:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. تفعيل ذاكرة التخزين المؤقت، التي تعمل على تسريع عملية الإنشاء:
    $ export IDF_CCACHE_ENABLE=1
    
  3. انتقِل إلى دليل إنشاء lighting-app ESP32 واضبط البنية المستهدفة:
    $ cd ./examples/lighting-app/esp32
    $ idf.py set-target esp32
    
    1. شغِّل أداة الإعداد:
      $ idf.py menuconfig
      
    2. اختَر Demo -> Device Type واضبط Device Type على ESP32-DevKitC.
    3. اضغط على مفتاح السهم المتّجه لليسار للرجوع إلى قائمة المستوى الأعلى.
    4. اختَر Component config --->.
    5. اختَر CHIP Device Layer --->.
    6. اختَر Device Identification Options --->.
    7. اضبط Vendor ID على معرّف VID الذي يحدّده التحالف أو معرّف VID تجريبي.
    8. اضبط Product ID على معرّف PID الذي تضبطه عند دمج Matter في Google Home Developer Console.
    9. اضغط على S للحفظ.
    10. اضغط على Return لقبول المسار التلقائي الذي سيتم حفظ الإعداد فيه.
    11. اضغط على Return لإغلاق مربع حوار تأكيد الحفظ.
    12. اضغط على Q للإنهاء من أداة الإعداد.

تشغيل الإصدار

استدعِ النص البرمجي للإصدار:

idf.py build

ومن المفترض أن تكتمل عملية الإنشاء بدون أخطاء.

برمجة الجهاز

  1. وصِّل لوحة المطوّرين بجهاز الكمبيوتر باستخدام كابل USB.
  2. عليك محو أي برامج ثابتة سابقة على الجهاز (إذا كان لديك لوحة مطوّرين واحدة فقط متصلة بجهاز الكمبيوتر، يمكنك إيقاف خيار -p {device}، ومن المفترض أن يتم رصد الجهاز تلقائيًا):
    idf.py -p {device} erase-flash
    
  3. انسخ تطبيقك الجديد إلى لوحة المطوّرين باستخدام:
    idf.py -p {device} flash
    

يمكن العثور على مزيد من المعلومات حول خيارات الفلاش في صفحة مستندات Espressif esptool.py.

5. الاتصال بالجهاز

  1. افتح نافذة terminal (سطر الأوامر).
  2. دوِّن الدليل الذي تستخدمه، ثم اربطه بجهاز Matter الجديد باستخدام GNU screen
    $ screen -L {device} 115200
    
    :
  3. إذا ظهرت وحدة تحكُّم فارغة، اضغط على الزر إعادة الضبط لبدء عملية تشغيل الجهاز.

6- تشغيل الجهاز

ملاحظة: لن تنجح هذه الخطوة إلا إذا سبق لك إعداد مشروعك في Google Home Console.

Nest Hub

يجب توفُّر وحدة تحكُّم لتخصيص جهازك وفقًا لمعيار Matter. هذا الجهاز هو جهاز Google Nest، مثل Nest Hub (الجيل الثاني)، متوافق مع معيار Matter وسيتم استخدامه كجهاز توجيه الحدود للأجهزة التي تستخدم Thread وكمسار تنفيذ محلي لتوجيه أهداف المنزل الذكي.

يمكنك الرجوع إلى هذه القائمة لمعرفة الموزعات التي تتوافق مع معيار Matter.

قبل بدء عملية التفويض، تحقّق مما يلي:

  • تم إقران جهاز الإرساء بحساب Google نفسه الذي استخدمته لتسجيل الدخول على Google Home Console.
  • إنّ وحدة التحكّم متصلة بشبكة Wi-Fi نفسها التي يتصل بها جهاز الكمبيوتر الذي تستخدمه لتشغيل جهاز Virtual Matter.
  • يجب أن يكون الجهاز في البنية نفسها المستخدَمة في تطبيق Google Home (يمثّل "المنزل" في الرسم البياني لـ Google Home البنية).

إقران الجهاز

اتّبِع تعليمات إقران ESP32 لإقران جهازك.

ملاحظة: إذا كنت تستخدم M5STACK، يُرجى العلم بأنّ شاشته ستظل فارغة بعد وميض، لذلك عليك عرض رمز الاستجابة السريعة باستخدام عنوان URL الذي يظهر في وحدة التحكّم. أو يمكنك كتابة رمز الإقران اليدوي بدلاً من ذلك.

مثال على نتيجة وحدة تحكّم تعرض عنوان URL لرمز الاستجابة السريعة:

I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]

تحديد المشاكل وحلّها

تعذُّر التشغيل

لمزيد من النصائح حول تحديد المشاكل وحلّها، راجع صفحة تحديد مشاكل المشاكل وحلّها.

7- التحكّم في الجهاز

بعد أن يتم تفويض جهازك المتوافق مع معيار Matter بنجاح ويظهر في تطبيق Google Home على أنّه مصباح كهربائي، يمكنك محاولة التحكّم في الجهاز باستخدام "مساعد Google" أو تطبيق Google Home أو محاكي "مساعد Google" ضمن إضافة Google Home الخاصة برمز VS.

مساعد Google

يمكنك استخدام "مساعد Google" على هاتفك أو مركز التحكّم لتبديل حالة الجهاز من خلال الطلبات الصوتية، مثل قول "Ok Google، أريد تبديل مصابيحي".

يمكنك الاطّلاع على قسم التحكّم في الأجهزة المنزلية الذكية باستخدام الطلبات الصوتية ضمن التحكّم بالأجهزة المنزلية الذكية المُضافة إلى تطبيق Google Home للحصول على المزيد من الأمثلة على الطلبات.

تطبيق Google Home

يمكنك النقر على التصنيفات تفعيل وإيقاف بجانب رمز المصباح الذي يظهر في تطبيق Google Home.

لمزيد من المعلومات، يمكنك الاطّلاع على مقالة التحكّم في الأجهزة باستخدام تطبيق Google Home.

محاكي "مساعد Google"

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

8- تهانينا!

لقد أنشأت جهاز Matter الأول وكلّفته بنجاح. رائع!

تعلّمت في هذا الدرس التطبيقي حول الترميز طريقة تنفيذ ما يلي:

  • ثبِّت بيئة تطوير Matter من المتطلبات إلى حالة العمل.
  • إنشاء جهاز Matter وتشغيله.
  • يمكنك تفويض جهازك والتحكّم فيه من خلال Google Home.

لمعرفة المزيد من المعلومات عن معيار Matter، يمكنك الاطّلاع على المراجع التالية: