You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
7.3 KiB
93 lines
7.3 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "6754c915dae64ba70fcd5e52c37f3adf",
|
|
"translation_date": "2025-08-27T12:35:03+00:00",
|
|
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md",
|
|
"language_code": "bn"
|
|
}
|
|
-->
|
|
# ইন্টারনেটের মাধ্যমে আপনার নাইটলাইট নিয়ন্ত্রণ করুন - Wio Terminal
|
|
|
|
এই পাঠের এই অংশে, আপনি MQTT ব্রোকার থেকে পাঠানো কমান্ডগুলিতে সাবস্ক্রাইব করবেন এবং সেগুলো আপনার Wio Terminal-এ গ্রহণ করবেন।
|
|
|
|
## কমান্ডে সাবস্ক্রাইব করুন
|
|
|
|
পরবর্তী ধাপ হলো MQTT ব্রোকার থেকে পাঠানো কমান্ডগুলিতে সাবস্ক্রাইব করা এবং সেগুলোর প্রতিক্রিয়া জানানো।
|
|
|
|
### কাজ
|
|
|
|
কমান্ডে সাবস্ক্রাইব করুন।
|
|
|
|
1. VS Code-এ নাইটলাইট প্রকল্পটি খুলুন।
|
|
|
|
1. `config.h` ফাইলের নিচে নিম্নলিখিত কোড যোগ করুন, যা কমান্ডের জন্য টপিক নাম নির্ধারণ করবে:
|
|
|
|
```cpp
|
|
const string SERVER_COMMAND_TOPIC = ID + "/commands";
|
|
```
|
|
|
|
`SERVER_COMMAND_TOPIC` হলো সেই টপিক যেখানে ডিভাইসটি LED কমান্ড গ্রহণ করার জন্য সাবস্ক্রাইব করবে।
|
|
|
|
1. `reconnectMQTTClient` ফাংশনের শেষে নিম্নলিখিত লাইনটি যোগ করুন, যাতে MQTT ক্লায়েন্ট পুনরায় সংযুক্ত হলে কমান্ড টপিকে সাবস্ক্রাইব করা যায়:
|
|
|
|
```cpp
|
|
client.subscribe(SERVER_COMMAND_TOPIC.c_str());
|
|
```
|
|
|
|
1. `reconnectMQTTClient` ফাংশনের নিচে নিম্নলিখিত কোড যোগ করুন:
|
|
|
|
```cpp
|
|
void clientCallback(char *topic, uint8_t *payload, unsigned int length)
|
|
{
|
|
char buff[length + 1];
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
buff[i] = (char)payload[i];
|
|
}
|
|
buff[length] = '\0';
|
|
|
|
Serial.print("Message received:");
|
|
Serial.println(buff);
|
|
|
|
DynamicJsonDocument doc(1024);
|
|
deserializeJson(doc, buff);
|
|
JsonObject obj = doc.as<JsonObject>();
|
|
|
|
bool led_on = obj["led_on"];
|
|
|
|
if (led_on)
|
|
digitalWrite(D0, HIGH);
|
|
else
|
|
digitalWrite(D0, LOW);
|
|
}
|
|
```
|
|
|
|
এই ফাংশনটি হবে সেই কলব্যাক যা MQTT ক্লায়েন্ট সার্ভার থেকে কোনো বার্তা গ্রহণ করলে কল করবে।
|
|
|
|
বার্তাটি একটি unsigned 8-bit integer এর অ্যারের আকারে গ্রহণ করা হয়, তাই এটিকে টেক্সট হিসেবে ব্যবহার করার জন্য একটি character array-এ রূপান্তর করতে হবে।
|
|
|
|
বার্তাটি একটি JSON ডকুমেন্ট ধারণ করে এবং এটি ArduinoJson লাইব্রেরি ব্যবহার করে ডিকোড করা হয়। JSON ডকুমেন্টের `led_on` প্রপার্টি পড়া হয় এবং তার মান অনুযায়ী LED চালু বা বন্ধ করা হয়।
|
|
|
|
1. `createMQTTClient` ফাংশনে নিম্নলিখিত কোড যোগ করুন:
|
|
|
|
```cpp
|
|
client.setCallback(clientCallback);
|
|
```
|
|
|
|
এই কোডটি `clientCallback`-কে কলব্যাক হিসেবে সেট করে, যা MQTT ব্রোকার থেকে বার্তা গ্রহণ করলে কল করা হবে।
|
|
|
|
> 💁 `clientCallback` হ্যান্ডলারটি সমস্ত টপিকের জন্য কল করা হয় যা সাবস্ক্রাইব করা হয়েছে। যদি আপনি পরে এমন কোড লিখেন যা একাধিক টপিকের জন্য শোনে, তাহলে বার্তাটি কোন টপিকে পাঠানো হয়েছে তা `topic` প্যারামিটার থেকে জানা যাবে যা কলব্যাক ফাংশনে পাঠানো হয়।
|
|
|
|
1. কোডটি আপনার Wio Terminal-এ আপলোড করুন এবং সিরিয়াল মনিটর ব্যবহার করে দেখুন কীভাবে আলো স্তরগুলি MQTT ব্রোকারে পাঠানো হচ্ছে।
|
|
|
|
1. আপনার বাস্তব বা ভার্চুয়াল ডিভাইসের আলো স্তর সামঞ্জস্য করুন। আপনি টার্মিনালে বার্তা গ্রহণ এবং কমান্ড পাঠানোর প্রক্রিয়া দেখতে পাবেন। আলো স্তরের উপর নির্ভর করে LED চালু বা বন্ধ হওয়া দেখতে পাবেন।
|
|
|
|
> 💁 আপনি এই কোডটি [code-commands/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/wio-terminal) ফোল্ডারে খুঁজে পেতে পারেন।
|
|
|
|
😀 আপনি সফলভাবে আপনার ডিভাইসটি MQTT ব্রোকার থেকে পাঠানো কমান্ডগুলোর প্রতিক্রিয়া জানাতে কোড করেছেন।
|
|
|
|
---
|
|
|
|
**অস্বীকৃতি**:
|
|
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। |