# ควบคุมไฟกลางคืนของคุณผ่านอินเทอร์เน็ต - ฮาร์ดแวร์ 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 = '' 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!") ``` โค้ดนี้สร้างวัตถุ 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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้