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/single-board-computer-mqtt.md

86 lines
7.5 KiB

# ត្រួតគ្រងភ្លើងរាត្រីរបស់អ្នកតាមអ៊ិនធឺរណೆត - ឧបករណ៍ IoT មនុស្សពិតប្រៀបធៀបនិង Raspberry Pi
ឧបករណ៍ IoT ត្រូវការត្រូវបានកូដដើម្បីទំនាក់ទំនងជាមួយ *test.mosquitto.org* ប្រើ MQTT ដើម្បីផ្ញើតម្លៃតាមរយៈការអានឧបករណ៍សង់សារពន្លឺ និង ទទួលបញ្ជាលើដើម្បីត្រួតគ្រង LED។
នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងភ្ជាប់ Raspberry Pi របស់អ្នក ឬឧបករណ៍ IoT ម៉ូទ្យួតទៅ MQTT broker ។
## តម្លើងកញ្ចប់ MQTT client
ដើម្បីទំនាក់ទំនងជាមួយ MQTT broker អ្នកត្រូវតែតម្លើងបណ្ណាល័យ MQTT តាមរយៈ pip package នៅលើ Pi របស់អ្នក ឬ នៅក្នុងបរិស្ថានវេរីស្វាល់របស់អ្នក ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត។
### ការងារ
តម្លើងកញ្ចប់ pip
1. បើកគម្រោង nightlight នៅក្នុង VS Code ។
1. ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត វិចិត្រសាល ត្រូវតែប្រាកដថាទTerminal កំពុងដំណើរការបរិស្ថានវេរីស្វាល់។ ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi អ្នកមិនចាំបាច់ប្រើបរិស្ថានវេរីស្វាល់ទេ។
1. រត់ពាណិជ្ជកម្មខាងក្រោមសម្រាប់តម្លើងកញ្ចប់ MQTT pip:
```sh
pip3 install paho-mqtt
```
## កូដឧបករណ៍
ឧបករណ៍រួចរាល់សម្រាប់កូដ។
### ការងារ
សរសេរកូដឧបករណ៍។
1. បន្ថែមការនាំចូលខាងក្រោមទៅកំពូលឯកសារ `app.py`
```python
import paho.mqtt.client as mqtt
```
បណ្ណាល័យ `paho.mqtt.client` អនុញ្ញាតឲ្យកម្មវិធីរបស់អ្នកទំនាក់ទំនងតាម MQTT។
1. បន្ថែមកូដខាងក្រោមបន្ទាប់ពីការបញ្ជាក់ឧបករណ៍សង់សារពន្លឺ និង LED៖
```python
id = '<ID>'
client_name = id + 'nightlight_client'
```
ជំនួស `<ID>` ជាមួយ ID របស់អ្នកដែលមានតែមួយ ដែលនឹងប្រើជាឈ្មោះនៃ client ឧបករណ៍នេះ ហើយបន្ទាប់មកសម្រាប់ប្រធានបទដែលឧបករណ៍នេះបង្ហោះ និង ចុះឈ្មោះ។ broker *test.mosquitto.org* គឺសាធារណៈ ហើយប្រើប្រាស់ដោយមនុស្សជាច្រើន រួមទាំងនិស្សិតផ្សេងទៀតដែលកំពុងធ្វើកិច្ចការនេះ។ ការមានឈ្មោះ client MQTT និងប្រធានបទដែលមានតែមួយធានាថាកូដរបស់អ្នកមិនជួបប្រទះបញ្ហាជាមួយអ្នកផ្សេងទៀត។ អ្នកនឹងត្រូវការប្រើ ID នេះនៅពេលអ្នកបង្កើតកូដម៉ាស៊ីនមេនៅក្រោយក្នុងកិច្ចការនេះផងដែរ។
> 💁 អ្នកអាចប្រើគេហទំព័រដូចជា [GUIDGen](https://www.guidgen.com) ដើម្បីបង្កើត ID ដែលទេរ។
`client_name` គឺជាឈ្មោះទ្រឹងតែមួយសម្រាប់ client MQTT នេះនៅលើ broker។
1. បន្ថែមកូដខាងក្រោមក្រោមកូដថ្មីនេះ ដើម្បីបង្កើតអប្សារកម្មវិធី MQTT client ហើយភ្ជាប់ទៅ MQTT broker៖
```python
mqtt_client = mqtt.Client(client_name)
mqtt_client.connect('test.mosquitto.org')
mqtt_client.loop_start()
print("MQTT connected!")
```
កូដនេះបង្កើតអប្សារមួយភ្ជាប់ទៅ MQTT broker សាធារណៈ ហើយចាប់ផ្តើមលំហូរការកំណត់ប្រតិបត្តិនៅក្នុងថ្រក ក្រោយ ដែលស្ដាប់សារ​នៅលើប្រធានបទដែលបានចុះឈ្មោះ។
1. រត់កូដដូចដែលអ្នកបានរត់កូដពីផ្នែកមុននៃកិច្ចការ។ ប្រសិនបើអ្នកកំពុងប្រើឧបករណ៍ម៉ូទ្យួត វិចិត្រសាល ទៅ​រាល់ CounterFit app កំពុងដំណើរការហើយឧបករណ៍សង់សារពន្លឺ និង LED ត្រូវបានបង្កើតនៅលើ pin ត្រឹមត្រូវ។
```output
(.venv) ➜ nightlight python app.py
MQTT connected!
Light level: 0
Light level: 0
```
> 💁 អ្នកអាចរកឃើញកូដនេះនៅក្នុងថត [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ឬ ថត [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi)។
😀 អ្នកបានភ្ជាប់ឧបករណ៍របស់អ្នកទៅ MQTT broker ដោយជោគជ័យ។
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ការបដិសេធ**៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែម៉ាស៊ីនអាចមានកំហុស ឬការបញ្ចូលមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាបុរាណគួរត្រូវបានគេយកជាអ្នកផ្សព្វផ្សាយស្រេចត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ និយោជកបកប្រែជាជំនាញមនុស្សគឺបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->