একটি ম্যাটার ডিভাইস তৈরি করুন

1. ভূমিকা

ম্যাটার হল একটি সংযোগ প্রোটোকল যা স্মার্ট ডিভাইসগুলির বিকাশের জন্য উত্তেজনাপূর্ণ সুযোগ নিয়ে আসে। এই কোডল্যাবে, আপনি আপনার প্রথম ম্যাটার ডিভাইস তৈরি করবেন। ম্যাটার সম্পর্কে জানতে, Google হোম ডেভেলপার সেন্টারে যান: ম্যাটার বা কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স ওয়েবসাইট

আপনি কি শিখবেন

  • কিভাবে পদার্থের সাথে একটি ভৌত ​​যন্ত্রকে সংহত করবেন।
  • Google Home-এর মাধ্যমে কীভাবে আপনার ম্যাটার ডিভাইস কমিশন ও নিয়ন্ত্রণ করবেন।

আপনি কি প্রয়োজন হবে

2. আপনার পরিবেশ সেট আপ করুন

সিরিয়াল ডিভাইস সনাক্ত করুন

আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার প্রথম ধাপ হল আপনার ডিভাইস কোন সিরিয়াল পোর্টের সাথে সংযুক্ত তা নির্ধারণ করা। এই তথ্য আপনাকে আপনার বিকাশকারী বোর্ডের সাথে প্রোগ্রাম এবং ইন্টারঅ্যাক্ট করার অনুমতি দেবে।

  1. একটি USB কেবল ব্যবহার করে বিকাশকারী বোর্ডটিকে আপনার কম্পিউটারে সংযুক্ত করুন৷
  2. বিকাশকারী বোর্ড ডিভাইসটি খুঁজতে /dev ফাইল সিস্টেমে দেখুন। আপনি আপনার বিকাশকারী বোর্ডের ডিভাইস উপসর্গ নির্দিষ্ট করে আপনার অনুসন্ধানকে সংকীর্ণ করতে পারেন। Espressif এর ESP32 /dev/ttyUSBx ব্যবহার করে:
    user@host $ ls /dev/ttyUSB*
    /dev/ttyUSB0
    

আপনার হাব সেট আপ করুন

আপনি এই কোডল্যাবের জন্য যে Google অ্যাকাউন্টটি ব্যবহার করতে চান সেই একই Google অ্যাকাউন্ট ব্যবহার করে আপনার হাব সেট আপ করুন৷

আপনার উন্নয়ন পরিবেশ সেট আপ করুন

পূর্বশর্ত

এই নির্দেশাবলী ডেবিয়ান লিনাক্সে পরীক্ষা করা হয়েছিল এবং উবুন্টু সহ বেশিরভাগ ডেবিয়ান-ভিত্তিক লিনাক্স বিতরণে কাজ করা উচিত। আপনি যদি একটি ভিন্ন লিনাক্স ডিস্ট্রিবিউশনের সাথে কাজ করেন, তাহলে নির্ভরতা সেটআপ পদ্ধতি অনুসরণ করা থেকে ভিন্ন হতে পারে।

নির্ভরতা ইনস্টল করুন

প্রয়োজনীয় লিনাক্স প্যাকেজ বাইনারি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান যা ইতিমধ্যে ইনস্টল করা হয়নি:

$ 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 ~/
    

ম্যাটার 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 Developer Console হল ওয়েব অ্যাপ্লিকেশন যেখানে আপনি Google Home-এর সাথে আপনার ম্যাটার ইন্টিগ্রেশন পরিচালনা করেন।

কানেক্টিভিটি স্ট্যান্ডার্ড অ্যালায়েন্স (অ্যালায়েন্স) ম্যাটার সার্টিফিকেশন পাস করা যেকোনও ম্যাটার ডিভাইস Google Home ইকোসিস্টেমে কাজ করে। ডেভেলপমেন্টের অধীনে থাকা ডিভাইসগুলি যেগুলিকে প্রত্যয়িত করা হয়নি সেগুলি নির্দিষ্ট শর্তে Google Home ইকোসিস্টেমে চালু করা যেতে পারে - আরও তথ্যের জন্য পেয়ারিং সীমাবদ্ধতা দেখুন।

একটি বিকাশকারী প্রকল্প তৈরি করুন

গুগল হোম ডেভেলপার কনসোলে গিয়ে শুরু করুন:

  1. প্রকল্প তৈরি করুন ক্লিক করুন।
  2. একটি অনন্য প্রকল্পের নাম লিখুন এবং তারপরে প্রকল্প তৈরি করুন ক্লিক করুন।নতুন প্রকল্প ডায়ালগ তৈরি করুন
  3. ক্লিক করুন + সংহতকরণ যোগ করুন , যা আপনাকে ম্যাটার রিসোর্স স্ক্রিনে নিয়ে যায়, যেখানে আপনি ম্যাটার ডেভেলপমেন্ট ডকুমেন্টেশন দেখতে পারেন এবং কিছু টুলস সম্পর্কে পড়তে পারেন।
  4. আপনি যখন চালিয়ে যাওয়ার জন্য প্রস্তুত হন, তখন পরবর্তী ক্লিক করুন: বিকাশ করুন , যা ম্যাটার চেকলিস্ট পৃষ্ঠাটি প্রদর্শন করে।
  5. Next ক্লিক করুন: সেটআপ
  6. সেটআপ পৃষ্ঠায়, আপনার পণ্যের নাম লিখুন।
  7. ডিভাইসের ধরন নির্বাচন করুন ক্লিক করুন এবং ড্রপ-ডাউন মেনু থেকে ডিভাইসের প্রকার নির্বাচন করুন (এই ক্ষেত্রে, Light )।
  8. ভেন্ডর আইডিতে (ভিআইডি), টেস্ট ভিআইডি নির্বাচন করুন এবং টেস্ট ভিআইডি ড্রপ-ডাউন মেনু থেকে 0xFFF1 নির্বাচন করুন। প্রোডাক্ট আইডিতে (পিআইডি), 0x8000 লিখুন এবং সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন এবং তারপরে নিম্নলিখিত পৃষ্ঠায় সংরক্ষণ করুন ক্লিক করুন। এই সঠিক VID/PID মানগুলি ব্যবহার করুন, পরবর্তী কোডল্যাব পদক্ষেপগুলি তাদের উপর নির্ভর করে।
    একটি প্রকল্প স্থাপন
  9. এখন আপনি ম্যাটার ইন্টিগ্রেশনের অধীনে আপনার ইন্টিগ্রেশন দেখতে পাবেন।
  10. আপনার হাব রিবুট করুন যাতে এটি সাম্প্রতিকতম ম্যাটার ইন্টিগ্রেশন প্রজেক্ট কনফিগারেশন পায়। যদি আপনাকে পরে ভিআইডি বা পিআইডি পরিবর্তন করতে হয়, তবে পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে প্রকল্পটি সংরক্ষণ করার পরে পুনরায় বুট করতে হবে। ধাপে ধাপে রিবুট নির্দেশাবলীর জন্য Google Nest বা Google Wifi ডিভাইস রিস্টার্ট করুন দেখুন।

4. ডিভাইস তৈরি করুন

ম্যাটারের সমস্ত উদাহরণ Github সংগ্রহস্থলের উদাহরণ ফোল্ডারে স্থাপন করা হয়েছে। বেশ কয়েকটি নমুনা উপলব্ধ রয়েছে, তবে এই কোডল্যাবের উপর আমাদের ফোকাস আলোক-অ্যাপের উপর।

এই উদাহরণটি হল একটি সাধারণ ডিভাইস যা Google Home-এ একটি অন/অফ লাইট হিসেবে প্রদর্শিত হয়, অন এবং অফ কমান্ডে সাড়া দেয়। এটিকে একটি প্রকৃত বৈদ্যুতিক আলো নিয়ন্ত্রণ করা এই কোডল্যাবের সুযোগের বাইরে।

বিল্ড কনফিগার করুন

  1. ম্যাটার SDK কনফিগার করুন এবং ম্যাটার বিল্ড এনভায়রনমেন্ট সক্রিয় করুন:
    $ 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 সেট করুন।
    8. Google হোম ডেভেলপার কনসোলে ম্যাটার ইন্টিগ্রেশনে আপনি যে পিআইডি সেট করেছেন তাতে Product ID সেট করুন।
    9. সংরক্ষণ করতে S টিপুন।
    10. ডিফল্ট পাথ গ্রহণ করতে রিটার্ন টিপুন যেখানে কনফিগারেশন সংরক্ষণ করা হবে।
    11. সংরক্ষণ নিশ্চিতকরণ ডায়ালগ খারিজ করতে রিটার্ন টিপুন।
    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. একটি টার্মিনাল উইন্ডো খুলুন।
  2. আপনি কোন ডিরেক্টরিতে আছেন তার একটি নোট করুন, তারপর GNU screen ব্যবহার করে আপনার নতুন ম্যাটার ডিভাইসের সাথে সংযোগ করুন:
    $ screen -L {device} 115200
    
  3. আপনি যদি একটি ফাঁকা কনসোল দেখতে পান, তাহলে ডিভাইস বুট প্রক্রিয়া শুরু করতে RESET বোতাম টিপুন।

6. ডিভাইস কমিশন

দ্রষ্টব্য : এই পদক্ষেপটি তখনই সফল হবে যদি আপনি ইতিমধ্যেই Google Home Developer Console-এ আপনার প্রোজেক্ট সেট আপ করে থাকেন।

নেস্ট হাব

ম্যাটার ফ্যাব্রিকে আপনার ডিভাইস চালু করার জন্য একটি হাবের প্রয়োজন। এটি একটি Google নেস্ট ডিভাইস, যেমন নেস্ট হাব (২য় প্রজন্ম), যা ম্যাটারকে সমর্থন করে এবং যেটি থ্রেড-সক্ষম ডিভাইসগুলির জন্য বর্ডার রাউটার এবং স্মার্ট হোম ইন্টেন্ট রাউটিং করার জন্য একটি স্থানীয় পরিপূর্ণ পথ হিসাবে কাজ করবে।

কোন হাব ম্যাটারকে সমর্থন করে তা দেখতে এই তালিকাটি পড়ুন।

কমিশনিং প্রক্রিয়া শুরু করার আগে, নিশ্চিত হয়ে নিন যে:

  • আপনার হাব একই Google অ্যাকাউন্টের সাথে যুক্ত করা হয়েছে যেটি আপনি Google Home Console-এ সাইন ইন করতে ব্যবহার করেছিলেন।
  • আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য আপনি যে কম্পিউটারটি ব্যবহার করছেন আপনার হাব একই Wi-Fi নেটওয়ার্কে রয়েছে৷
  • আপনার হাব একই কাঠামোতে রয়েছে যা আপনি আপনার Google Home অ্যাপে ব্যবহার করছেন। ( গুগল হোম গ্রাফের "হাউস" আপনার কাঠামোর প্রতিনিধিত্ব করে)।

ডিভাইস পেয়ার করুন

আপনার ডিভাইস পেয়ার করতে ESP32 পেয়ারিং নির্দেশাবলী অনুসরণ করুন।

দ্রষ্টব্য : আপনি যদি একটি M5STACCK ব্যবহার করেন, তাহলে সচেতন থাকুন যে ফ্ল্যাশ হওয়ার পরে এর স্ক্রীনটি ফাঁকা থাকবে, তাই আপনাকে কনসোলে প্রদর্শিত URL ব্যবহার করে QR কোড দেখতে হবে৷ অথবা, আপনি পরিবর্তে ম্যানুয়াল পেয়ারিং কোড টাইপ করতে পারেন।

QR কোড 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. ডিভাইস নিয়ন্ত্রণ

আপনার ম্যাটার-কমপ্লায়েন্ট ডিভাইসটি সফলভাবে চালু হয়ে গেলে এবং Google Home অ্যাপে লাইট বাল্ব হিসেবে প্রদর্শিত হলে, আপনি Google অ্যাসিস্ট্যান্ট, Google Home অ্যাপ বা VS কোডের জন্য Google হোম এক্সটেনশনে Google অ্যাসিস্ট্যান্ট সিমুলেটর ব্যবহার করে ডিভাইসটিকে নিয়ন্ত্রণ করার চেষ্টা করতে পারেন।

গুগল সহকারী

ভয়েস কমান্ড থেকে ডিভাইসের অবস্থা টগল করতে আপনার ফোন বা হাবে Google অ্যাসিস্ট্যান্ট ব্যবহার করুন, যেমন "Hey Google, আমার লাইট টগল করুন"।

কমান্ডের আরও উদাহরণের জন্য Google Home অ্যাপে যোগ করা কন্ট্রোল স্মার্ট হোম ডিভাইসের ভয়েস কমান্ড সহ কন্ট্রোল স্মার্ট হোম ডিভাইস দেখুন।

গুগল হোম অ্যাপ

আপনি Google Home অ্যাপে দেখানো বাল্ব আইকনের পাশের অন এবং অফ লেবেলে ট্যাপ করতে পারেন।

আরও তথ্যের জন্য Google Home অ্যাপের মাধ্যমে কন্ট্রোল ডিভাইস দেখুন।

গুগল সহকারী সিমুলেটর

ভিএস কোডের জন্য Google হোম এক্সটেনশনে, Google সহকারী সিমুলেটর ব্যবহার করে, আপনি একটি চ্যাটের মতো ইন্টারফেস ব্যবহার করে আপনার ডিভাইসে উচ্চারণ জারি করতে পারেন।

8. অভিনন্দন!

আপনি সফলভাবে আপনার প্রথম ম্যাটার ডিভাইস তৈরি এবং কমিশন করেছেন৷ অসাধারন!

এই কোডল্যাবে আপনি শিখেছেন কিভাবে:

  • প্রয়োজনীয়তা থেকে একটি কাজের অবস্থা পর্যন্ত একটি ম্যাটার ডেভেলপমেন্ট এনভায়রনমেন্ট ইনস্টল করুন।
  • একটি ম্যাটার ডিভাইস তৈরি করুন এবং চালান।
  • Google Home থেকে আপনার ডিভাইস কমিশন ও নিয়ন্ত্রণ করুন।

ম্যাটার সম্পর্কে আরও জানতে, এই রেফারেন্সগুলি অন্বেষণ করুন: