3.5 KiB
Kawal lampu malam anda melalui Internet - Perkakasan IoT Maya dan Raspberry Pi
Dalam bahagian pelajaran ini, anda akan melanggan arahan yang dihantar dari broker MQTT ke Raspberry Pi atau peranti IoT maya anda.
Langgan arahan
Langkah seterusnya adalah melanggan arahan yang dihantar dari broker MQTT dan bertindak balas terhadapnya.
Tugasan
Langgan arahan.
-
Buka projek lampu malam dalam VS Code.
-
Jika anda menggunakan peranti IoT maya, pastikan terminal menjalankan persekitaran maya. Jika anda menggunakan Raspberry Pi, anda tidak akan menggunakan persekitaran maya.
-
Tambahkan kod berikut selepas definisi
client_telemetry_topic
:server_command_topic = id + '/commands'
server_command_topic
adalah topik MQTT yang akan dilanggan oleh peranti untuk menerima arahan LED. -
Tambahkan kod berikut tepat di atas gelung utama, selepas baris
mqtt_client.loop_start()
:def handle_command(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['led_on']: led.on() else: led.off() mqtt_client.subscribe(server_command_topic) mqtt_client.on_message = handle_command
Kod ini mentakrifkan fungsi,
handle_command
, yang membaca mesej sebagai dokumen JSON dan mencari nilai sifatled_on
. Jika ia ditetapkan kepadaTrue
, LED akan dihidupkan, jika tidak, ia akan dimatikan.Pelanggan MQTT melanggan topik yang akan dihantar oleh pelayan mesej dan menetapkan fungsi
handle_command
untuk dipanggil apabila mesej diterima.💁 Pengendali
on_message
dipanggil untuk semua topik yang dilanggan. Jika anda kemudian menulis kod yang mendengar pelbagai topik, anda boleh mendapatkan topik yang mesej dihantar daripada objekmessage
yang dihantar ke fungsi pengendali. -
Jalankan kod dengan cara yang sama seperti anda menjalankan kod dari bahagian tugasan sebelumnya. Jika anda menggunakan peranti IoT maya, pastikan aplikasi CounterFit sedang berjalan dan sensor cahaya serta LED telah dicipta pada pin yang betul.
-
Laraskan tahap cahaya yang dikesan oleh peranti fizikal atau maya anda. Mesej yang diterima dan arahan yang dihantar akan ditulis ke terminal. LED juga akan dihidupkan dan dimatikan bergantung pada tahap cahaya.
💁 Anda boleh menemui kod ini dalam folder code-commands/virtual-device atau folder code-commands/pi.
😀 Anda telah berjaya menulis kod untuk peranti anda supaya ia dapat bertindak balas terhadap arahan dari broker MQTT.
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.