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

4.1 KiB

Vezéreld az éjszakai fényedet az interneten keresztül - Wio Terminal

Ebben a leckében az MQTT broker által küldött parancsokra fogsz feliratkozni a Wio Terminal eszközödön.

Parancsokra való feliratkozás

A következő lépés az, hogy feliratkozz az MQTT broker által küldött parancsokra, és reagálj rájuk.

Feladat

Iratkozz fel a parancsokra.

  1. Nyisd meg az éjszakai fény projektet a VS Code-ban.

  2. Add hozzá az alábbi kódot a config.h fájl végéhez, hogy meghatározd a parancsokhoz tartozó témanevet:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    A SERVER_COMMAND_TOPIC az a téma, amelyre az eszköz feliratkozik, hogy LED parancsokat kapjon.

  3. Add hozzá az alábbi sort a reconnectMQTTClient függvény végéhez, hogy feliratkozz a parancs témára, amikor az MQTT kliens újra csatlakozik:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Add hozzá az alábbi kódot a reconnectMQTTClient függvény alá.

    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);
    }
    

    Ez a függvény lesz az a callback, amelyet az MQTT kliens hív meg, amikor üzenetet kap a szervertől.

    Az üzenet egy 8 bites egész számokból álló tömbként érkezik, ezért karaktertömbbé kell alakítani, hogy szövegként kezelhető legyen.

    Az üzenet egy JSON dokumentumot tartalmaz, amelyet az ArduinoJson könyvtár segítségével dekódolunk. A JSON dokumentum led_on tulajdonságát olvassuk ki, és az értéktől függően a LED bekapcsol vagy kikapcsol.

  5. Add hozzá az alábbi kódot a createMQTTClient függvényhez:

    client.setCallback(clientCallback);
    

    Ez a kód beállítja a clientCallback-ot, mint azt a callback-et, amelyet az MQTT broker üzenet érkezésekor hív meg.

    💁 A clientCallback kezelő minden feliratkozott témához meghívásra kerül. Ha később olyan kódot írsz, amely több témát figyel, az üzenethez tartozó témát a callback függvény topic paraméteréből tudod lekérni.

  6. Töltsd fel a kódot a Wio Terminal eszközödre, és használd a Serial Monitor-t, hogy lásd a fényerősség adatokat, amelyeket az MQTT brokernek küldesz.

  7. Állítsd be a fizikai vagy virtuális eszközöd által érzékelt fényerősséget. Látni fogod, hogy üzenetek érkeznek és parancsok küldődnek a terminálban. A LED is bekapcsol vagy kikapcsol a fényerősségtől függően.

💁 Ezt a kódot megtalálod a code-commands/wio-terminal mappában.

😀 Sikeresen megírtad a kódot, amely lehetővé teszi az eszközöd számára, hogy reagáljon az MQTT broker parancsaira.


Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Fontos információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.