5.5 KiB
ควบคุมไฟกลางคืนของคุณผ่านอินเทอร์เน็ต - Wio Terminal
ในส่วนนี้ของบทเรียน คุณจะส่งข้อมูลเทเลเมทรีเกี่ยวกับระดับแสงจาก Wio Terminal ของคุณไปยัง MQTT broker
ติดตั้งไลบรารี JSON สำหรับ Arduino
วิธีที่นิยมในการส่งข้อความผ่าน MQTT คือการใช้ JSON มีไลบรารีสำหรับ Arduino ที่ช่วยให้อ่านและเขียนเอกสาร JSON ได้ง่ายขึ้น
งานที่ต้องทำ
ติดตั้งไลบรารี JSON สำหรับ Arduino
-
เปิดโปรเจกต์ไฟกลางคืนใน VS Code
-
เพิ่มบรรทัดต่อไปนี้เป็นบรรทัดเพิ่มเติมในรายการ
lib_deps
ในไฟล์platformio.ini
:bblanchon/ArduinoJson @ 6.17.3
สิ่งนี้จะนำเข้า ArduinoJson ซึ่งเป็นไลบรารี JSON สำหรับ Arduino
ส่งข้อมูลเทเลเมทรี
ขั้นตอนต่อไปคือการสร้างเอกสาร JSON ที่มีข้อมูลเทเลเมทรีและส่งไปยัง MQTT broker
งานที่ต้องทำ - ส่งข้อมูลเทเลเมทรี
ส่งข้อมูลเทเลเมทรีไปยัง MQTT broker
-
เพิ่มโค้ดต่อไปนี้ที่ด้านล่างของไฟล์
config.h
เพื่อกำหนดชื่อหัวข้อเทเลเมทรีสำหรับ MQTT broker:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
คือหัวข้อที่อุปกรณ์จะใช้ในการส่งระดับแสง -
เปิดไฟล์
main.cpp
-
เพิ่มคำสั่ง
#include
ต่อไปนี้ที่ด้านบนของไฟล์:#include <ArduinoJSON.h>
-
เพิ่มโค้ดต่อไปนี้ภายในฟังก์ชัน
loop
ก่อนคำสั่งdelay
:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
โค้ดนี้จะอ่านระดับแสงและสร้างเอกสาร JSON โดยใช้ ArduinoJson ซึ่งมีข้อมูลระดับแสงนี้ จากนั้นจะถูกแปลงเป็นสตริงและส่งไปยังหัวข้อเทเลเมทรี MQTT โดย MQTT client
-
อัปโหลดโค้ดไปยัง Wio Terminal ของคุณ และใช้ Serial Monitor เพื่อดูระดับแสงที่ถูกส่งไปยัง MQTT broker
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-telemetry/wio-terminal
😀 คุณได้ส่งข้อมูลเทเลเมทรีจากอุปกรณ์ของคุณสำเร็จแล้ว
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้