7.3 KiB
ควบคุมไฟกลางคืนของคุณผ่านอินเทอร์เน็ต - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi
อุปกรณ์ IoT จำเป็นต้องเขียนโค้ดเพื่อสื่อสารกับ test.mosquitto.org โดยใช้ MQTT เพื่อส่งค่าข้อมูลจากเซ็นเซอร์วัดแสง และรับคำสั่งเพื่อควบคุม LED
ในส่วนนี้ของบทเรียน คุณจะเชื่อมต่อ Raspberry Pi หรืออุปกรณ์ IoT เสมือนของคุณกับ MQTT broker
ติดตั้งแพ็กเกจไคลเอนต์ MQTT
เพื่อสื่อสารกับ MQTT broker คุณจำเป็นต้องติดตั้งไลบรารี MQTT ผ่านแพ็กเกจ pip บน Pi ของคุณ หรือในสภาพแวดล้อมเสมือนหากคุณใช้อุปกรณ์เสมือน
งาน
ติดตั้งแพ็กเกจ pip
-
เปิดโปรเจกต์ nightlight ใน VS Code
-
หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่า terminal กำลังรันสภาพแวดล้อมเสมือนอยู่ หากคุณใช้ Raspberry Pi คุณจะไม่ต้องใช้สภาพแวดล้อมเสมือน
-
รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ MQTT pip:
pip3 install paho-mqtt
เขียนโค้ดสำหรับอุปกรณ์
อุปกรณ์พร้อมสำหรับการเขียนโค้ดแล้ว
งาน
เขียนโค้ดสำหรับอุปกรณ์
-
เพิ่มการนำเข้าโค้ดต่อไปนี้ที่ด้านบนของไฟล์
app.py
:import paho.mqtt.client as mqtt
ไลบรารี
paho.mqtt.client
ช่วยให้อุปกรณ์ของคุณสามารถสื่อสารผ่าน MQTT ได้ -
เพิ่มโค้ดต่อไปนี้หลังจากการกำหนดเซ็นเซอร์วัดแสงและ LED:
id = '<ID>' client_name = id + 'nightlight_client'
แทนที่
<ID>
ด้วย ID ที่ไม่ซ้ำกันซึ่งจะใช้เป็นชื่อของ client อุปกรณ์นี้ และในภายหลังสำหรับหัวข้อที่อุปกรณ์นี้จะเผยแพร่และสมัครรับข้อมูล broker test.mosquitto.org เป็นสาธารณะและมีผู้ใช้งานจำนวนมาก รวมถึงนักเรียนคนอื่น ๆ ที่กำลังทำงานในแบบฝึกหัดนี้ การมีชื่อ client MQTT และชื่อหัวข้อที่ไม่ซ้ำกันช่วยให้โค้ดของคุณไม่ชนกับของคนอื่น คุณจะต้องใช้ ID นี้เมื่อคุณสร้างโค้ดเซิร์ฟเวอร์ในส่วนถัดไปของแบบฝึกหัดนี้💁 คุณสามารถใช้เว็บไซต์อย่าง GUIDGen เพื่อสร้าง ID ที่ไม่ซ้ำกัน
client_name
เป็นชื่อเฉพาะสำหรับ client MQTT นี้บน broker -
เพิ่มโค้ดต่อไปนี้ด้านล่างโค้ดใหม่เพื่อสร้างวัตถุ MQTT client และเชื่อมต่อกับ MQTT broker:
mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() print("MQTT connected!")
โค้ดนี้สร้างวัตถุ client เชื่อมต่อกับ MQTT broker สาธารณะ และเริ่ม loop การประมวลผลที่รันใน thread พื้นหลังเพื่อฟังข้อความในหัวข้อที่สมัครรับข้อมูล
-
รันโค้ดในลักษณะเดียวกับที่คุณรันโค้ดจากส่วนก่อนหน้าของแบบฝึกหัด หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่าแอป CounterFit กำลังรันอยู่ และเซ็นเซอร์วัดแสงและ LED ถูกสร้างขึ้นบนพินที่ถูกต้อง
(.venv) ➜ nightlight python app.py MQTT connected! Light level: 0 Light level: 0
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-mqtt/virtual-device หรือ code-mqtt/pi
😀 คุณได้เชื่อมต่ออุปกรณ์ของคุณกับ MQTT broker สำเร็จแล้ว
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้