1. ভূমিকা
ম্যাটার হল একটি কানেক্টিভিটি প্রোটোকল যা স্মার্ট ডিভাইসের উন্নয়নের জন্য আকর্ষণীয় সুযোগ নিয়ে আসে। এই কোডল্যাবে, আপনি আপনার প্রথম ম্যাটার ডিভাইস তৈরি করবেন। ম্যাটার সম্পর্কে জানতে, গুগল হোম ডেভেলপার সেন্টার: ম্যাটার অথবা কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স ওয়েবসাইটটি দেখুন।
তুমি কি শিখবে
- কিভাবে একটি ভৌত ডিভাইসকে ম্যাটারের সাথে একীভূত করবেন।
- গুগল হোম দিয়ে আপনার ম্যাটার ডিভাইসটি কীভাবে কমিশন এবং নিয়ন্ত্রণ করবেন।
তোমার যা লাগবে
- একটি হাব, যা যেকোনো Google Nest ডিভাইস যা Matter সমর্থন করে , যেমন Nest Hub (দ্বিতীয় প্রজন্ম)।
- হয় একটি Espressif Systems ESP32-DevkitC অথবা ESP32 M5STACK ম্যাটার মূল্যায়ন বোর্ড।
- লিনাক্স চালিত একটি পিসি।
- লিনাক্সের প্রাথমিক জ্ঞান।
2. আপনার পরিবেশ সেট আপ করুন
সিরিয়াল ডিভাইসটি সনাক্ত করুন
আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার প্রথম ধাপ হল আপনার ডিভাইসটি কোন সিরিয়াল পোর্টের সাথে সংযুক্ত তা নির্ধারণ করা। এই তথ্য আপনাকে প্রোগ্রাম করতে এবং আপনার ডেভেলপার বোর্ডের সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করবে।
- একটি USB কেবল ব্যবহার করে আপনার কম্পিউটারে ডেভেলপার বোর্ডটি সংযুক্ত করুন।
- ডেভেলপার বোর্ড ডিভাইসটি খুঁজে পেতে
/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
SDK সেট আপ করুন
এই কোডল্যাবটি চালিয়ে যেতে, আপনার Espressif SDK (Espressif IoT ডেভেলপমেন্ট ফ্রেমওয়ার্ক বা 'ESP-IDF') প্রয়োজন হবে।
- ESP-IDF ধারণ করার জন্য একটি ডিরেক্টরি তৈরি করুন:
$ mkdir ~/esp-idf_tools
- GitHub থেকে ESP-IDF এই ডিরেক্টরিতে ক্লোন করুন:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- টুলচেইন ইনস্টলেশন সম্পূর্ণ করুন:
$ cd ./esp-idf $ ./install.sh $ cd ~/
ম্যাটার SDK সেট আপ করুন
- ওপেন সোর্স ম্যাটার রিপোজিটরি ক্লোন করুন:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- রিপোজিটরি সাবমডিউলগুলি আনুন:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- ম্যাটার ডেভেলপমেন্ট এনভায়রনমেন্ট বুটস্ট্র্যাপ করুন:
$ source ./scripts/bootstrap.sh
৩. গুগল হোম ডেভেলপার কনসোল
গুগল হোম ডেভেলপার কনসোল হল এমন একটি ওয়েব অ্যাপ্লিকেশন যেখানে আপনি গুগল হোমের সাথে আপনার ম্যাটার ইন্টিগ্রেশন পরিচালনা করেন।
কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স (অ্যালায়েন্স) ম্যাটার সার্টিফিকেশন পাস করেছে এমন যেকোনো ম্যাটার ডিভাইস গুগল হোম ইকোসিস্টেমে কাজ করে। যেসব ডিভাইসের উন্নয়ন চলছে এবং সার্টিফিকেশন হয়নি, সেগুলো নির্দিষ্ট শর্তে গুগল হোম ইকোসিস্টেমে কমিশন করা যেতে পারে - আরও তথ্যের জন্য পেয়ারিং সীমাবদ্ধতা দেখুন।
একটি ডেভেলপার প্রকল্প তৈরি করুন
গুগল হোম ডেভেলপার কনসোলে গিয়ে শুরু করুন:
- প্রকল্প তৈরি করুন ক্লিক করুন।
- একটি অনন্য প্রকল্পের নাম লিখুন এবং তারপর প্রকল্প তৈরি করুন ক্লিক করুন।

- + Add integration এ ক্লিক করুন, যা আপনাকে Matter রিসোর্স স্ক্রিনে নিয়ে যাবে, যেখানে আপনি Matter ডেভেলপমেন্ট ডকুমেন্টেশন দেখতে পারবেন এবং কিছু টুল সম্পর্কে পড়তে পারবেন।
- যখন আপনি চালিয়ে যাওয়ার জন্য প্রস্তুত হবেন, তখন Next: Develop এ ক্লিক করুন, যা Matter চেকলিস্ট পৃষ্ঠাটি প্রদর্শন করে।
- পরবর্তী ক্লিক করুন: সেটআপ
- সেটআপ পৃষ্ঠায়, আপনার পণ্যের নাম লিখুন।
- ডিভাইসের ধরণ নির্বাচন করুন এ ক্লিক করুন এবং ড্রপ-ডাউন মেনু থেকে ডিভাইসের ধরণ নির্বাচন করুন (এই ক্ষেত্রে,
Light)। - ভেন্ডর আইডি (VID) তে, Test VID নির্বাচন করুন, এবং Test VID ড্রপ-ডাউন মেনু থেকে 0xFFF1 নির্বাচন করুন। Product ID (PID) তে, 0x8000 লিখুন এবং Save & continue এ ক্লিক করুন, এবং তারপর পরবর্তী পৃষ্ঠায় Save এ ক্লিক করুন। এই সঠিক VID/PID মানগুলি ব্যবহার করুন, পরবর্তী কোডল্যাব পদক্ষেপগুলি তাদের উপর নির্ভর করে।

- এখন আপনি Matter integrations এর অধীনে আপনার ইন্টিগ্রেশন দেখতে পাবেন।
- আপনার হাবটি যাতে সাম্প্রতিকতম ম্যাটার ইন্টিগ্রেশন প্রজেক্ট কনফিগারেশন পায় তা নিশ্চিত করতে এটি পুনরায় বুট করুন। যদি আপনাকে পরে VID বা PID পরিবর্তন করতে হয়, তাহলে পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে প্রকল্পটি সংরক্ষণ করার পরে পুনরায় বুট করতে হবে। ধাপে ধাপে রিবুট নির্দেশাবলীর জন্য Google Nest বা Google Wifi ডিভাইসগুলি পুনরায় চালু করুন দেখুন।
৪. ডিভাইসটি তৈরি করুন
ম্যাটারের সমস্ত উদাহরণ Github রিপোজিটরির examples ফোল্ডারে রাখা হয়েছে। বেশ কিছু নমুনা পাওয়া যায়, কিন্তু এই কোডল্যাবে আমাদের ফোকাস lighting-app এর উপর।
এই উদাহরণটি একটি সাধারণ ডিভাইস যা গুগল হোমে একটি অন/অফ লাইট হিসেবে দেখা যায়, যা অন এবং অফ কমান্ডের প্রতি সাড়া দেয়। এটিকে একটি প্রকৃত বৈদ্যুতিক আলো নিয়ন্ত্রণ করা এই কোডল্যাবের আওতার বাইরে।
বিল্ড কনফিগার করুন
- ম্যাটার SDK কনফিগার করুন এবং ম্যাটার বিল্ড এনভায়রনমেন্ট সক্রিয় করুন:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Ccache সক্ষম করুন, যা বিল্ড প্রক্রিয়াকে ত্বরান্বিত করে:
$ export IDF_CCACHE_ENABLE=1
-
lighting-appESP32 বিল্ড ডিরেক্টরিতে যান এবং লক্ষ্য আর্কিটেকচার সেট করুন:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- কনফিগারেশন ইউটিলিটি চালান:
$ idf.py menuconfig
-
Demo -> Device Typeনির্বাচন করুন এবংDevice TypeESP32-DevKitCতে সেট করুন। - শীর্ষ স্তরের মেনুতে ফিরে যেতে বাম তীর কী টিপুন।
-
Component config --->নির্বাচন করুন। -
CHIP Device Layer --->নির্বাচন করুন। -
Device Identification Options --->নির্বাচন করুন। - আপনার অ্যালায়েন্স-নির্ধারিত ভিআইডি, অথবা একটি পরীক্ষামূলক ভিআইডিতে
Vendor IDসেট করুন। - গুগল হোম ডেভেলপার কনসোলে ম্যাটার ইন্টিগ্রেশনে আপনি যে পিআইডি সেট করেছেন তাতে
Product IDসেট করুন। - সংরক্ষণ করতে S টিপুন।
- কনফিগারেশনটি যেখানে সংরক্ষণ করা হবে সেই ডিফল্ট পথটি গ্রহণ করতে Return টিপুন।
- সংরক্ষণ নিশ্চিতকরণ ডায়ালগটি খারিজ করতে "প্রত্যাবর্তন" টিপুন।
- কনফিগারেশন ইউটিলিটি থেকে বেরিয়ে আসতে Q টিপুন।
- কনফিগারেশন ইউটিলিটি চালান:
বিল্ডটি চালান
বিল্ড স্ক্রিপ্টটি আহ্বান করুন:
idf.py build
বিল্ডটি কোনও ত্রুটি ছাড়াই সম্পন্ন হওয়া উচিত।
ডিভাইসটি প্রোগ্রাম করুন
- একটি USB কেবল ব্যবহার করে আপনার কম্পিউটারের সাথে আপনার ডেভেলপার বোর্ড সংযুক্ত করুন।
- ডিভাইসের আগের যেকোনো ফার্মওয়্যার মুছে ফেলুন (যদি আপনার কম্পিউটারের সাথে শুধুমাত্র একটি ডেভেলপার বোর্ড সংযুক্ত থাকে, তাহলে আপনি
-p {device}বিকল্পটি বন্ধ করে দিতে পারেন - ডিভাইসটি স্বয়ংক্রিয়ভাবে সনাক্ত করা উচিত):idf.py -p {device} erase-flash - আপনার নতুন অ্যাপ্লিকেশনটি ডেভেলপার বোর্ডে কপি করুন:
idf.py -p {device} flash
ফ্ল্যাশিং অপশন সম্পর্কে আরও তথ্য Espressif esptool.py ডকুমেন্টেশন পৃষ্ঠায় পাওয়া যেতে পারে।
৫. ডিভাইসের সাথে সংযোগ করুন
- একটি টার্মিনাল উইন্ডো খুলুন।
- আপনি কোন ডিরেক্টরিতে আছেন তা নোট করুন, তারপর GNU
screenব্যবহার করে আপনার নতুন Matter ডিভাইসের সাথে সংযোগ করুন:$ screen -L {device} 115200 - যদি আপনি একটি ফাঁকা কনসোল দেখতে পান, তাহলে ডিভাইস বুট প্রক্রিয়া শুরু করতে RESET বোতাম টিপুন।
৬. ডিভাইসটি চালু করুন
দ্রষ্টব্য : এই ধাপটি কেবল তখনই সফল হবে যদি আপনি ইতিমধ্যেই Google Home Developer Console-এ আপনার প্রকল্প সেট আপ করে থাকেন।
নেস্ট হাব
ম্যাটার ফ্যাব্রিকে আপনার ডিভাইসটি চালু করার জন্য একটি হাব প্রয়োজন। এটি একটি গুগল নেস্ট ডিভাইস, যেমন নেস্ট হাব (দ্বিতীয় প্রজন্ম), যা ম্যাটারকে সমর্থন করে এবং এটি থ্রেড-সক্ষম ডিভাইসগুলির জন্য বর্ডার রাউটার এবং স্মার্ট হোমের উদ্দেশ্যগুলি রাউটিং করার জন্য স্থানীয় পরিপূর্ণতা পথ উভয়ই হিসাবে কাজ করবে।
কোন হাবগুলি ম্যাটারকে সমর্থন করে তা দেখতে এই তালিকাটি দেখুন।
কমিশনিং প্রক্রিয়া শুরু করার আগে, নিশ্চিত করুন যে:
- আপনার হাবটি Google Home Console-এ সাইন ইন করার জন্য যে Google অ্যাকাউন্ট ব্যবহার করেছিলেন তার সাথেই যুক্ত।
- আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য আপনি যে কম্পিউটারটি ব্যবহার করছেন তার সাথে আপনার হাবটি একই Wi-Fi নেটওয়ার্কে রয়েছে।
- আপনার হাবটি আপনার গুগল হোম অ্যাপে যে কাঠামো ব্যবহার করছেন সেই কাঠামোতেই রয়েছে। ( গুগল হোম গ্রাফের "ঘর" আপনার কাঠামোর প্রতিনিধিত্ব করে)।
ডিভাইসটি পেয়ার করুন
আপনার ডিভাইসটি পেয়ার করতে 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]]
সমস্যা সমাধান
কমিশনিং ব্যর্থ হয়
- নিশ্চিত করুন যে আপনি গুগল হোম কনসোলে সঠিক ভিআইডি/পিআইডি সংমিশ্রণ ব্যবহার করে একটি প্রকল্প তৈরি করেছেন ।
- বিল্ড কনফিগারেশনে আপনি সঠিক VID এবং PID প্রবেশ করেছেন কিনা তা নিশ্চিত করুন।
- বিল্ড কনফিগারেশনে আপনি সঠিক
Device Typeনির্বাচন করেছেন কিনা তা নিশ্চিত করুন।
আরও সমস্যা সমাধানের টিপসের জন্য, ম্যাটার ট্রাবলশুটিং পৃষ্ঠাটি দেখুন।
৭. ডিভাইসটি নিয়ন্ত্রণ করুন
একবার আপনার ম্যাটার-কমপ্লায়েন্ট ডিভাইসটি সফলভাবে চালু হয়ে গেলে এবং গুগল হোম অ্যাপে একটি লাইট বাল্ব হিসেবে উপস্থিত হলে, আপনি গুগল অ্যাসিস্ট্যান্ট, গুগল হোম অ্যাপ, অথবা ভিএস কোডের জন্য গুগল হোম এক্সটেনশনে গুগল অ্যাসিস্ট্যান্ট সিমুলেটর ব্যবহার করে ডিভাইসটি নিয়ন্ত্রণ করার চেষ্টা করতে পারেন।
গুগল সহকারী
"হে গুগল, আমার লাইট টগল করো" বলার মতো ভয়েস কমান্ড ব্যবহার করে ডিভাইসের অবস্থা টগল করতে আপনার ফোন বা হাবে গুগল অ্যাসিস্ট্যান্ট ব্যবহার করুন।
আরও কমান্ডের উদাহরণের জন্য Google Home অ্যাপে যোগ করা "কন্ট্রোল স্মার্ট হোম ডিভাইস" এর "ভয়েস কমান্ড সহ স্মার্ট হোম ডিভাইস নিয়ন্ত্রণ করুন" বিভাগটি দেখুন।
গুগল হোম অ্যাপ
আপনি গুগল হোম অ্যাপে দেখানো বাল্ব আইকনের পাশে থাকা চালু এবং বন্ধ লেবেলগুলিতে ট্যাপ করতে পারেন।
আরও তথ্যের জন্য Google Home অ্যাপ দিয়ে ডিভাইস নিয়ন্ত্রণ করুন দেখুন।
গুগল অ্যাসিস্ট্যান্ট সিমুলেটর
ভিএস কোডের জন্য গুগল হোম এক্সটেনশনে, গুগল অ্যাসিস্ট্যান্ট সিমুলেটর ব্যবহার করে, আপনি চ্যাট-সদৃশ ইন্টারফেস ব্যবহার করে আপনার ডিভাইসে উচ্চারণ জারি করতে পারেন।
৮. অভিনন্দন!
তুমি তোমার প্রথম ম্যাটার ডিভাইসটি সফলভাবে তৈরি এবং চালু করেছ। অসাধারণ!
এই কোডল্যাবে আপনি শিখেছেন কিভাবে:
- প্রয়োজনীয়তা থেকে কার্যকরী অবস্থায় একটি ম্যাটার ডেভেলপমেন্ট পরিবেশ ইনস্টল করুন।
- একটি ম্যাটার ডিভাইস তৈরি করুন এবং চালান।
- গুগল হোম থেকে আপনার ডিভাইসটি কমিশন এবং নিয়ন্ত্রণ করুন।
ম্যাটার সম্পর্কে আরও জানতে, এই রেফারেন্সগুলি অন্বেষণ করুন:
- গুগল হোমের ম্যাটার প্রাইমার , যেখানে আপনি ম্যাটার প্রোটোকলের গুরুত্বপূর্ণ ধারণা এবং নীতিগুলি শিখবেন।
- কানেক্টেড স্ট্যান্ডার্ড অ্যালায়েন্স দ্বারা প্রকাশিত ম্যাটার স্পেসিফিকেশন, ম্যাটার ডিভাইস লাইব্রেরি এবং ম্যাটার অ্যাপ্লিকেশন ক্লাস্টার লাইব্রেরি।
- ম্যাটার গিটহাব রিপোজিটরি ।