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

5.6 KiB

Контролишите своје ноћно светло преко интернета - Wio Terminal

У овом делу лекције, претплатићете се на команде које се шаљу са MQTT брокера вашем Wio Terminal-у.

Претплата на команде

Следећи корак је претплата на команде које се шаљу са MQTT брокера и одговарање на њих.

Задатак

Претплатите се на команде.

  1. Отворите пројекат ноћног светла у VS Code-у.

  2. Додајте следећи код на крај config.h датотеке како бисте дефинисали назив теме за команде:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    SERVER_COMMAND_TOPIC је тема на коју ће се уређај претплатити како би примао команде за LED.

  3. Додајте следећу линију на крај reconnectMQTTClient функције како бисте се претплатили на тему команде када се MQTT клијент поново повеже:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Додајте следећи код испод 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);
    }
    

    Ова функција ће бити повратни позив који ће MQTT клијент позвати када прими поруку са сервера.

    Порука се прима као низ беззнаковних 8-битних целих бројева, па је потребно конвертовати је у низ карактера како би се третирала као текст.

    Порука садржи JSON документ, који се декодира помоћу ArduinoJson библиотеке. led_on својство JSON документа се чита, и у зависности од његове вредности LED се укључује или искључује.

  5. Додајте следећи код у createMQTTClient функцију:

    client.setCallback(clientCallback);
    

    Овај код поставља clientCallback као повратни позив који ће се позвати када се прими порука са MQTT брокера.

    💁 clientCallback обрађивач се позива за све теме на које сте претплаћени. Ако касније напишете код који слуша више тема, можете добити тему на коју је порука послата из topic параметра који се прослеђује функцији повратног позива.

  6. Отпремите код на ваш Wio Terminal и користите Serial Monitor да видите нивое светлости који се шаљу MQTT брокеру.

  7. Подесите нивое светлости које детектује ваш физички или виртуелни уређај. Видећете поруке које се примају и команде које се шаљу у терминалу. Такође ћете видети како се LED укључује и искључује у зависности од нивоа светлости.

💁 Овај код можете пронаћи у code-commands/wio-terminal фасцикли.

😀 Успешно сте програмирали свој уређај да одговара на команде са MQTT брокера.


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.