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

1. परिचय

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

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

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

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

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

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

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

  1. यूएसबी केबल का इस्तेमाल करके, डेवलपर बोर्ड को अपने कंप्यूटर से कनेक्ट करें.
  2. डेवलपर बोर्ड डिवाइस ढूंढने के लिए /dev फ़ाइल सिस्टम में देखें. खोज को सटीक बनाने के लिए, अपने डेवलपर बोर्ड का डिवाइस प्रीफ़िक्स बताएं. Espressif का 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. ओपन सोर्स मैटर रिपॉज़िटरी का क्लोन बनाएं:
    $ 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. मैटर डेवलपमेंट एनवायरमेंट को बूटस्ट्रैप करें:
    $ source ./scripts/bootstrap.sh
    

3. Google Home कंसोल

Google Home Developer Console ऐसा वेब ऐप्लिकेशन है जहां आप Google Home के साथ Matter के इंटिग्रेशन को मैनेज करते हैं.

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

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

Google Home Developer Console पर जाकर शुरू करें:

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

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

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

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

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

  1. Matter SDK टूल कॉन्फ़िगर करें और 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 को अपने संगठन के असाइन किए गए वीआईडी या टेस्ट वीआईडी पर सेट करें.
    8. Product ID को उस पीआईडी पर सेट करें जिसे आपने Google Home Developer Console में Matter के इंटिग्रेशन पर सेट किया था.
    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 Developer Console में अपना प्रोजेक्ट पहले से सेट अप किया हो.

Nest Hub

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

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

कमीशन की प्रक्रिया शुरू करने से पहले, पक्का करें कि:

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

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

अपने डिवाइस को जोड़ने के लिए, 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]]

समस्या का हल

कमीशन नहीं किया जा सका

समस्या हल करने के बारे में ज़्यादा सलाह पाने के लिए, Matter की समस्या हल करने वाला पेज देखें.

7. डिवाइस कंट्रोल करें

जब Matter की सुविधा वाला डिवाइस चालू हो जाए और Google Home ऐप्लिकेशन में लाइट बल्ब के तौर पर दिखने लगे, तब डिवाइस को कंट्रोल करने के लिए Google Assistant, Google Home ऐप्लिकेशन या Google Home एक्सटेंशन में Google Assistant सिम्युलेटर का इस्तेमाल करें.

Google Assistant

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

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

Google Home ऐप्लिकेशन

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

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

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

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

8. बधाई हो!

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

इस कोडलैब में, आपने ये काम करने का तरीका सीखा:

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

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