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/th/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md

93 lines
7.3 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-27T21:15:59+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "th"
}
-->
# ควบคุมไฟกลางคืนของคุณผ่านอินเทอร์เน็ต - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi
อุปกรณ์ IoT จำเป็นต้องเขียนโค้ดเพื่อสื่อสารกับ *test.mosquitto.org* โดยใช้ MQTT เพื่อส่งค่าข้อมูลจากเซ็นเซอร์วัดแสง และรับคำสั่งเพื่อควบคุม LED
ในส่วนนี้ของบทเรียน คุณจะเชื่อมต่อ Raspberry Pi หรืออุปกรณ์ IoT เสมือนของคุณกับ MQTT broker
## ติดตั้งแพ็กเกจไคลเอนต์ MQTT
เพื่อสื่อสารกับ MQTT broker คุณจำเป็นต้องติดตั้งไลบรารี MQTT ผ่านแพ็กเกจ pip บน Pi ของคุณ หรือในสภาพแวดล้อมเสมือนหากคุณใช้อุปกรณ์เสมือน
### งาน
ติดตั้งแพ็กเกจ pip
1. เปิดโปรเจกต์ nightlight ใน VS Code
1. หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่า 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!")
```
โค้ดนี้สร้างวัตถุ client เชื่อมต่อกับ MQTT broker สาธารณะ และเริ่ม loop การประมวลผลที่รันใน thread พื้นหลังเพื่อฟังข้อความในหัวข้อที่สมัครรับข้อมูล
1. รันโค้ดในลักษณะเดียวกับที่คุณรันโค้ดจากส่วนก่อนหน้าของแบบฝึกหัด หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่าแอป CounterFit กำลังรันอยู่ และเซ็นเซอร์วัดแสงและ LED ถูกสร้างขึ้นบนพินที่ถูกต้อง
```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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้