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.
IoT-For-Beginners/translations/ml/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md

86 lines
7.6 KiB

# ഇന്റർനെറ്റിൽ നിങ്ങളുടെ നൈറ്റ്‌ലൈറ്റ് നിയന്ത്രിക്കുക - Wio ടെർമിനൽ
പാഠത്തിന്റെ ഈ ഭാഗത്തിൽ, നിങ്ങൾ നിങ്ങളുടെ Wio ടെർമിനലിലേക്ക് MQTT ബ്രോക്കറിൽ നിന്ന് അയയ്ക്കുന്ന കമാൻഡുകൾ സബ്സ്ക്രൈബ് ചെയ്യും.
## കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യുക
അടുത്ത ഘട്ടം MQTT ബ്രോക്കറിൽ നിന്ന് അയക്കപ്പെടുന്ന കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യുകയും അവയ്ക്ക് പ്രതികരിക്കുകയും ചെയ്യുകയാണ്.
### ടാസ്ക്
കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യുക.
1. VS കോഡിൽ നൈറ്റ്‌ലൈറ്റ് പ്രോജക്ട് തുറക്കുക.
1. കമാൻഡുകളുടെ ടോപിക് നാമം നിർവചിക്കാൻ `config.h` ഫയലിന്റെ താഴ_ENDൽ പ്രവർത്തിക്കുക:
```cpp
const string SERVER_COMMAND_TOPIC = ID + "/commands";
```
`SERVER_COMMAND_TOPIC` എന്നത് ഡിവൈസ് കമാൻഡ്‌ ലഭിക്കാൻ സബ്സ്ക്രൈബ് ചെയ്യേണ്ട ടോപിക് ആണ്.
1. MQTT ക്ലയന്റ് വീണ്ടും കണക്ട് ചെയ്തപ്പോൾ കമാൻഡ് ടോപിക് için സബ്സ്ക്രൈബ് ചെയ്യുന്നതിനായി `reconnectMQTTClient` ഫംഗ്ഷന്റെ അവസാനം താഴെയുള്ള ലൈൻ ചേർക്കുക:
```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 ഇന്റജർകളുടെ ഒരു അറേ ആയി ലഭിക്കുന്നത് കൊണ്ട്, ടെക്സ്റ്റായ ബോധിപ്പിക്കാൻ ഇത് കേരക്റ്റർ അറേയിൽ മാറ്റേണ്ടതുണ്ട്.
സന്ദേശം JSON ഡോക്യുമെന്റ് അടങ്ങിയതാണ്, ArduinoJson ലൈബ്രറി ഉപയോഗിച്ച് ഡീകോഡ് ചെയ്യുന്നു. JSON ഡോക്യുമെന്റിലെ `led_on` പ്രോപ്പർട്ടി വായിച്ചുതുടർന്ന്, മൂല്യത്തിന് അനുസരിച്ച് LED ഓണോ ഓഫോ ചെയ്യും.
1. `createMQTTClient` ഫംഗ്ഷനിലേക്ക് താഴെയുള്ള കോഡ് ചേർക്കുക:
```cpp
client.setCallback(clientCallback);
```
MQTT ബ്രോക്കറിൽ നിന്ന് സന്ദേശം ലഭിക്കുമ്പോൾ വിളിക്കേണ്ട കോള്ബാക്കായി `clientCallback` സെറ്റ് ചെയ്യുന്നു.
> 💁 `clientCallback` ഹാൻ들ർ സബ്സ്ക്രൈബ് ചെയ്ത എല്ലാ ടോപിക്കുകൾക്കും വിളിക്കപ്പെടുന്നു. ഭാവിയിൽ നിങ്ങൾ ഒരേ സമയം പല ടോപിക്‌കൾ കേൾക്കുന്നതിനായി കോഡ് എഴുതുകയാണെങ്കിൽ, സന്ദേശം അയക്കപ്പെട്ട ടോപിക് `topic` പാരാമീറ്ററിൽ നിന്ന് ലഭിക്കും.
1. കോഡ് നിങ്ങളുടെ Wio ടെർമിനലിലേക്ക് അപ്‌ലോഡ് ചെയ്ത്, സീരിയൽ മോണിറ്റർ ഉപയോഗിച്ച് MQTT ബ്രോക്കറിൽ അയയ്ക്കുന്ന ലൈറ്റ് ലെവലുകൾ കാണുക.
1. നിങ്ങളുടെ ഫിസിക്കൽ അല്ലെങ്കിൽ വെർച്ച്വൽ ഡിവൈസ് കണ്ടെത്തുന്ന ലൈറ്റിന്റെ ലെവലുകൾ ക്രമീകരിക്കുക. സന്ദേശങ്ങൾ സ്വീകരിക്കുകയും കമാൻഡുകൾ ടെർമിനലിൽ കാണിക്കുകയും ചെയ്യും. ലൈറ്റ് ലെവലിന്റെ അടിസ്ഥാനത്തിൽ LED ഓണോ ഓഫോ ഉണ്ടാകുന്നത് കാണാം.
> 💁 ഈ കോഡ് [code-commands/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/wio-terminal) ഫോൾഡറിൽ കാണാം.
😀 നിങ്ങൾ വിജയകരമായി ഒരു MQTT ബ്രോക്കറിൽ നിന്നുള്ള കമാൻഡുകൾക്ക് പ്രതികരിക്കാൻ നിങ്ങളുടെ ഡിവൈസ് കോഡ് ചെയ്തു.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**വിമർശനം**:
ഈ ദસ્તാവേസ് AI വിവർത്തനസേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. നമുക്ക് ശരിയായി വിവർത്തനത്തിന് ശ്രമിച്ചിട്ടുണ്ടെങ്കിലും, സ്വയമേവ നടന്ന പരിഭാഷയിൽ തെറ്റുകളും അക്നിശ്ചിതത്വങ്ങളും ഉണ്ടാകാമെന്ന് ദയവായി ശ്രദ്ധിക്കുക. അതിന്റെ സവിശേഷ ഭാഷയിലുള്ള യഥാർത്ഥ ദസ്താവേസ് authoritative സ്രോതസ്സായി കണക്കാക്കണം. അനിവാര്യമായ വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനം ഉപയോഗിച്ച് ഉണ്ടായ ഏതെല്ലാമനീതിയും തെറ്റിദ്ധാരണകൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വം വഹിക്കാറില്ല.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->