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/da/1-getting-started/lessons/4-connect-internet/wio-terminal-commands.md

3.9 KiB

Styr din natlampe over internettet - Wio Terminal

I denne del af lektionen vil du abonnere på kommandoer sendt fra en MQTT-broker til din Wio Terminal.

Abonner på kommandoer

Næste trin er at abonnere på de kommandoer, der sendes fra MQTT-brokeren, og reagere på dem.

Opgave

Abonner på kommandoer.

  1. Åbn natlampeprojektet i VS Code.

  2. Tilføj følgende kode nederst i config.h-filen for at definere emnenavnet for kommandoerne:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    SERVER_COMMAND_TOPIC er det emne, som enheden vil abonnere på for at modtage LED-kommandoer.

  3. Tilføj følgende linje til slutningen af funktionen reconnectMQTTClient for at abonnere på kommandoemnet, når MQTT-klienten genopretter forbindelsen:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Tilføj følgende kode under funktionen reconnectMQTTClient.

    void clientCallback(char *topic, uint8_t *payload, unsigned int length)
    {
        char buff[length + 1];
        for (int i = 0; i < length; i++)
        {
            buff[i] = (char)payload[i];
        }
        buff[length] = '\0';
    
        Serial.print("Message received:");
        Serial.println(buff);
    
        DynamicJsonDocument doc(1024);
        deserializeJson(doc, buff);
        JsonObject obj = doc.as<JsonObject>();
    
        bool led_on = obj["led_on"];
    
        if (led_on)
            digitalWrite(D0, HIGH);
        else
            digitalWrite(D0, LOW);
    }
    

    Denne funktion vil være den callback, som MQTT-klienten kalder, når den modtager en besked fra serveren.

    Beskeden modtages som et array af usignerede 8-bit heltal og skal konverteres til et karakterarray for at blive behandlet som tekst.

    Beskeden indeholder et JSON-dokument, som dekodes ved hjælp af ArduinoJson-biblioteket. led_on-egenskaben i JSON-dokumentet læses, og afhængigt af værdien tændes eller slukkes LED'en.

  5. Tilføj følgende kode til funktionen createMQTTClient:

    client.setCallback(clientCallback);
    

    Denne kode sætter clientCallback som den callback, der skal kaldes, når en besked modtages fra MQTT-brokeren.

    💁 clientCallback-handleren kaldes for alle emner, der er abonneret på. Hvis du senere skriver kode, der lytter til flere emner, kan du få det emne, som beskeden blev sendt til, fra parameteren topic, der sendes til callback-funktionen.

  6. Upload koden til din Wio Terminal, og brug Serial Monitor til at se lysniveauerne, der sendes til MQTT-brokeren.

  7. Juster lysniveauerne, der registreres af din fysiske eller virtuelle enhed. Du vil se beskeder blive modtaget og kommandoer blive sendt i terminalen. Du vil også se LED'en blive tændt og slukket afhængigt af lysniveauet.

💁 Du kan finde denne kode i mappen code-commands/wio-terminal.

😀 Du har med succes kodet din enhed til at reagere på kommandoer fra en MQTT-broker.


Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.