5.9 KiB
ਆਪਣੀ ਨਾਈਟਲਾਈਟ ਨੂੰ ਇੰਟਰਨੈਟ 'ਤੇ ਕੰਟਰੋਲ ਕਰੋ - Wio Terminal
ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ Wio Terminal ਤੋਂ MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰਾਂ ਨਾਲ ਟੈਲੀਮੇਟਰੀ ਭੇਜੋਗੇ।
JSON Arduino ਲਾਇਬ੍ਰੇਰੀਆਂ ਇੰਸਟਾਲ ਕਰੋ
MQTT 'ਤੇ ਸੁਨੇਹੇ ਭੇਜਣ ਦਾ ਇੱਕ ਲੋਕਪ੍ਰਿਯ ਤਰੀਕਾ JSON ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ। JSON ਲਈ ਇੱਕ Arduino ਲਾਇਬ੍ਰੇਰੀ ਹੈ ਜੋ JSON ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਲਿਖਣ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦੀ ਹੈ।
ਕੰਮ
Arduino JSON ਲਾਇਬ੍ਰੇਰੀ ਇੰਸਟਾਲ ਕਰੋ।
-
VS Code ਵਿੱਚ ਨਾਈਟਲਾਈਟ ਪ੍ਰੋਜੈਕਟ ਖੋਲ੍ਹੋ।
-
platformio.ini
ਫਾਈਲ ਵਿੱਚlib_deps
ਸੂਚੀ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀ ਲਾਈਨ ਨੂੰ ਇੱਕ ਵਾਧੂ ਲਾਈਨ ਵਜੋਂ ਸ਼ਾਮਲ ਕਰੋ:bblanchon/ArduinoJson @ 6.17.3
ਇਹ ArduinoJson, ਇੱਕ Arduino JSON ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਇੰਪੋਰਟ ਕਰਦਾ ਹੈ।
ਟੈਲੀਮੇਟਰੀ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ
ਅਗਲਾ ਕਦਮ ਟੈਲੀਮੇਟਰੀ ਨਾਲ ਇੱਕ JSON ਦਸਤਾਵੇਜ਼ ਬਣਾਉਣਾ ਅਤੇ ਇਸਨੂੰ MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਭੇਜਣਾ ਹੈ।
ਕੰਮ - ਟੈਲੀਮੇਟਰੀ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ
MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਟੈਲੀਮੇਟਰੀ ਭੇਜੋ।
-
config.h
ਫਾਈਲ ਦੇ ਤਲ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ MQTT ਬ੍ਰੋਕਰ ਲਈ ਟੈਲੀਮੇਟਰੀ ਟਾਪਿਕ ਨਾਮ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕੇ:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
ਉਹ ਟਾਪਿਕ ਹੈ ਜਿਸ 'ਤੇ ਡਿਵਾਈਸ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰਾਂ ਨੂੰ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੇਗਾ। -
main.cpp
ਫਾਈਲ ਖੋਲ੍ਹੋ। -
ਫਾਈਲ ਦੇ ਉੱਪਰ ਹੇਠਾਂ ਦਿੱਤਾ
#include
ਡਾਇਰੈਕਟਿਵ ਸ਼ਾਮਲ ਕਰੋ:#include <ArduinoJSON.h>
-
loop
ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ,delay
ਤੋਂ ਥੋੜ੍ਹਾ ਪਹਿਲਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
ਇਹ ਕੋਡ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ArduinoJson ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸ ਪੱਧਰ ਨਾਲ ਇੱਕ JSON ਦਸਤਾਵੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ। ਇਸਨੂੰ ਇੱਕ ਸਤਰ ਵਿੱਚ ਸੀਰੀਅਲਾਈਜ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ MQTT ਕਲਾਇੰਟ ਦੁਆਰਾ ਟੈਲੀਮੇਟਰੀ MQTT ਟਾਪਿਕ 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
-
ਕੋਡ ਨੂੰ ਆਪਣੇ Wio Terminal 'ਤੇ ਅੱਪਲੋਡ ਕਰੋ ਅਤੇ Serial Monitor ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦੇਖੋ ਕਿ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਭੇਜੇ ਜਾ ਰਹੇ ਹਨ।
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-telemetry/wio-terminal ਫੋਲਡਰ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ।
😀 ਤੁਸੀਂ ਸਫਲਤਾਪੂਰਵਕ ਆਪਣੇ ਡਿਵਾਈਸ ਤੋਂ ਟੈਲੀਮੇਟਰੀ ਭੇਜ ਦਿੱਤੀ ਹੈ।
ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਹਾਲਾਂਕਿ ਅਸੀਂ ਸਹੀਅਤ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼, ਜੋ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੈ, ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।