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

3.8 KiB

Ohjaa yövaloa Internetin kautta - Wio Terminal

Tässä osassa oppituntia tilaat komentoja, jotka lähetetään MQTT-välittäjältä Wio Terminal -laitteellesi.

Tilaa komennot

Seuraava vaihe on tilata MQTT-välittäjän lähettämät komennot ja vastata niihin.

Tehtävä

Tilaa komennot.

  1. Avaa yövaloprojekti VS Code -ohjelmassa.

  2. Lisää seuraava koodi config.h-tiedoston loppuun määrittääksesi komentojen aiheen nimen:

    const string SERVER_COMMAND_TOPIC = ID + "/commands";
    

    SERVER_COMMAND_TOPIC on aihe, johon laite tilaa saadakseen LED-komennot.

  3. Lisää seuraava rivi reconnectMQTTClient-funktion loppuun, jotta komentoaihe tilataan, kun MQTT-asiakas yhdistetään uudelleen:

    client.subscribe(SERVER_COMMAND_TOPIC.c_str());
    
  4. Lisää seuraava koodi reconnectMQTTClient-funktion alapuolelle.

    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ämä funktio toimii palautteena, jonka MQTT-asiakas kutsuu, kun se vastaanottaa viestin palvelimelta.

    Viesti vastaanotetaan 8-bittisten kokonaislukujen taulukkona, joten se täytyy muuntaa merkkitaulukoksi, jotta sitä voidaan käsitellä tekstinä.

    Viesti sisältää JSON-dokumentin, joka dekoodataan ArduinoJson-kirjaston avulla. JSON-dokumentin led_on-ominaisuus luetaan, ja sen arvon perusteella LED sytytetään tai sammutetaan.

  5. Lisää seuraava koodi createMQTTClient-funktioon:

    client.setCallback(clientCallback);
    

    Tämä koodi asettaa clientCallback-funktion palautteeksi, joka kutsutaan, kun MQTT-välittäjältä vastaanotetaan viesti.

    💁 clientCallback-käsittelijä kutsutaan kaikille tilatuille aiheille. Jos myöhemmin kirjoitat koodia, joka kuuntelee useita aiheita, voit saada aiheen, johon viesti lähetettiin, topic-parametrista, joka välitetään palautefunktiolle.

  6. Lataa koodi Wio Terminal -laitteellesi ja käytä sarjamonitoria nähdäksesi valotasot, jotka lähetetään MQTT-välittäjälle.

  7. Säädä fyysisen tai virtuaalisen laitteen havaitsemia valotasoja. Näet viestien vastaanottamisen ja komentojen lähettämisen terminaalissa. Näet myös LEDin syttyvän ja sammuvan valotason mukaan.

💁 Löydät tämän koodin code-commands/wio-terminal -kansiosta.

😀 Olet onnistuneesti ohjelmoinut laitteesi vastaamaan MQTT-välittäjän komentoihin.


Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.