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

4.0 KiB

Ovládajte svoje nočné svetlo cez internet - Wio Terminal

V tejto časti lekcie sa naučíte, ako sa prihlásiť na odber príkazov odosielaných z MQTT brokera do vášho Wio Terminalu.

Prihlásenie na odber príkazov

Ďalším krokom je prihlásiť sa na odber príkazov odosielaných z MQTT brokera a reagovať na ne.

Úloha

Prihláste sa na odber príkazov.

  1. Otvorte projekt nočného svetla vo VS Code.

  2. Pridajte nasledujúci kód na koniec súboru config.h, aby ste definovali názov témy pre príkazy:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    SERVER_COMMAND_TOPIC je téma, na ktorú sa zariadenie prihlási, aby prijímalo príkazy pre LED.

  3. Pridajte nasledujúci riadok na koniec funkcie reconnectMQTTClient, aby ste sa prihlásili na odber témy príkazov, keď sa MQTT klient znovu pripojí:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Pridajte nasledujúci kód pod funkciu 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);
    }
    

    Táto funkcia bude spätné volanie, ktoré MQTT klient zavolá, keď prijme správu zo servera.

    Správa je prijatá ako pole nesignovaných 8-bitových celých čísel, takže ju treba previesť na pole znakov, aby sa s ňou mohlo zaobchádzať ako s textom.

    Správa obsahuje JSON dokument, ktorý je dekódovaný pomocou knižnice ArduinoJson. Vlastnosť led_on z JSON dokumentu sa prečíta a v závislosti od jej hodnoty sa LED zapne alebo vypne.

  5. Pridajte nasledujúci kód do funkcie createMQTTClient:

    client.setCallback(clientCallback);
    

    Tento kód nastaví clientCallback ako spätné volanie, ktoré sa zavolá, keď MQTT broker odošle správu.

    💁 Handler clientCallback je volaný pre všetky témy, na ktoré ste prihlásení. Ak neskôr napíšete kód, ktorý počúva viacero tém, môžete získať tému, na ktorú bola správa odoslaná, z parametra topic, ktorý je odovzdaný do funkcie spätného volania.

  6. Nahrajte kód do vášho Wio Terminalu a použite Serial Monitor na sledovanie úrovní svetla odosielaných do MQTT brokera.

  7. Upravte úrovne svetla detekované vaším fyzickým alebo virtuálnym zariadením. Uvidíte správy prijímané a príkazy odosielané v termináli. Tiež uvidíte, ako sa LED zapína a vypína v závislosti od úrovne svetla.

💁 Tento kód nájdete v priečinku code-commands/wio-terminal.

😀 Úspešne ste naprogramovali svoje zariadenie tak, aby reagovalo na príkazy z MQTT brokera.


Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.