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.
60 lines
6.1 KiB
60 lines
6.1 KiB
# គ្រប់គ្រងពន្លឺយប់របស់អ្នកតាមអ៊ីនធឺរណិត - ឧបករណ៍ IoT វិចិត្រសន៍ និង Raspberry Pi
|
|
|
|
ក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងជាវសម្រាប់បញ្ជា ដែលផ្ញើពីម៉ាស៊ីនបម្រើ MQTT ទៅកាន់ Raspberry Pi របស់អ្នកឬឧបករណ៍ IoT វិចិត្រសន៍។
|
|
|
|
## ជាវបញ្ជា
|
|
|
|
ជំហានបន្ទាប់គឺជាវបញ្ជាដែលផ្ញើពីម៉ាស៊ីនបម្រើ MQTT ហើយឆ្លើយតបទៅពួកវា។
|
|
|
|
### ភារកិច្ច
|
|
|
|
ជាវបញ្ជា។
|
|
|
|
1. បើកគម្រោង nightlight នៅក្នុង VS Code។
|
|
|
|
1. ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ IoT វិចិត្រសន៍ សូមធានាថា terminal កំពុងដំណើរការបរិវេណវិជ្ជមាន។ ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi អ្នកមិនចង់ប្រើបរិវេណវិជ្ជមានទេ។
|
|
|
|
1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីការកំណត់ `client_telemetry_topic`៖
|
|
|
|
```python
|
|
server_command_topic = id + '/commands'
|
|
```
|
|
|
|
`server_command_topic` គឺជាប្រធាន MQTT ដែលឧបករណ៍នឹងជាវដើម្បីទទួលបញ្ជា LED។
|
|
|
|
1. បន្ថែមកូដខាងក្រោមក្រោមស្នោតោមចម្បង ក្រោយបន្ទាត់ `mqtt_client.loop_start()`៖
|
|
|
|
```python
|
|
def handle_command(client, userdata, message):
|
|
payload = json.loads(message.payload.decode())
|
|
print("Message received:", payload)
|
|
|
|
if payload['led_on']:
|
|
led.on()
|
|
else:
|
|
led.off()
|
|
|
|
mqtt_client.subscribe(server_command_topic)
|
|
mqtt_client.on_message = handle_command
|
|
```
|
|
|
|
កូដនេះកំណត់មុខងារ `handle_command` ដែលអានសារ ជាឯកសារ JSON ហើយស្វែងរកតម្លៃគុណលក្ខណៈ `led_on`។ ប្រសិនបើវាត្រូវបានកំណត់ជា `True` LED នឹងបើក បើមិនដូច្នោះវានឹងបិទ។
|
|
|
|
អតិថិជន MQTT ជាវលើប្រធាន ដែលម៉ាស៊ីនបម្រើនឹងផ្ញើសារ ហើយកំណត់មុខងារ `handle_command` ដើម្បីហៅពេលមានសារមក។
|
|
|
|
> 💁 អ្នកគ្រប់គ្រង `on_message` ត្រូវបានហៅសម្រាប់ប្រធានទាំងអស់ដែលបានជាវ។ ប្រសិនបើអ្នកសរសេរកូដបន្ថែមទៀតដែលស្តាប់ច្រើនប្រធាន អ្នកអាចទទួលបានប្រធានដែលសារត្រូវបានផ្ញើទៅពីអOBJECT `message` ដែលផ្ញើទៅមុខងារ។
|
|
|
|
1. រត់កូដដូចជារបៀបដែលអ្នកបានរត់កូដពីផ្នែកមុននៃភារកិច្ច។ ប្រសិនបើអ្នកប្រើឧបករណ៍ IoT វិចិត្រសន៍ សូមធានាថា កម្មវិធី CounterFit កំពុងដំណើរការ និងឧបករណ៍ភ្លើងនិង LED ត្រូវបានបង្កើតនៅលើ PIN ត្រឹមត្រូវ។
|
|
|
|
1. កំណត់កម្រិតពន្លឺដែលឧបករណ៍របស់អ្នកបានរកឃើញ រឺថាវិចិត្រសន៍។ សារត្រូវបានទទួល និងបញ្ជាផ្ញើទៅនឹងត្រូវបានសរសេរនៅតាម Terminal។ LED នឹងត្រូវបានបើក និងបិទផ្អែកលើកម្រិតពន្លឺ។
|
|
|
|
> 💁 អ្នកអាចស្វែងរកកូដនេះនៅក្នុងថត [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) ឬថត [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi)។
|
|
|
|
😀 អ្នកបានសម្រេចក្នុងការសរសេរកូដឲ្យឧបករណ៍របស់អ្នកឆ្លើយតបបញ្ជាពីម៉ាស៊ីនបម្រើ MQTT។
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ការព្រមាន**:
|
|
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពួកយើងខិតខំសម្រាប់ត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការខ្វះត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតិរបស់វាគួរត្រូវបានចាត់ទុកជាមូលដ្ឋាននៃព័ត៌មានដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរត្រូវបានបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការជ្រុញលំបាក ឬការយល់ច្រឡំណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |