You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ms/1-getting-started/lessons/4-connect-internet/single-board-computer-comma...

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.

  1. Buka projek lampu malam dalam VS Code.

  2. Jika anda menggunakan peranti IoT maya, pastikan terminal menjalankan persekitaran maya. Jika anda menggunakan Raspberry Pi, anda tidak akan menggunakan persekitaran maya.

  3. 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.

  4. 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 sifat led_on. Jika ia ditetapkan kepada True, 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 objek message yang dihantar ke fungsi pengendali.

  5. 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.

  6. 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.