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/km/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md

86 lines
6.8 KiB

# គ្រប់គ្រងភ្លើងភាគន្ធរបស់អ្នកតាមអ៊ីនធឺណិត - Wio Terminal
នៅផ្នែកនេះនៃមេរៀន អ្នកនឹងចុះឈ្មោះទទួលបញ្ចប់បញ្ជា ដែលផ្ញើពីអ្នកចែកចាយ MQTT មកកាន់ Wio Terminal របស់អ្នក។
## ចុះឈ្មោះទទួលបញ្ជា
ជំហានបន្ទាប់ គឺចុះឈ្មោះទទួលបញ្ជាដែលផ្ញើពីអ្នកចែកចាយ MQTT ហើយឆ្លើយតបពួកវា។
### ភារកិច្ច
ចុះឈ្មោះទទួលបញ្ជា។
1. បើកគំរោង nightlight នៅក្នុង VS Code។
1. បន្ថែមកូដខាងក្រោមទៅខាងក្រោមនៃឯកសារ `config.h` ដើម្បីកំណត់ឈ្មោះប្រធានបទសម្រាប់បញ្ជាៈ
```cpp
const string SERVER_COMMAND_TOPIC = ID + "/commands";
```
`SERVER_COMMAND_TOPIC` គឺជាប្រធានបទដែលឧបករណ៍នឹងចុះឈ្មោះទទួលសម្រាប់ទទួលបញ្ជា LED។
1. បន្ថែមខ្សែបន្ទាត់ខាងក្រោមទៅចុងរបស់ម៉ូឌុល​`reconnectMQTTClient` ដើម្បីចុះឈ្មោះប្រធានបទបញ្ជា នៅពេលដែល MQTT client ផ្ដើមភ្ជាប់ឡើងវិញ៖
```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 client នឹងហៅនៅពេលដែលវាទទួលបានសារ​ពីម៉ាស៊ីនបម្រើ។
សារ​មាន​ទ្រង់ទ្រាយ​ជា​អារេ​នៃ​ចំនួន​ពិត​មិនអត្ថលេខ ៨-ប៊ីត ដូច្នេះត្រូវបម្លែងទៅជាអារេតួអក្សរដើម្បីដំណើរការ​ជា​អត្ថបទ។
សារនេះមានឯកសារ JSON ហើយត្រូវបានបកស្រាយដោយប្រើបណ្ណាល័យ ArduinoJson។ គុណលក្ខណៈ `led_on` នៃឯកសារ JSON ត្រូវបានអាន ហើយអាស្រ័យលើតម្លៃ ទឹកដៃ LED នឹងបើកឬបិទ។
1. បន្ថែមកូដខាងក្រោមទៅម៉ូឌុល `createMQTTClient`
```cpp
client.setCallback(clientCallback);
```
កូដនេះកំណត់ `clientCallback` ជាការហៅត្រឡប់ដែលត្រូវហៅពេលសារមកពីអ្នកចែកចាយ MQTT ។
> 💁 កម្មវិធី `clientCallback` នេះត្រូវហៅសម្រាប់ប្រធានបទទាំងអស់ដែលបានចុះឈ្មោះ។ ប្រសិនបើអ្នកបន្ថែមកូដនៅពេលក្រោយដែលស្តាប់ប្រធានបទច្រើន អ្នកអាចទទួលបានប្រធានបទដែលសារត្រូវបានផ្ញើទៅ ពីប៉ារ៉ាម៉ែត្រ `topic` ដែលផ្ញើទៅមុខងារហៅត្រឡប់។
1. ផ្ទុកកូដទៅ Wio Terminal របស់អ្នក ហើយប្រើកម្មវិធី Serial Monitor ដើម្បីមើលកម្រិតពន្លឺដែលផ្ញើទៅ MQTT broker ។
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)។ ទោះយើងខិតខំក្នុងការបន្តអោយមានភាពត្រឹមត្រូវ ក៏ដោយ សូមអញ្ជើញយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានគេយកជាឯកសារមូលដ្ឋានដែលមានអំណាចខ្ពស់បំផុត។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ ការបកប្រែដោយមនុស្សដែលមានជំនាញគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->