5.2 KiB
ควบคุมไฟกลางคืนของคุณผ่านอินเทอร์เน็ต - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะส่งข้อมูลเทเลเมทรีเกี่ยวกับระดับแสงจาก Raspberry Pi หรืออุปกรณ์ IoT เสมือนไปยัง MQTT broker
ส่งข้อมูลเทเลเมทรี
ขั้นตอนถัดไปคือการสร้างเอกสาร JSON ที่มีข้อมูลเทเลเมทรีและส่งไปยัง MQTT broker
งานที่ต้องทำ
ส่งข้อมูลเทเลเมทรีไปยัง MQTT broker
-
เปิดโปรเจกต์ไฟกลางคืนใน VS Code
-
หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่าเทอร์มินัลกำลังรันสภาพแวดล้อมเสมือนอยู่ หากคุณใช้ Raspberry Pi คุณจะไม่ต้องใช้สภาพแวดล้อมเสมือน
-
เพิ่มการนำเข้า (import) ต่อไปนี้ที่ด้านบนของไฟล์
app.py
:import json
ไลบรารี
json
ใช้สำหรับเข้ารหัสข้อมูลเทเลเมทรีให้อยู่ในรูปแบบเอกสาร JSON -
เพิ่มโค้ดต่อไปนี้หลังจากการประกาศ
client_name
:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
คือ MQTT topic ที่อุปกรณ์จะใช้ในการส่งข้อมูลระดับแสง -
แทนที่เนื้อหาภายในลูป
while True:
ที่อยู่ท้ายไฟล์ด้วยโค้ดต่อไปนี้:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
โค้ดนี้จะบรรจุระดับแสงลงในเอกสาร JSON และส่งไปยัง MQTT broker จากนั้นจะหยุดพักเพื่อช่วยลดความถี่ในการส่งข้อความ
-
รันโค้ดในลักษณะเดียวกับที่คุณรันโค้ดในส่วนก่อนหน้าของงาน หากคุณใช้อุปกรณ์ IoT เสมือน ให้ตรวจสอบว่าแอป CounterFit กำลังทำงานอยู่ และเซ็นเซอร์แสงและ LED ได้ถูกสร้างขึ้นในพินที่ถูกต้องแล้ว
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-telemetry/virtual-device หรือ code-telemetry/pi
😀 คุณได้ส่งข้อมูลเทเลเมทรีจากอุปกรณ์ของคุณสำเร็จแล้ว
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้