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

7.3 KiB

ਆਪਣੀ ਨਾਈਟਲਾਈਟ ਨੂੰ ਇੰਟਰਨੈਟ 'ਤੇ ਕੰਟਰੋਲ ਕਰੋ - Wio Terminal

ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ Wio Terminal ਲਈ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਭੇਜੇ ਗਏ ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋਗੇ।

ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋ

ਅਗਲਾ ਕਦਮ 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 ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡਿਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। JSON ਡੌਕਯੂਮੈਂਟ ਦੀ led_on ਪ੍ਰਾਪਰਟੀ ਨੂੰ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਸਦੀ ਵੈਲਿਊ ਦੇ ਅਧਾਰ 'ਤੇ LED ਨੂੰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

  5. createMQTTClient ਫੰਕਸ਼ਨ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:

    client.setCallback(clientCallback);
    

    ਇਹ ਕੋਡ clientCallback ਨੂੰ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ ਕਾਲ ਕਰਨ ਲਈ ਕਾਲਬੈਕ ਵਜੋਂ ਸੈਟ ਕਰਦਾ ਹੈ।

    💁 clientCallback ਹੈਂਡਲਰ ਸਾਰੇ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਟਾਪਿਕਾਂ ਲਈ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਐਸਾ ਕੋਡ ਲਿਖਦੇ ਹੋ ਜੋ ਕਈ ਟਾਪਿਕਾਂ ਨੂੰ ਸੁਣਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਕਾਲਬੈਕ ਫੰਕਸ਼ਨ ਨੂੰ ਪਾਸ ਕੀਤੇ topic ਪੈਰਾਮੀਟਰ ਤੋਂ ਸੁਨੇਹਾ ਭੇਜੇ ਗਏ ਟਾਪਿਕ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।

  6. ਕੋਡ ਨੂੰ ਆਪਣੇ Wio Terminal 'ਤੇ ਅੱਪਲੋਡ ਕਰੋ, ਅਤੇ Serial Monitor ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੇਖੋ ਕਿ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਭੇਜੇ ਜਾ ਰਹੇ ਹਨ।

  7. ਆਪਣੇ ਫਿਜ਼ਿਕਲ ਜਾਂ ਵਰਚੁਅਲ ਡਿਵਾਈਸ ਦੁਆਰਾ ਪਤਾ ਲਗਾਏ ਗਏ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ ਨੂੰ ਢੁਕਵਾਓ। ਤੁਸੀਂ ਟਰਮੀਨਲ ਵਿੱਚ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਹੋਣ ਅਤੇ ਕਮਾਂਡਾਂ ਭੇਜੀਆਂ ਜਾ ਰਹੀਆਂ ਦੇਖੋਗੇ। ਤੁਸੀਂ ਇਹ ਵੀ ਦੇਖੋਗੇ ਕਿ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ ਦੇ ਅਨੁਸਾਰ LED ਚਾਲੂ ਜਾਂ ਬੰਦ ਹੋ ਰਿਹਾ ਹੈ।

💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-commands/wio-terminal ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ।

😀 ਤੁਸੀਂ ਸਫਲਤਾਪੂਰਵਕ ਆਪਣੇ ਡਿਵਾਈਸ ਨੂੰ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਕਮਾਂਡਾਂ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਕੋਡ ਕੀਤਾ ਹੈ।


ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦਾ ਯਤਨ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁੱਛਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਲਿਖਿਆ ਦਸਤਾਵੇਜ਼ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੇ ਪ੍ਰਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।