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/de/1-getting-started/lessons/4-connect-internet/single-board-computer-comma...

3.8 KiB

Steuern Sie Ihr Nachtlicht über das Internet - Virtuelle IoT-Hardware und Raspberry Pi

In diesem Teil der Lektion abonnieren Sie Befehle, die von einem MQTT-Broker an Ihren Raspberry Pi oder Ihr virtuelles IoT-Gerät gesendet werden.

Befehle abonnieren

Der nächste Schritt besteht darin, die vom MQTT-Broker gesendeten Befehle zu abonnieren und darauf zu reagieren.

Aufgabe

Abonnieren Sie Befehle.

  1. Öffnen Sie das Nachtlicht-Projekt in VS Code.

  2. Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass das Terminal die virtuelle Umgebung ausführt. Wenn Sie einen Raspberry Pi verwenden, benötigen Sie keine virtuelle Umgebung.

  3. Fügen Sie den folgenden Code nach den Definitionen des client_telemetry_topic hinzu:

    server_command_topic = id + '/commands'
    

    Das server_command_topic ist das MQTT-Thema, das das Gerät abonniert, um LED-Befehle zu empfangen.

  4. Fügen Sie den folgenden Code direkt über der Hauptschleife, nach der Zeile mqtt_client.loop_start(), hinzu:

    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
    

    Dieser Code definiert eine Funktion, handle_command, die eine Nachricht als JSON-Dokument liest und nach dem Wert der Eigenschaft led_on sucht. Wenn sie auf True gesetzt ist, wird die LED eingeschaltet, andernfalls wird sie ausgeschaltet.

    Der MQTT-Client abonniert das Thema, auf dem der Server Nachrichten senden wird, und legt fest, dass die Funktion handle_command aufgerufen wird, wenn eine Nachricht empfangen wird.

    💁 Der on_message-Handler wird für alle abonnierten Themen aufgerufen. Wenn Sie später Code schreiben, der auf mehrere Themen hört, können Sie das Thema, auf das die Nachricht gesendet wurde, aus dem message-Objekt abrufen, das an die Handler-Funktion übergeben wird.

  5. Führen Sie den Code auf die gleiche Weise aus wie den Code aus dem vorherigen Teil der Aufgabe. Wenn Sie ein virtuelles IoT-Gerät verwenden, stellen Sie sicher, dass die CounterFit-App ausgeführt wird und der Lichtsensor und die LED an den richtigen Pins erstellt wurden.

  6. Passen Sie die Lichtstärken an, die von Ihrem physischen oder virtuellen Gerät erkannt werden. Empfangene Nachrichten und gesendete Befehle werden im Terminal angezeigt. Die LED wird je nach Lichtstärke ein- und ausgeschaltet.

💁 Sie finden diesen Code im Ordner code-commands/virtual-device oder im Ordner code-commands/pi.

😀 Sie haben Ihr Gerät erfolgreich programmiert, um auf Befehle eines MQTT-Brokers zu reagieren.

Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.