3.3 KiB
Kawal lampu malam anda melalui Internet - Wio Terminal
Dalam bahagian pelajaran ini, anda akan menghantar telemetri dengan tahap cahaya dari Wio Terminal anda ke broker MQTT.
Pasang perpustakaan JSON Arduino
Satu cara popular untuk menghantar mesej melalui MQTT adalah dengan menggunakan JSON. Terdapat perpustakaan Arduino untuk JSON yang memudahkan pembacaan dan penulisan dokumen JSON.
Tugas
Pasang perpustakaan Arduino JSON.
-
Buka projek lampu malam dalam VS Code.
-
Tambahkan baris berikut sebagai baris tambahan ke senarai
lib_deps
dalam failplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
Ini mengimport ArduinoJson, sebuah perpustakaan JSON untuk Arduino.
Terbitkan telemetri
Langkah seterusnya adalah untuk mencipta dokumen JSON dengan telemetri dan menghantarnya ke broker MQTT.
Tugas - terbitkan telemetri
Terbitkan telemetri ke broker MQTT.
-
Tambahkan kod berikut ke bahagian bawah fail
config.h
untuk menentukan nama topik telemetri untuk broker MQTT:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
adalah topik di mana peranti akan menerbitkan tahap cahaya. -
Buka fail
main.cpp
-
Tambahkan arahan
#include
berikut ke bahagian atas fail:#include <ArduinoJSON.h>
-
Tambahkan kod berikut di dalam fungsi
loop
, tepat sebelumdelay
: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());
Kod ini membaca tahap cahaya, dan mencipta dokumen JSON menggunakan ArduinoJson yang mengandungi tahap ini. Dokumen ini kemudian diserialkan ke dalam bentuk string dan diterbitkan pada topik telemetri MQTT oleh klien MQTT.
-
Muat naik kod ke Wio Terminal anda, dan gunakan Serial Monitor untuk melihat tahap cahaya yang dihantar ke broker MQTT.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 Anda boleh menemui kod ini dalam folder code-telemetry/wio-terminal.
😀 Anda telah berjaya menghantar telemetri dari peranti anda.
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat penting, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.