# ត្រួតគ្រងភ្លើងរាត្រីរបស់អ្នកតាមអ៊ិនធឺរណೆត - ឧបករណ៍ 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 = '' client_name = id + 'nightlight_client' ``` ជំនួស `` ជាមួយ 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 ដោយជោគជ័យ។ --- **ការបដិសេធ**៖ ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែម៉ាស៊ីនអាចមានកំហុស ឬការបញ្ចូលមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាបុរាណគួរត្រូវបានគេយកជាអ្នកផ្សព្វផ្សាយស្រេចត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ និយោជកបកប្រែជាជំនាញមនុស្សគឺបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។