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

3.6 KiB

Styr din nattlampa över Internet - Virtuell IoT-hårdvara och Raspberry Pi

I den här delen av lektionen kommer du att prenumerera på kommandon som skickas från en MQTT-broker till din Raspberry Pi eller virtuella IoT-enhet.

Prenumerera på kommandon

Nästa steg är att prenumerera på de kommandon som skickas från MQTT-brokern och svara på dem.

Uppgift

Prenumerera på kommandon.

  1. Öppna nattlampa-projektet i VS Code.

  2. Om du använder en virtuell IoT-enhet, se till att terminalen kör den virtuella miljön. Om du använder en Raspberry Pi behöver du inte använda en virtuell miljö.

  3. Lägg till följande kod efter definitionerna av client_telemetry_topic:

    server_command_topic = id + '/commands'
    

    server_command_topic är MQTT-ämnet som enheten kommer att prenumerera på för att ta emot LED-kommandon.

  4. Lägg till följande kod precis ovanför huvudloopen, efter raden 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
    

    Den här koden definierar en funktion, handle_command, som läser ett meddelande som ett JSON-dokument och letar efter värdet på egenskapen led_on. Om den är inställd på True tänds LED-lampan, annars släcks den.

    MQTT-klienten prenumererar på ämnet som servern kommer att skicka meddelanden på och ställer in funktionen handle_command att anropas när ett meddelande tas emot.

    💁 Händelsehanteraren on_message anropas för alla ämnen som det prenumereras på. Om du senare skriver kod som lyssnar på flera ämnen kan du få ämnet som meddelandet skickades till från message-objektet som skickas till hanterarfunktionen.

  5. Kör koden på samma sätt som du körde koden från den föregående delen av uppgiften. Om du använder en virtuell IoT-enhet, se till att CounterFit-appen körs och att ljussensorn och LED-lampan har skapats på rätt pinnar.

  6. Justera ljusnivåerna som detekteras av din fysiska eller virtuella enhet. Meddelanden som tas emot och kommandon som skickas kommer att skrivas ut i terminalen. LED-lampan kommer också att tändas och släckas beroende på ljusnivån.

💁 Du kan hitta den här koden i mappen code-commands/virtual-device eller mappen code-commands/pi.

😀 Du har framgångsrikt programmerat din enhet att svara på kommandon från en MQTT-broker.


Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, vänligen notera att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.