Matter से जुड़ा कोई डिवाइस बनाएं

1. शुरुआती जानकारी

Matter एक कनेक्टिविटी प्रोटोकॉल है, जो स्मार्ट डिवाइसों को डेवलप करने के बेहतर अवसर उपलब्ध कराता है. इस कोडलैब में, आपको Matter से जुड़ा अपना पहला डिवाइस बनाने का विकल्प होगा. Matter के बारे में जानने के लिए, Google Home Developer Center: Matter या Connectivity Standards Alliance की वेबसाइट पर जाएं.

आप इन चीज़ों के बारे में जानेंगे

  • किसी फ़िज़िकल डिवाइस को Matter से इंटिग्रेट करने का तरीका.
  • Google Home की मदद से, Matter डिवाइस को कमीशन और कंट्रोल करने का तरीका.

आपको इनकी ज़रूरत होगी

2. अपना एनवायरमेंट सेट अप करें

सीरियल डिवाइस की पहचान करें

डेवलपमेंट एनवायरमेंट को सेट अप करने का पहला चरण यह तय करना है कि आपका डिवाइस किस सीरियल पोर्ट से कनेक्ट है. इस जानकारी से, आपको अपने डेवलपर बोर्ड के लिए प्रोग्राम बनाने और उससे इंटरैक्ट करने में मदद मिलेगी.

  1. यूएसबी केबल का इस्तेमाल करके डेवलपर बोर्ड को अपने कंप्यूटर से कनेक्ट करें.
  2. डेवलपर बोर्ड डिवाइस ढूंढने के लिए, /dev फ़ाइल सिस्टम देखें. अपने डेवलपर बोर्ड के डिवाइस प्रीफ़िक्स के बारे में बताकर, अपनी खोज को सटीक बनाया जा सकता है. एस्प्रेसिफ़ का ESP32 /dev/ttyUSBx:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    
    का इस्तेमाल करता है

अपना हब सेट अप करें

उसी Google खाते का इस्तेमाल करके अपना हब सेट अप करें जिसे आप इस कोडलैब के लिए इस्तेमाल करना चाहते हैं.

डेवलपमेंट एनवायरमेंट सेट अप करें

ज़रूरी शर्तें

इन निर्देशों का टेस्ट Debian Linux पर किया गया है. यह Ubuntu के साथ-साथ, ज़्यादातर Debian आधारित Linux सिस्टम पर काम करता है. अगर आप किसी दूसरे 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 डेवलपमेंट फ़्रेमवर्क या ‘ESP-IDF') की ज़रूरत होगी.

  1. ESP-IDF को शामिल करने के लिए कोई डायरेक्ट्री बनाएं:
    $ mkdir ~/esp-idf_tools
    
  2. GitHub से ESP-IDF को इस डायरेक्ट्री में क्लोन करें:
    $ 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 ~/
    

Matter SDK टूल को सेट अप करें

  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 ऐसा वेब ऐप्लिकेशन है जहां Google Home के साथ Matter के इंटिग्रेशन मैनेज किए जाते हैं.

Matter के साथ काम करने वाला कोई भी डिवाइस, Google Home नेटवर्क में काम करता है. इसके लिए, Connectivity Standards Alliance (Alliance) का सर्टिफ़िकेशन हासिल किया जा सकता है. जो डिवाइस डेवलप किए जा रहे हैं उन्हें कुछ शर्तों के तहत, Google Home नेटवर्क में शामिल किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि ये डिवाइस अभी टेस्ट नहीं किए गए हों. ज़्यादा जानकारी के लिए, दूसरे डिवाइस से जोड़ने से जुड़ी पाबंदियां देखें.

डेवलपर प्रोजेक्ट बनाना

Google Home कंसोल पर जाकर शुरुआत करें:

  1. प्रोजेक्ट बनाएं पर क्लिक करें.
  2. प्रोजेक्ट का यूनीक नाम डालें. इसके बाद, प्रोजेक्ट बनाएं पर क्लिक करें. नया प्रोजेक्ट डायलॉग बनाएं
  3. + इंटिग्रेशन जोड़ें पर क्लिक करें. यह आपको Matter संसाधन स्क्रीन पर ले जाएगा. यहां आप Matter के डेवलपमेंट से जुड़े दस्तावेज़ देख सकते हैं और कुछ टूल के बारे में पढ़ सकते हैं.
  4. जब आप आगे बढ़ने के लिए तैयार हों, तब आगे बढ़ें: डेवलप करें पर क्लिक करें. इससे मैटर चेकलिस्ट पेज दिखेगा.
  5. अगला: सेटअप पर क्लिक करें
  6. सेटअप पेज पर, अपने प्रॉडक्ट का नाम डालें.
  7. डिवाइस का टाइप चुनें पर क्लिक करें. इसके बाद, ड्रॉप-डाउन मेन्यू से डिवाइस का टाइप चुनें (इस मामले में, Light).
  8. वेंडर आईडी (VID) में, VID की जांच करें चुनें. इसके बाद, VID टेस्ट करें ड्रॉप-डाउन मेन्यू से 0xFFF1 चुनें. प्रॉडक्ट आईडी (पीआईडी) में, 0x8000 डालें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. इसके बाद, अगले पेज में सेव करें पर क्लिक करें. VID/PID की यही वैल्यू इस्तेमाल करें. बाद के कोडलैब के चरण इन पर निर्भर करते हैं.
    प्रोजेक्ट सेट अप करना
  9. अब आपको अपना इंटिग्रेशन, Matter इंटिग्रेशन में दिखेगा.
  10. अपने हब को फिर से चालू करें, ताकि इसे Matter इंटिग्रेशन प्रोजेक्ट का सबसे नया कॉन्फ़िगरेशन मिल सके. अगर आपको बाद में VID या PID बदलना हो, तो प्रोजेक्ट को सेव करने के बाद, आपको उसे फिर से चालू करना होगा. ऐसा करने पर, बदलाव लागू हो सकेगा. डिवाइस को फिर से चालू करने का सिलसिलेवार तरीका जानने के लिए, Google Nest या Google Wifi डिवाइसों को रीस्टार्ट करें पर जाएं.

4. डिवाइस बनाएं

Matter के सभी उदाहरण GitHub रिपॉज़िटरी में मौजूद उदाहरण फ़ोल्डर में दिए जाते हैं. यहां कई सैंपल उपलब्ध हैं, लेकिन हमारा फ़ोकस इस कोडलैब पर लाइटिंग-ऐप्लिकेशन पर है.

यह एक सामान्य डिवाइस है. यह डिवाइस Google Home में, चालू/बंद होने की लाइट के तौर पर दिखता है. यह डिवाइस, चालू और बंद करने के निर्देशों का जवाब देता है. इसे असल इलेक्ट्रिक लाइट का कंट्रोल देना, इस कोडलैब के दायरे से बाहर है.

बिल्ड कॉन्फ़िगर करना

  1. Matter SDK टूल को कॉन्फ़िगर करें और Matter बिल्ड एनवायरमेंट को चालू करें:
    $ cd ~/esp-idf_tools/esp-idf
    $ source export.sh
    $ cd ~/connectedhomeip
    $ source ./scripts/activate.sh
    
  2. Ccache चालू करें, जिससे बिल्ड की प्रोसेस तेज़ हो जाती है:
    $ 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. Google Home डेवलपर कंसोल में, Matter इंटिग्रेशन के लिए सेट किए गए पीआईडी में Product ID को सेट करें.
    9. सेव करने के लिए S दबाएं.
    10. कॉन्फ़िगरेशन को सेव करने के लिए डिफ़ॉल्ट पाथ को स्वीकार करने के लिए, Return दबाएं.
    11. सेव करने की पुष्टि वाले डायलॉग को खारिज करने के लिए, Return दबाएं.
    12. कॉन्फ़िगरेशन यूटिलिटी से बाहर निकलने के लिए Q दबाएं.

बिल्ड चलाना

बिल्ड स्क्रिप्ट शुरू करें:

idf.py build

बिल्ड बिना किसी गड़बड़ी के पूरा होना चाहिए.

डिवाइस को प्रोग्राम करें

  1. यूएसबी केबल का इस्तेमाल करके अपने डेवलपर बोर्ड को अपने कंप्यूटर से कनेक्ट करें.
  2. डिवाइस पर मौजूद पिछले फ़र्मवेयर को वाइप करें. अगर आपके कंप्यूटर से सिर्फ़ एक डेवलपर बोर्ड कनेक्ट किया गया है, तो आपके पास -p {device} का विकल्प बंद करने का विकल्प है. फ़र्मवेयर अपने-आप मिट जाएगा:
    idf.py -p {device} erase-flash
    
  3. डेवलपर बोर्ड पर अपने नए ऐप्लिकेशन को इसके साथ कॉपी करें:
    idf.py -p {device} flash
    

फ़्लैशिंग विकल्पों के बारे में ज़्यादा जानकारी Espressif esptool.py दस्तावेज़ पेज पर मिल सकती है.

5. डिवाइस से कनेक्ट करें

  1. टर्मिनल विंडो खोलें.
  2. नोट करें कि आप किस डायरेक्ट्री में हैं. इसके बाद, GNU screen का इस्तेमाल करके, Matter को अपने नए डिवाइस से कनेक्ट करें:
    $ screen -L {device} 115200
    
  3. अगर आपको कोई खाली कंसोल दिखता है, तो डिवाइस को बूट करने की प्रोसेस शुरू करने के लिए, रीसेट करें बटन दबाएं.

6. डिवाइस को क्रेडेंशियल असाइन करें

ध्यान दें: यह चरण सिर्फ़ तब काम करेगा, जब आपने Google Home कंसोल में अपना प्रोजेक्ट पहले से सेट अप किया हो.

Nest Hub

आपके डिवाइस को Matter के कपड़े पर सेट करने के लिए, हब ज़रूरी है. यह Google Nest डिवाइस है, जैसे कि Nest Hub (2nd जनरेशन), Matter के साथ काम करता है. यह Thread की सुविधा वाले डिवाइसों के लिए बॉर्डर राऊटर, दोनों के तौर पर काम करेगा. साथ ही, यह स्मार्ट होम इंटेंट को रूट करने के लिए, लोकल फ़ुलफ़िलमेंट पाथ के तौर पर काम करेगा.

यह सूची देखें और जानें कि कौनसे हब, Matter के साथ काम करते हैं.

कमीशन की प्रोसेस शुरू करने से पहले, इन बातों की जांच कर लें:

  • आपके हब को उसी Google खाते से जोड़ा गया है जिसका इस्तेमाल आपने Google Home Console पर साइन इन करने के लिए किया था.
  • आपका हब उसी वाई-फ़ाई नेटवर्क से कनेक्ट है जिसका इस्तेमाल वर्चुअल Matter डिवाइस को चलाने के लिए किया जा रहा है.
  • आपका हब उसी स्ट्रक्चर में है जिसका इस्तेमाल आपके Google Home ऐप्लिकेशन पर किया जा रहा है. (Google होम ग्राफ़ में मौजूद "हाउस" आपके स्ट्रक्चर के बारे में बताता है).

डिवाइस को दूसरे डिवाइस से जोड़ें

अपने डिवाइस को दूसरे डिवाइस से जोड़ने के लिए, ESP32 को दूसरे डिवाइस से जोड़ने के निर्देशों का पालन करें.

ध्यान दें: अगर M5STACK का इस्तेमाल किया जा रहा है, तो ध्यान रखें कि फ़्लैश होने के बाद भी इसकी स्क्रीन खाली रहेगी. इसलिए, आपको कंसोल में दिखने वाले यूआरएल का इस्तेमाल करके क्यूआर कोड देखना होगा. या, आप इसके बजाय मैन्युअल रूप से जोड़ने का कोड टाइप कर सकते हैं.

कंसोल आउटपुट का क्यूआर कोड यूआरएल दिखाने वाला उदाहरण:

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 Assistant, Google Home ऐप्लिकेशन या VS Code के लिए Google Home एक्सटेंशन में मौजूद Google Assistant सिम्युलेटर से कंट्रोल किया जा सकता है.

Google Assistant

अपने फ़ोन या हब पर Google Assistant का इस्तेमाल करके, डिवाइस की स्थिति को बोलकर दिए जाने वाले निर्देशों से टॉगल करें. जैसे, "Ok Google, मेरी लाइटें टॉगल करो".

निर्देशों के और उदाहरण देखने के लिए, Google Home ऐप्लिकेशन से जोड़े गए स्मार्ट होम डिवाइस कंट्रोल करें पेज पर, बोलकर दिए गए निर्देशों की मदद से स्मार्ट होम डिवाइस कंट्रोल करना सेक्शन देखें.

Google Home ऐप्लिकेशन

Google Home ऐप्लिकेशन पर, बल्ब आइकॉन के बगल में मौजूद चालू और बंद लेबल पर टैप किया जा सकता है.

ज़्यादा जानकारी के लिए, Google Home ऐप्लिकेशन से डिवाइसों को कंट्रोल करना लेख पढ़ें.

Google Assistant सिम्युलेटर

VS Code के लिए Google Home एक्सटेंशन में Google Assistant सिम्युलेटर का इस्तेमाल करके, आप चैट जैसे इंटरफ़ेस की मदद से अपने डिवाइस पर उच्चारण जारी कर सकते हैं.

8. बधाई हो!

आपने अपना पहला Matter डिवाइस बना लिया है और उसे कमीशन कर लिया है. बहुत बढ़िया!

इस कोडलैब में, आपने जाना कि ये काम कैसे किए जाते हैं:

  • ज़रूरी शर्तों से लेकर काम करने की स्थिति तक, Matter डेवलपमेंट एनवायरमेंट इंस्टॉल करें.
  • Matter की सुविधा वाला डिवाइस बनाएं और चलाएं.
  • Google Home की मदद से, अपने डिवाइस को कमीशन और कंट्रोल करें.

Matter के बारे में ज़्यादा जानने के लिए, इन रेफ़रंस को एक्सप्लोर करें:

  • Google Home का Matter Primer प्लैटफ़ॉर्म, जहां आपको Matter प्रोटोकॉल के अहम सिद्धांतों और सिद्धांतों के बारे में जानकारी दी जाएगी.
  • Matter की खास जानकारी, Matter डिवाइस लाइब्रेरी, और Matter ऐप्लिकेशन क्लस्टर लाइब्रेरी, जिन्हें कनेक्टेड स्टैंडर्ड अलायंस ने पब्लिश किया है.
  • Matter GitHub रिपॉज़िटरी.