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

১. ভূমিকা

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

আপনি যা শিখবেন

  • কীভাবে একটি ভৌত ​​ডিভাইসকে ম্যাটারের সাথে সংযুক্ত করা যায়।
  • গুগল হোমের সাহায্যে কীভাবে আপনার ম্যাটার ডিভাইসটি চালু ও নিয়ন্ত্রণ করবেন।

আপনার যা যা লাগবে

২. আপনার পরিবেশ প্রস্তুত করুন

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

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

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

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

এই কোডল্যাবের জন্য আপনি যে গুগল অ্যাকাউন্টটি ব্যবহার করতে চান, সেটি দিয়েই আপনার হাবটি সেট আপ করুন।

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

পূর্বশর্ত

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

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

যেসব প্রয়োজনীয় লিনাক্স প্যাকেজ বাইনারি আগে থেকে ইনস্টল করা নাও থাকতে পারে, সেগুলো ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

$ 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

এসডিকে সেট আপ করুন

এই কোডল্যাবটি চালিয়ে যাওয়ার জন্য আপনার Espressif SDK (Espressif IoT Development Framework বা '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 ~/
    

ম্যাটার এসডিকে সেট আপ করুন

  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
    

৩. গুগল হোম ডেভেলপার কনসোল

গুগল হোম ডেভেলপার কনসোল হলো একটি ওয়েব অ্যাপ্লিকেশন, যেখান থেকে আপনি গুগল হোমের সাথে আপনার ম্যাটার ইন্টিগ্রেশনগুলো পরিচালনা করতে পারেন।

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

একটি ডেভেলপার প্রজেক্ট তৈরি করুন

প্রথমে গুগল হোম ডেভেলপার কনসোলে যান:

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

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

Matter-এর সমস্ত উদাহরণ গিটহাব রিপোজিটরির examples ফোল্ডারে রাখা আছে। এখানে বেশ কিছু নমুনা পাওয়া যায়, কিন্তু এই কোডল্যাবে আমাদের মূল লক্ষ্য হলো lighting-app

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

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

  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 আপনার অ্যালায়েন্স-প্রদত্ত ভিআইডি, অথবা একটি পরীক্ষামূলক ভিআইডি-তে সেট করুন।
    8. Google Home ডেভেলপার কনসোলে Matter ইন্টিগ্রেশনে আপনি যে PID সেট করেছেন, সেটিই Product ID হিসেবে সেট করুন।
    9. সংরক্ষণ করতে S চাপুন।
    10. কনফিগারেশনটি যে ডিফল্ট পাথে সেভ করা হবে, তা গ্রহণ করতে রিটার্ন চাপুন।
    11. সংরক্ষণ নিশ্চিতকরণ ডায়ালগটি বন্ধ করতে রিটার্ন চাপুন।
    12. কনফিগারেশন ইউটিলিটি থেকে প্রস্থান করতে Q চাপুন।

বিল্ডটি চালান

বিল্ড স্ক্রিপ্টটি চালু করুন:

idf.py build

বিল্ডটি কোনো ত্রুটি ছাড়াই সম্পন্ন হওয়া উচিত।

ডিভাইসটি প্রোগ্রাম করুন

  1. একটি ইউএসবি ক্যাবল ব্যবহার করে আপনার ডেভেলপার বোর্ডটি কম্পিউটারের সাথে সংযুক্ত করুন।
  2. ডিভাইস থেকে পূর্ববর্তী যেকোনো ফার্মওয়্যার মুছে ফেলুন (যদি আপনার কম্পিউটারের সাথে কেবল একটি ডেভেলপার বোর্ড সংযুক্ত থাকে, তাহলে আপনি -p {device} অপশনটি বাদ দিতে পারেন - ডিভাইসটি স্বয়ংক্রিয়ভাবে শনাক্ত হয়ে যাবে):
    idf.py -p {device} erase-flash
    
  3. আপনার নতুন অ্যাপ্লিকেশনটি ডেভেলপার বোর্ডে কপি করুন:
    idf.py -p {device} flash
    

ফ্ল্যাশিং অপশনগুলো সম্পর্কে আরও তথ্য Espressif esptool.py ডকুমেন্টেশন পেজে পাওয়া যেতে পারে।

৫. ডিভাইসটির সাথে সংযোগ করুন

  1. একটি টার্মিনাল উইন্ডো খুলুন।
  2. আপনি কোন ডিরেক্টরিতে আছেন তা লিখে রাখুন, তারপর GNU screen ব্যবহার করে আপনার নতুন Matter ডিভাইসে সংযোগ করুন।
    $ screen -L {device} 115200
    
  3. যদি আপনি একটি খালি কনসোল দেখতে পান, তাহলে ডিভাইস বুট প্রক্রিয়া শুরু করতে RESET বোতামটি চাপুন।

৬. ডিভাইসটি চালু করুন

দ্রষ্টব্য : এই ধাপটি কেবল তখনই সফল হবে, যদি আপনি ইতিমধ্যেই গুগল হোম ডেভেলপার কনসোলে আপনার প্রজেক্টটি সেট আপ করে থাকেন।

নেস্ট হাব

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

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

কমিশনিং প্রক্রিয়া শুরু করার আগে, নিম্নলিখিত বিষয়গুলো নিশ্চিত করার জন্য পরীক্ষা করুন:

  • আপনার হাবটি সেই একই গুগল অ্যাকাউন্টের সাথে যুক্ত করা আছে, যা আপনি গুগল হোম কনসোলে সাইন ইন করতে ব্যবহার করেছেন।
  • আপনার হাবটি সেই একই ওয়াই-ফাই নেটওয়ার্কে রয়েছে, যেটিতে আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য ব্যবহৃত কম্পিউটারটি সংযুক্ত আছে।
  • আপনার হাবটি সেই একই কাঠামোতে রয়েছে যা আপনি আপনার গুগল হোম অ্যাপে ব্যবহার করছেন। ( গুগল হোম গ্রাফের 'বাড়ি'টি আপনার কাঠামোকে নির্দেশ করে)।

ডিভাইসটি জোড়া দিন

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

দ্রষ্টব্য : আপনি যদি একটি M5STACK ব্যবহার করেন, তবে মনে রাখবেন যে ফ্ল্যাশ করার পর এর স্ক্রিনটি ফাঁকা থাকবে, তাই আপনাকে কনসোলে প্রদর্শিত 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]]

সমস্যা সমাধান

কমিশনিং ব্যর্থ হয়

আরও সমস্যা সমাধানের পরামর্শের জন্য, ম্যাটার ট্রাবলশুটিং পৃষ্ঠাটি দেখুন।

৭. ডিভাইসটি নিয়ন্ত্রণ করুন

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

গুগল অ্যাসিস্ট্যান্ট

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

কমান্ডের আরও উদাহরণের জন্য, গুগল হোম অ্যাপে যুক্ত হওয়া ‘ স্মার্ট হোম ডিভাইস নিয়ন্ত্রণ’ অংশের ‘ভয়েস কমান্ডের মাধ্যমে স্মার্ট হোম ডিভাইস নিয়ন্ত্রণ’ বিভাগটি দেখুন।

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

আপনি গুগল হোম অ্যাপে দেখানো বাল্ব আইকনের পাশে থাকা অন এবং অফ লেবেলগুলোতে ট্যাপ করতে পারেন।

আরও তথ্যের জন্য গুগল হোম অ্যাপের মাধ্যমে ডিভাইস নিয়ন্ত্রণ দেখুন।

গুগল অ্যাসিস্ট্যান্ট সিমুলেটর

ভিএস কোডের গুগল হোম এক্সটেনশনে, গুগল অ্যাসিস্ট্যান্ট সিমুলেটর ব্যবহার করে আপনি একটি চ্যাট-সদৃশ ইন্টারফেসের মাধ্যমে আপনার ডিভাইসে নির্দেশ পাঠাতে পারেন।

৮. অভিনন্দন!

আপনি সফলভাবে আপনার প্রথম ম্যাটার ডিভাইসটি তৈরি ও চালু করেছেন। চমৎকার!

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

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

পদার্থ সম্পর্কে আরও জানতে, এই তথ্যসূত্রগুলি দেখুন: