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
5.5 KiB
93 lines
5.5 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "6754c915dae64ba70fcd5e52c37f3adf",
|
|
"translation_date": "2025-08-26T23:21:09+00:00",
|
|
"source_file": "1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md",
|
|
"language_code": "ur"
|
|
}
|
|
-->
|
|
# اپنی نائٹ لائٹ کو انٹرنیٹ کے ذریعے کنٹرول کریں - 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 کلائنٹ سرور سے پیغام وصول کرنے پر کال کرے گا۔
|
|
|
|
پیغام ایک غیر دستخط شدہ 8 بٹ انٹیجرز کی ارے کے طور پر وصول ہوتا ہے، اس لیے اسے ٹیکسٹ کے طور پر ٹریٹ کرنے کے لیے ایک کریکٹر ارے میں تبدیل کرنے کی ضرورت ہوتی ہے۔
|
|
|
|
پیغام ایک 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) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔ |