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

3.8 KiB

Styr nattlampen din over Internett - Wio Terminal

I denne delen av leksjonen vil du abonnere på kommandoer sendt fra en MQTT-broker til din Wio Terminal.

Abonner på kommandoer

Neste steg er å abonnere på kommandoene som sendes fra MQTT-brokeren, og svare på dem.

Oppgave

Abonner på kommandoer.

  1. Åpne nattlampe-prosjektet i VS Code.

  2. Legg til følgende kode nederst i config.h-filen for å definere emnenavnet for kommandoene:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    SERVER_COMMAND_TOPIC er emnet som enheten vil abonnere på for å motta LED-kommandoer.

  3. Legg til følgende linje på slutten av reconnectMQTTClient-funksjonen for å abonnere på kommandoemnet når MQTT-klienten kobles til igjen:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Legg til følgende kode under reconnectMQTTClient-funksjonen:

    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 funksjonen vil være callback-funksjonen som MQTT-klienten kaller når den mottar en melding fra serveren.

    Meldingen mottas som et array av usignerte 8-bits heltall, og må konverteres til et tegnarray for å behandles som tekst.

    Meldingen inneholder et JSON-dokument, som dekodes ved hjelp av ArduinoJson-biblioteket. led_on-egenskapen i JSON-dokumentet leses, og avhengig av verdien slås LED-en av eller på.

  5. Legg til følgende kode i createMQTTClient-funksjonen:

    client.setCallback(clientCallback);
    

    Denne koden setter clientCallback som callback-funksjonen som skal kalles når en melding mottas fra MQTT-brokeren.

    💁 clientCallback-handleren kalles for alle emner det abonneres på. Hvis du senere skriver kode som lytter til flere emner, kan du hente emnet meldingen ble sendt til fra topic-parameteren som sendes til callback-funksjonen.

  6. Last opp koden til din Wio Terminal, og bruk Serial Monitor for å se lysnivåene som sendes til MQTT-brokeren.

  7. Juster lysnivåene som oppdages av din fysiske eller virtuelle enhet. Du vil se meldinger bli mottatt og kommandoer bli sendt i terminalen. Du vil også se at LED-en slås av og på avhengig av lysnivået.

💁 Du finner denne koden i code-commands/wio-terminal-mappen.

😀 Du har nå kodet enheten din til å svare på kommandoer fra en MQTT-broker.


Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.