45 KiB
ਆਪਣਾ ਡਿਵਾਈਸ ਇੰਟਰਨੈਟ ਨਾਲ ਜੁੜੋ
ਸਕੈਚਨੋਟ ਨਿਤਿਆ ਨਰਸਿੰਹਨ ਦੁਆਰਾ। ਵੱਡੇ ਵਰਜਨ ਲਈ ਚਿੱਤਰ 'ਤੇ ਕਲਿਕ ਕਰੋ।
ਇਹ ਪਾਠ Hello IoT series ਦੇ ਹਿੱਸੇ ਵਜੋਂ Microsoft Reactor ਤੋਂ ਸਿਖਾਇਆ ਗਿਆ ਸੀ। ਇਹ ਪਾਠ 2 ਵੀਡੀਓਜ਼ ਵਜੋਂ ਸਿਖਾਇਆ ਗਿਆ - ਇੱਕ 1 ਘੰਟੇ ਦਾ ਪਾਠ, ਅਤੇ ਇੱਕ 1 ਘੰਟੇ ਦਾ ਦਫ਼ਤਰ ਘੰਟਾ ਜਿਸ ਵਿੱਚ ਪਾਠ ਦੇ ਹਿੱਸਿਆਂ ਨੂੰ ਵਧੇਰੇ ਗਹਿਰਾਈ ਨਾਲ ਸਮਝਾਇਆ ਗਿਆ ਅਤੇ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੱਤੇ ਗਏ।
🎥 ਉਪਰੋਕਤ ਚਿੱਤਰਾਂ 'ਤੇ ਕਲਿਕ ਕਰਕੇ ਵੀਡੀਓਜ਼ ਦੇਖੋ
ਪਾਠ ਤੋਂ ਪਹਿਲਾਂ ਕਵਿਜ਼
ਪਰਿਚਯ
IoT ਵਿੱਚ I ਦਾ ਅਰਥ Internet ਹੈ - ਕਲਾਉਡ ਕਨੈਕਟਿਵਿਟੀ ਅਤੇ ਸੇਵਾਵਾਂ ਜੋ IoT ਡਿਵਾਈਸਾਂ ਦੇ ਕਈ ਫੀਚਰਾਂ ਨੂੰ ਸੰਭਵ ਬਣਾਉਂਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ਡਿਵਾਈਸ ਨਾਲ ਜੁੜੇ ਸੈਂਸਰਾਂ ਤੋਂ ਮਾਪ ਇਕੱਠੇ ਕਰਨਾ, ਜਾਂ ਐਕਚੁਏਟਰਾਂ ਨੂੰ ਕੰਮ ਕਰਨ ਲਈ ਸੁਨੇਹੇ ਭੇਜਣਾ। ਆਮ ਤੌਰ 'ਤੇ IoT ਡਿਵਾਈਸ ਇੱਕ ਸਿੰਗਲ ਕਲਾਉਡ IoT ਸੇਵਾ ਨਾਲ ਇੱਕ ਮਿਆਰੀ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜੁੜਦੇ ਹਨ, ਅਤੇ ਉਹ ਸੇਵਾ ਤੁਹਾਡੇ IoT ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਬਾਕੀ ਹਿੱਸਿਆਂ ਨਾਲ ਜੁੜੀ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ AI ਸੇਵਾਵਾਂ ਜੋ ਤੁਹਾਡੇ ਡਾਟਾ 'ਤੇ ਸਮਾਰਟ ਫੈਸਲੇ ਲੈਂਦੀਆਂ ਹਨ, ਜਾਂ ਕੰਟਰੋਲ ਜਾਂ ਰਿਪੋਰਟਿੰਗ ਲਈ ਵੈੱਬ ਐਪਸ।
🎓 ਸੈਂਸਰਾਂ ਤੋਂ ਇਕੱਠੇ ਕੀਤਾ ਗਿਆ ਡਾਟਾ ਅਤੇ ਕਲਾਉਡ ਨੂੰ ਭੇਜਿਆ ਗਿਆ ਡਾਟਾ ਟੈਲੀਮੈਟਰੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
IoT ਡਿਵਾਈਸ ਕਲਾਉਡ ਤੋਂ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ। ਅਕਸਰ ਇਹ ਸੁਨੇਹੇ ਹੁਕਮ ਹੁੰਦੇ ਹਨ - ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ (ਜਿਵੇਂ ਕਿ ਰੀਬੂਟ ਜਾਂ ਫਰਮਵੇਅਰ ਅਪਡੇਟ) ਜਾਂ ਐਕਚੁਏਟਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ (ਜਿਵੇਂ ਕਿ ਲਾਈਟ ਚਾਲੂ ਕਰਨਾ) ਕੋਈ ਕਾਰਵਾਈ ਕਰਨ ਦੇ ਨਿਰਦੇਸ਼।
ਇਸ ਪਾਠ ਵਿੱਚ ਕੁਝ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲਾਂ ਦੀ ਜਾਣਕਾਰੀ ਦਿੱਤੀ ਗਈ ਹੈ ਜੋ IoT ਡਿਵਾਈਸ ਕਲਾਉਡ ਨਾਲ ਜੁੜਨ ਲਈ ਵਰਤ ਸਕਦੇ ਹਨ, ਅਤੇ ਉਹ ਡਾਟਾ ਜੋ ਉਹ ਭੇਜ ਸਕਦੇ ਹਨ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ। ਤੁਸੀਂ ਇਸ ਪਾਠ ਵਿੱਚ ਦੋਵੇਂ 'ਤੇ ਹੱਥ ਅਜ਼ਮਾਓਗੇ, ਆਪਣੇ ਨਾਈਟਲਾਈਟ ਵਿੱਚ ਇੰਟਰਨੈਟ ਕੰਟਰੋਲ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋਏ, LED ਕੰਟਰੋਲ ਲਾਜਿਕ ਨੂੰ 'ਸਰਵਰ' ਕੋਡ ਵਿੱਚ ਲੈ ਕੇ ਜੋ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ।
ਇਸ ਪਾਠ ਵਿੱਚ ਅਸੀਂ ਕਵਰ ਕਰਾਂਗੇ:
ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲ
ਕਈ ਪ੍ਰਸਿੱਧ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲ ਹਨ ਜੋ IoT ਡਿਵਾਈਸ ਇੰਟਰਨੈਟ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ ਵਰਤਦੇ ਹਨ। ਸਭ ਤੋਂ ਪ੍ਰਸਿੱਧ ਪ੍ਰੋਟੋਕੋਲ ਪਬਲਿਸ਼/ਸਬਸਕ੍ਰਾਈਬ ਸੁਨੇਹਾ ਸਿਸਟਮ 'ਤੇ ਆਧਾਰਿਤ ਹੁੰਦੇ ਹਨ ਜੋ ਕਿਸੇ ਬ੍ਰੋਕਰ ਦੁਆਰਾ ਸੰਚਾਲਿਤ ਹੁੰਦੇ ਹਨ। IoT ਡਿਵਾਈਸ ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜਦੇ ਹਨ ਅਤੇ ਟੈਲੀਮੈਟਰੀ ਪਬਲਿਸ਼ ਕਰਦੇ ਹਨ ਅਤੇ ਹੁਕਮਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦੇ ਹਨ। ਕਲਾਉਡ ਸੇਵਾਵਾਂ ਵੀ ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜਦੀਆਂ ਹਨ ਅਤੇ ਸਾਰੇ ਟੈਲੀਮੈਟਰੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਡਿਵਾਈਸਾਂ ਜਾਂ ਡਿਵਾਈਸਾਂ ਦੇ ਸਮੂਹਾਂ ਨੂੰ ਹੁਕਮ ਪਬਲਿਸ਼ ਕਰਦੀਆਂ ਹਨ।
MQTT IoT ਡਿਵਾਈਸਾਂ ਲਈ ਸਭ ਤੋਂ ਪ੍ਰਸਿੱਧ ਸੰਚਾਰ ਪ੍ਰੋਟੋਕੋਲ ਹੈ ਅਤੇ ਇਸ ਪਾਠ ਵਿੱਚ ਕਵਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਹੋਰ ਪ੍ਰੋਟੋਕੋਲ ਵਿੱਚ AMQP ਅਤੇ HTTP/HTTPS ਸ਼ਾਮਲ ਹਨ।
ਮੇਸੇਜ ਕਿਊਇੰਗ ਟੈਲੀਮੈਟਰੀ ਟ੍ਰਾਂਸਪੋਰਟ (MQTT)
MQTT ਇੱਕ ਹਲਕਾ, ਖੁੱਲ੍ਹਾ ਮਿਆਰ ਸੰਦੇਸ਼ ਪ੍ਰੋਟੋਕੋਲ ਹੈ ਜੋ ਡਿਵਾਈਸਾਂ ਦੇ ਵਿਚਕਾਰ ਸੁਨੇਹੇ ਭੇਜ ਸਕਦਾ ਹੈ। ਇਹ 1999 ਵਿੱਚ ਤੇਲ ਪਾਈਪਲਾਈਨਾਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਗਿਆ ਸੀ, ਅਤੇ 15 ਸਾਲ ਬਾਅਦ IBM ਦੁਆਰਾ ਇੱਕ ਖੁੱਲ੍ਹੇ ਮਿਆਰ ਵਜੋਂ ਜਾਰੀ ਕੀਤਾ ਗਿਆ।
MQTT ਵਿੱਚ ਇੱਕ ਸਿੰਗਲ ਬ੍ਰੋਕਰ ਅਤੇ ਕਈ ਕਲਾਇੰਟ ਹੁੰਦੇ ਹਨ। ਸਾਰੇ ਕਲਾਇੰਟ ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜਦੇ ਹਨ, ਅਤੇ ਬ੍ਰੋਕਰ ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਸਬੰਧਤ ਕਲਾਇੰਟਾਂ ਤੱਕ ਪਹੁੰਚਾਉਂਦਾ ਹੈ। ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਨਾਂਦਤ ਵਿਸ਼ਿਆਂ (topics) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੂਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਨਾ ਕਿ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਕਿਸੇ ਵਿਅਕਤੀਗਤ ਕਲਾਇੰਟ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਕਲਾਇੰਟ ਕਿਸੇ ਵਿਸ਼ੇ 'ਤੇ ਪਬਲਿਸ਼ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਕੋਈ ਵੀ ਕਲਾਇੰਟ ਜੋ ਉਸ ਵਿਸ਼ੇ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦਾ ਹੈ, ਉਹ ਸੰਦੇਸ਼ ਪ੍ਰਾਪਤ ਕਰੇਗਾ।
✅ ਕੁਝ ਖੋਜ ਕਰੋ। ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਕਈ IoT ਡਿਵਾਈਸ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋ ਕਿ ਤੁਹਾਡਾ MQTT ਬ੍ਰੋਕਰ ਸਾਰੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ?
ਆਪਣਾ IoT ਡਿਵਾਈਸ MQTT ਨਾਲ ਜੁੜੋ
ਆਪਣੇ ਨਾਈਟਲਾਈਟ ਵਿੱਚ ਇੰਟਰਨੈਟ ਕੰਟਰੋਲ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਪਹਿਲਾ ਹਿੱਸਾ ਇਸਨੂੰ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜਨਾ ਹੈ।
ਟਾਸਕ
ਆਪਣੇ ਡਿਵਾਈਸ ਨੂੰ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜੋ।
ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ IoT ਨਾਈਟਲਾਈਟ ਨੂੰ ਇੰਟਰਨੈਟ ਨਾਲ ਜੁੜਨਗੇ ਤਾਂ ਜੋ ਇਸਨੂੰ ਦੂਰ ਤੋਂ ਕੰਟਰੋਲ ਕੀਤਾ ਜਾ ਸਕੇ। ਇਸ ਪਾਠ ਵਿੱਚ ਬਾਅਦ ਵਿੱਚ, ਤੁਹਾਡਾ IoT ਡਿਵਾਈਸ ਇੱਕ ਪਬਲਿਕ MQTT ਬ੍ਰੋਕਰ ਨੂੰ ਲਾਈਟ ਲੈਵਲ ਦੇ ਨਾਲ ਇੱਕ ਟੈਲੀਮੈਟਰੀ ਸੁਨੇਹਾ ਭੇਜੇਗਾ, ਜਿੱਥੇ ਇਹ ਕੁਝ ਸਰਵਰ ਕੋਡ ਦੁਆਰਾ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾਵੇਗਾ ਜੋ ਤੁਸੀਂ ਲਿਖੋਗੇ। ਇਹ ਕੋਡ ਲਾਈਟ ਲੈਵਲ ਦੀ ਜਾਂਚ ਕਰੇਗਾ ਅਤੇ ਡਿਵਾਈਸ ਨੂੰ LED ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰਨ ਲਈ ਹੁਕਮ ਸੁਨੇਹਾ ਵਾਪਸ ਭੇਜੇਗਾ।
ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਸੈਟਅਪ ਲਈ ਅਸਲ-ਦੁਨੀਆ ਦੀ ਵਰਤੋਂ ਦਾ ਕੇਸ ਇਹ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕਈ ਲਾਈਟ ਸੈਂਸਰਾਂ ਤੋਂ ਡਾਟਾ ਇਕੱਠਾ ਕੀਤਾ ਜਾਵੇ ਅਤੇ ਫਿਰ ਲਾਈਟਾਂ ਚਾਲੂ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਜਾਵੇ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਸਟੇਡੀਅਮ ਵਿੱਚ ਜਿੱਥੇ ਕਈ ਲਾਈਟਾਂ ਹਨ। ਇਹ ਲਾਈਟਾਂ ਨੂੰ ਚਾਲੂ ਕਰਨ ਤੋਂ ਰੋਕ ਸਕਦਾ ਹੈ ਜੇ ਸਿਰਫ ਇੱਕ ਸੈਂਸਰ ਬੱਦਲਾਂ ਜਾਂ ਪੰਛੀ ਦੁਆਰਾ ਢੱਕਿਆ ਗਿਆ ਹੋਵੇ, ਪਰ ਹੋਰ ਸੈਂਸਰ ਕਾਫ਼ੀ ਰੋਸ਼ਨੀ ਦਾ ਪਤਾ ਲਗਾਉਂਦੇ ਹਨ।
✅ ਹੋਰ ਕਿਹੜੇ ਹਾਲਾਤਾਂ ਵਿੱਚ ਕਈ ਸੈਂਸਰਾਂ ਤੋਂ ਡਾਟਾ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ?
ਇਸ ਅਸਾਈਨਮੈਂਟ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਸੈਟਅਪ ਕਰਨ ਦੀ ਜਟਿਲਤਾ ਨਾਲ ਨਜਿੱਠਣ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਇੱਕ ਪਬਲਿਕ ਟੈਸਟ ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ Eclipse Mosquitto, ਇੱਕ ਖੁੱਲ੍ਹਾ-ਸਰੋਤ MQTT ਬ੍ਰੋਕਰ ਚਲਾਉਂਦਾ ਹੈ। ਇਹ ਟੈਸਟ ਬ੍ਰੋਕਰ test.mosquitto.org 'ਤੇ ਪਬਲਿਕ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਸੈਟਅਪ ਕਰਨ ਲਈ ਕਿਸੇ ਖਾਤੇ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਜਿਸ ਕਰਕੇ ਇਹ MQTT ਕਲਾਇੰਟਾਂ ਅਤੇ ਸਰਵਰਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਸ਼ਾਨਦਾਰ ਟੂਲ ਹੈ।
💁 ਇਹ ਟੈਸਟ ਬ੍ਰੋਕਰ ਪਬਲਿਕ ਹੈ ਅਤੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ। ਕੋਈ ਵੀ ਤੁਹਾਡੇ ਪਬਲਿਸ਼ ਕੀਤੇ ਗਏ ਡਾਟਾ ਨੂੰ ਸੁਣ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਕਿਸੇ ਵੀ ਡਾਟਾ ਨਾਲ ਵਰਤਿਆ ਨਹੀਂ ਜਾਣਾ ਚਾਹੀਦਾ ਜਿਸਨੂੰ ਗੁਪਤ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੇ ਸਟੈਪ ਦੀ ਪਾਲਣਾ ਕਰੋ ਤਾਂ ਜੋ ਆਪਣੇ ਡਿਵਾਈਸ ਨੂੰ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਜੁੜ ਸਕੋ:
MQTT ਵਿੱਚ ਗਹਿਰਾਈ ਨਾਲ ਜਾਣਕਾਰੀ
ਵਿਸ਼ਿਆਂ (topics) ਵਿੱਚ ਇੱਕ ਹਾਇਰਾਰਕੀ ਹੋ ਸਕਦੀ ਹੈ, ਅਤੇ ਕਲਾਇੰਟ ਵਾਇਲਡਕਾਰਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹਾਇਰਾਰਕੀ ਦੇ ਵੱਖ-ਵੱਖ ਪੱਧਰਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰ ਸਕਦੇ ਹਨ। ਉਦਾਹਰਣ ਲਈ, ਤੁਸੀਂ ਤਾਪਮਾਨ ਟੈਲੀਮੈਟਰੀ ਸੁਨੇਹੇ /telemetry/temperature
ਵਿਸ਼ੇ 'ਤੇ ਭੇਜ ਸਕਦੇ ਹੋ ਅਤੇ ਨਮੀ ਸੁਨੇਹੇ /telemetry/humidity
ਵਿਸ਼ੇ 'ਤੇ ਭੇਜ ਸਕਦੇ ਹੋ, ਫਿਰ ਆਪਣੇ ਕਲਾਉਡ ਐਪ ਵਿੱਚ /telemetry/*
ਵਿਸ਼ੇ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਕੇ ਤਾਪਮਾਨ ਅਤੇ ਨਮੀ ਦੋਵੇਂ ਟੈਲੀਮੈਟਰੀ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।
ਸੁਨੇਹੇ ਇੱਕ ਗੁਣਵੱਤਾ ਸੇਵਾ (QoS) ਦੇ ਨਾਲ ਭੇਜੇ ਜਾ ਸਕਦੇ ਹਨ, ਜੋ ਸੁਨੇਹੇ ਦੇ ਪ੍ਰਾਪਤ ਹੋਣ ਦੀ ਗਰੰਟੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
- ਇੱਕ ਵਾਰ ਤੋਂ ਵੱਧ ਨਹੀਂ - ਸੁਨੇਹਾ ਸਿਰਫ ਇੱਕ ਵਾਰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਕਲਾਇੰਟ ਅਤੇ ਬ੍ਰੋਕਰ ਡਿਲਿਵਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕੋਈ ਵਾਧੂ ਕਦਮ ਨਹੀਂ ਲੈਂਦੇ (ਫਾਇਰ ਅਤੇ ਭੁੱਲ ਜਾਓ)।
- ਘੱਟ ਤੋਂ ਘੱਟ ਇੱਕ ਵਾਰ - ਸੁਨੇਹਾ ਭੇਜਣ ਵਾਲੇ ਦੁਆਰਾ ਕਈ ਵਾਰ ਦੁਹਰਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦ ਤੱਕ ਪੁਸ਼ਟੀ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੁੰਦੀ (ਪੁਸ਼ਟੀ ਕੀਤੀ ਡਿਲਿਵਰੀ)।
- ਸਿਰਫ ਇੱਕ ਵਾਰ - ਭੇਜਣ ਵਾਲਾ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲਾ ਇੱਕ ਦੋ-ਪੱਧਰ ਹੈਂਡਸ਼ੇਕ ਵਿੱਚ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਤਾਂ ਜੋ ਸਿਰਫ ਇੱਕ ਨਕਲ ਸੁਨੇਹੇ ਦੀ ਪ੍ਰਾਪਤੀ ਹੋਵੇ (ਸੁਨਿਸ਼ਚਿਤ ਡਿਲਿਵਰੀ)।
✅ ਕਿਹੜੇ ਹਾਲਾਤਾਂ ਵਿੱਚ ਸੁਨਿਸ਼ਚਿਤ ਡਿਲਿਵਰੀ ਸੁਨੇਹੇ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਫਾਇਰ ਅਤੇ ਭੁੱਲ ਸੁਨੇਹੇ ਦੇ ਬਦਲੇ?
ਹਾਲਾਂਕਿ ਨਾਮ Message Queueing (MQTT ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਅੱਖਰ), ਇਹ ਅਸਲ ਵਿੱਚ ਸੁਨੇਹਾ ਕਿਊਜ਼ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ। ਇਸਦਾ ਅਰਥ ਹੈ ਕਿ ਜੇਕਰ ਕੋਈ ਕਲਾਇੰਟ ਡਿਸਕਨੈਕਟ ਹੋ ਜਾਂਦਾ ਹੈ, ਫਿਰ ਦੁਬਾਰਾ ਕਨੈਕਟ ਹੁੰਦਾ ਹੈ ਤਾਂ ਇਹ ਡਿਸਕਨੈਕਸ਼ਨ ਦੌਰਾਨ ਭੇਜੇ ਗਏ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰੇਗਾ, ਸਿਵਾਏ ਉਹਨਾਂ ਸੁਨੇਹਿਆਂ ਦੇ ਜੋ ਇਸਨੇ ਪਹਿਲਾਂ ਹੀ QoS ਪ੍ਰਕਿਰਿਆ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤੇ ਹਨ। ਸੁਨੇਹਿਆਂ 'ਤੇ ਇੱਕ ਰਿਟੇਨਡ ਫਲੈਗ ਸੈਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਜੇਕਰ ਇਹ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ MQTT ਬ੍ਰੋਕਰ ਉਸ ਵਿਸ਼ੇ 'ਤੇ ਭੇਜੇ ਗਏ ਆਖਰੀ ਸੁਨੇਹੇ ਨੂੰ ਇਸ ਫਲੈਗ ਨਾਲ ਸਟੋਰ ਕਰੇਗਾ, ਅਤੇ ਇਸ ਵਿਸ਼ੇ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸਬਸਕ੍ਰਾਈਬ ਕਰਨ ਵਾਲੇ ਕਿਸੇ ਵੀ ਕਲਾਇੰਟ ਨੂੰ ਭੇਜੇਗਾ। ਇਸ ਤਰੀਕੇ ਨਾਲ, ਕਲਾਇੰਟਾਂ ਨੂੰ ਹਮੇਸ਼ਾ ਆਖਰੀ ਸੁਨੇਹਾ ਮਿਲੇਗਾ।
MQTT ਇੱਕ ਕੀਪ ਅਲਾਈਵ ਫੰਕਸ਼ਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਜੋ ਸੁਨੇਹਿਆਂ ਦੇ ਲੰਬੇ ਅੰਤਰਾਲ ਦੌਰਾਨ ਕਨੈਕਸ਼ਨ ਦੇ ਜੀਵਤ ਹੋਣ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
🦟 Mosquitto from the Eclipse Foundation ਇੱਕ ਮੁਫ਼ਤ MQTT ਬ੍ਰੋਕਰ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਆਪਣੇ ਆਪ ਚਲਾ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ MQTT ਨਾਲ ਪ੍ਰਯੋਗ ਕੀਤਾ ਜਾ ਸਕੇ, ਨਾਲ ਹੀ ਇੱਕ ਪਬਲਿਕ MQTT ਬ੍ਰੋਕਰ ਜਿਸਦੀ ਵਰਤੋਂ ਤੁਸੀਂ ਆਪਣੇ ਕੋਡ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਕਰ ਸਕਦੇ ਹੋ, ਜੋ test.mosquitto.org 'ਤੇ ਹੋਸਟ ਕੀਤਾ ਗਿਆ ਹੈ।
MQTT ਕਨੈਕਸ਼ਨ ਪਬਲਿਕ ਅਤੇ ਖੁੱਲ੍ਹੇ ਹੋ ਸਕਦੇ ਹਨ, ਜਾਂ ਯੂਜ਼ਰਨੇਮ ਅਤੇ ਪਾਸਵਰਡ ਜਾਂ ਸਰਟੀਫਿਕੇਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੰਕ੍ਰਿਪਟ ਅਤੇ ਸੁਰੱਖਿਅਤ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।
💁 MQTT TCP/IP 'ਤੇ ਸੰਚਾਰ ਕਰਦਾ ਹੈ, ਜੋ HTTP ਦੇ ਤਹਿਤ ਇੱਕੋ ਜਾਲ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਪਰ ਇੱਕ ਵੱਖਰੇ ਪੋਰਟ 'ਤੇ। ਤੁਸੀਂ MQTT ਨੂੰ ਵੈਬਸਾਕਟਸ ਦੇ ਜ਼ਰੀਏ ਵੀ ਵਰਤ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ ਵੈਬ ਐਪਸ ਨਾਲ ਸੰਚਾਰ ਕੀਤਾ ਜਾ ਸਕੇ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚੱਲ ਰਹੀਆਂ ਹਨ, ਜਾਂ ਜਿੱਥੇ ਫਾਇਰਵਾਲ ਜਾਂ ਹੋਰ ਨੈਟਵਰਕਿੰਗ ਨਿਯਮ ਮਿਆਰੀ MQTT ਕਨੈਕਸ਼ਨ ਨੂੰ ਰੋਕਦੇ ਹਨ।
ਟੈਲੀਮੈਟਰੀ
ਟੈਲੀਮੈਟਰੀ ਸ਼ਬਦ ਗ੍ਰੀਕ ਮ ਤੁਹਾਨੂੰ ਆਪਣਾ ਮਨਪਸੰਦ ਟੂਲ ਵਰਤਣ ਦੀ ਆਜ਼ਾਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਕੋਈ ਵੀ Python IDE ਜਾਂ ਐਡੀਟਰ, ਪਰ ਪਾਠਾਂ ਵਿੱਚ VS Code ਦੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ 'ਤੇ ਹਦਾਇਤਾਂ ਦਿੱਤੀਆਂ ਜਾਣਗੀਆਂ।
- VS Code ਵਿੱਚ Pylance ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲ ਕਰੋ। ਇਹ VS Code ਲਈ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਹੈ ਜੋ Python ਭਾਸ਼ਾ ਦਾ ਸਮਰਥਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। VS Code ਵਿੱਚ ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ Pylance ਐਕਸਟੈਂਸ਼ਨ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਵੇਖੋ।
Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਕਨਫਿਗਰ ਕਰੋ
Python ਦੀ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਵਿਸ਼ੇਸ਼ਤਾ pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਯੋਗਤਾ ਹੈ - ਇਹ ਇੰਟਰਨੈਟ 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋਏ ਹੋਰ ਲੋਕਾਂ ਦੁਆਰਾ ਲਿਖੇ ਕੋਡ ਦੇ ਪੈਕੇਜ ਹਨ। ਤੁਸੀਂ ਇੱਕ ਕਮਾਂਡ ਨਾਲ ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਤੇ pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਫਿਰ ਉਸ ਪੈਕੇਜ ਨੂੰ ਆਪਣੇ ਕੋਡ ਵਿੱਚ ਵਰਤ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ MQTT 'ਤੇ ਸੰਚਾਰ ਕਰਨ ਲਈ ਇੱਕ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ pip ਦੀ ਵਰਤੋਂ ਕਰੋਗੇ।
ਡਿਫਾਲਟ ਤੌਰ 'ਤੇ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਦੇ ਹੋ ਤਾਂ ਇਹ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਹਰ ਜਗ੍ਹਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਪੈਕੇਜ ਵਰਜਨ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਕਰ ਸਕਦਾ ਹੈ - ਜਿਵੇਂ ਕਿ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਇੱਕ ਪੈਕੇਜ ਦੇ ਇੱਕ ਵਰਜਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਜੋ ਇੱਕ ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਨਵਾਂ ਵਰਜਨ ਇੰਸਟਾਲ ਕਰਨ 'ਤੇ ਟੁੱਟ ਜਾਂਦਾ ਹੈ। ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਤੁਸੀਂ Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ, ਅਸਲ ਵਿੱਚ Python ਦੀ ਇੱਕ ਨਕਲ ਇੱਕ ਸਮਰਪਿਤ ਫੋਲਡਰ ਵਿੱਚ, ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਦੇ ਹੋ ਤਾਂ ਉਹ ਸਿਰਫ ਉਸ ਫੋਲਡਰ ਵਿੱਚ ਇੰਸਟਾਲ ਹੁੰਦੇ ਹਨ।
ਟਾਸਕ - Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਕਨਫਿਗਰ ਕਰੋ
Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਕਨਫਿਗਰ ਕਰੋ ਅਤੇ MQTT pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ।
-
ਆਪਣੇ ਟਰਮੀਨਲ ਜਾਂ ਕਮਾਂਡ ਲਾਈਨ ਤੋਂ, ਇੱਕ ਨਵੀਂ ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਅਤੇ ਇਸ ਵਿੱਚ ਜਾਓ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:
mkdir nightlight-server cd nightlight-server
-
ਹੁਣ
.venv
ਫੋਲਡਰ ਵਿੱਚ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਉਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:python3 -m venv .venv
💁 ਤੁਹਾਨੂੰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ
python3
ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਤਾਂ ਕਿ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਇਆ ਜਾ ਸਕੇ, ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ Python 2 ਇੰਸਟਾਲ ਹੈ Python 3 ਦੇ ਨਾਲ (ਤਾਜ਼ਾ ਵਰਜਨ)। ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ Python2 ਇੰਸਟਾਲ ਹੈ ਤਾਂpython
ਨੂੰ ਕਾਲ ਕਰਨ 'ਤੇ Python 2 ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇਗੀ Python 3 ਦੀ ਬਜਾਏ। -
ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰੋ:
-
Windows 'ਤੇ:
-
ਜੇਕਰ ਤੁਸੀਂ Command Prompt ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਜਾਂ Windows Terminal ਦੁਆਰਾ Command Prompt ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:
.venv\Scripts\activate.bat
-
ਜੇਕਰ ਤੁਸੀਂ PowerShell ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:
.\.venv\Scripts\Activate.ps1
-
-
macOS ਜਾਂ Linux 'ਤੇ, ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:
source ./.venv/bin/activate
💁 ਇਹ ਕਮਾਂਡ ਉਸੇ ਸਥਾਨ ਤੋਂ ਚਲਾਈਆਂ ਜਾਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਜਿੱਥੇ ਤੁਸੀਂ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਉਣ ਲਈ ਕਮਾਂਡ ਚਲਾਈ ਸੀ। ਤੁਹਾਨੂੰ
.venv
ਫੋਲਡਰ ਵਿੱਚ ਕਦੇ ਵੀ ਨਹੀਂ ਜਾਣਾ ਚਾਹੀਦਾ, ਤੁਹਾਨੂੰ ਹਮੇਸ਼ਾ ਐਕਟੀਵੇਟ ਕਮਾਂਡ ਅਤੇ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਜਾਂ ਕੋਡ ਚਲਾਉਣ ਲਈ ਕਮਾਂਡ ਉਸ ਫੋਲਡਰ ਤੋਂ ਚਲਾਉਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਜਿੱਥੇ ਤੁਸੀਂ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਇਆ ਸੀ। -
-
ਜਦੋਂ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਐਕਟੀਵੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਡਿਫਾਲਟ
python
ਕਮਾਂਡ ਉਸ Python ਵਰਜਨ ਨੂੰ ਚਲਾਏਗੀ ਜੋ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ ਸੀ। ਵਰਜਨ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:python --version
ਆਉਟਪੁੱਟ ਹੇਠਾਂ ਦਿੱਤੇ ਦੇ ਸਮਾਨ ਹੋਵੇਗਾ:
(.venv) ➜ nightlight-server python --version Python 3.9.1
💁 ਤੁਹਾਡਾ Python ਵਰਜਨ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ - ਜੇਕਰ ਇਹ ਵਰਜਨ 3.6 ਜਾਂ ਇਸ ਤੋਂ ਉੱਚਾ ਹੈ ਤਾਂ ਤੁਸੀਂ ਠੀਕ ਹੋ। ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਇਸ ਫੋਲਡਰ ਨੂੰ ਮਿਟਾਓ, Python ਦਾ ਨਵਾਂ ਵਰਜਨ ਇੰਸਟਾਲ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
-
Paho-MQTT ਲਈ pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ, ਜੋ ਕਿ ਇੱਕ ਪ੍ਰਸਿੱਧ MQTT ਲਾਇਬ੍ਰੇਰੀ ਹੈ।
pip install paho-mqtt
ਇਹ pip ਪੈਕੇਜ ਸਿਰਫ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਿੱਚ ਇੰਸਟਾਲ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਇਸ ਤੋਂ ਬਾਹਰ ਉਪਲਬਧ ਨਹੀਂ ਹੋਵੇਗਾ।
ਸਰਵਰ ਕੋਡ ਲਿਖੋ
ਹੁਣ ਸਰਵਰ ਕੋਡ Python ਵਿੱਚ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਟਾਸਕ - ਸਰਵਰ ਕੋਡ ਲਿਖੋ
ਸਰਵਰ ਕੋਡ ਲਿਖੋ।
-
ਆਪਣੇ ਟਰਮੀਨਲ ਜਾਂ ਕਮਾਂਡ ਲਾਈਨ ਤੋਂ, ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ ਤਾਂ ਜੋ
app.py
ਨਾਮਕ ਇੱਕ Python ਫਾਈਲ ਬਣਾਈ ਜਾ ਸਕੇ:-
Windows ਤੋਂ:
type nul > app.py
-
macOS ਜਾਂ Linux 'ਤੇ:
touch app.py
-
-
ਮੌਜੂਦਾ ਫੋਲਡਰ ਨੂੰ VS Code ਵਿੱਚ ਖੋਲ੍ਹੋ:
code .
-
ਜਦੋਂ VS Code ਲਾਂਚ ਹੁੰਦਾ ਹੈ, ਇਹ Python ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰੇਗਾ। ਇਹ ਹੇਠਾਂ ਸਟੇਟਸ ਬਾਰ ਵਿੱਚ ਦਰਸਾਇਆ ਜਾਵੇਗਾ:
-
ਜੇਕਰ VS Code ਟਰਮੀਨਲ ਪਹਿਲਾਂ ਹੀ ਚਲ ਰਿਹਾ ਹੈ ਜਦੋਂ VS Code ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਸ ਵਿੱਚ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਐਕਟੀਵੇਟ ਨਹੀਂ ਹੋਵੇਗਾ। ਸਭ ਤੋਂ ਆਸਾਨ ਗੱਲ ਟਰਮੀਨਲ ਨੂੰ Kill the active terminal instance ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਾਰਨਾ ਹੈ:
-
VS Code ਟਰਮੀਨਲ ਨੂੰ ਨਵਾਂ ਲਾਂਚ ਕਰੋ Terminal -> New Terminal ਚੁਣ ਕੇ, ਜਾਂ
CTRL+`
ਦਬਾ ਕੇ। ਨਵਾਂ ਟਰਮੀਨਲ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਨੂੰ ਲੋਡ ਕਰੇਗਾ, ਇਸ ਨੂੰ ਐਕਟੀਵੇਟ ਕਰਨ ਲਈ ਕਾਲ ਟਰਮੀਨਲ ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗੀ। ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ (.venv
) ਦਾ ਨਾਮ ਪ੍ਰੰਪਟ ਵਿੱਚ ਵੀ ਹੋਵੇਗਾ:➜ nightlight-server source .venv/bin/activate (.venv) ➜ nightlight
-
VS Code ਐਕਸਪਲੋਰਰ ਤੋਂ
app.py
ਫਾਈਲ ਖੋਲ੍ਹੋ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:import json import time import paho.mqtt.client as mqtt id = '<ID>' client_telemetry_topic = id + '/telemetry' client_name = id + 'nightlight_server' mqtt_client = mqtt.Client(client_name) mqtt_client.connect('test.mosquitto.org') mqtt_client.loop_start() def handle_telemetry(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) mqtt_client.subscribe(client_telemetry_topic) mqtt_client.on_message = handle_telemetry while True: time.sleep(2)
ਲਾਈਨ 6 'ਤੇ
<ID>
ਨੂੰ ਉਸ ਯੂਨੀਕ ID ਨਾਲ ਬਦਲੋ ਜੋ ਤੁਸੀਂ ਆਪਣਾ ਡਿਵਾਈਸ ਕੋਡ ਬਣਾਉਣ ਸਮੇਂ ਵਰਤਿਆ ਸੀ।⚠️ ਇਹ ਲਾਜ਼ਮੀ ਹੈ ਕਿ ਇਹ ID ਉਹੀ ਹੋਵੇ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਡਿਵਾਈਸ 'ਤੇ ਵਰਤੀ ਸੀ, ਨਹੀਂ ਤਾਂ ਸਰਵਰ ਕੋਡ ਸਹੀ ਟਾਪਿਕ 'ਤੇ ਸਬਸਕ੍ਰਾਈਬ ਜਾਂ ਪਬਲਿਸ਼ ਨਹੀਂ ਕਰੇਗਾ।
ਇਹ ਕੋਡ ਇੱਕ ਯੂਨੀਕ ਨਾਮ ਨਾਲ ਇੱਕ MQTT ਕਲਾਇੰਟ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ test.mosquitto.org ਬ੍ਰੋਕਰ ਨਾਲ ਕਨੈਕਟ ਕਰਦਾ ਹੈ। ਫਿਰ ਇਹ ਇੱਕ ਪ੍ਰੋਸੈਸਿੰਗ ਲੂਪ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਜੋ ਬੈਕਗ੍ਰਾਊਂਡ ਥ੍ਰੈਡ ਵਿੱਚ ਚਲਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਵੀ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਟਾਪਿਕ 'ਤੇ ਸੁਨੇਹੇ ਸੁਣਦਾ ਹੈ।
ਕਲਾਇੰਟ ਫਿਰ ਟੈਲੀਮੇਟਰੀ ਟਾਪਿਕ 'ਤੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੋ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜਦੋਂ ਇੱਕ ਟੈਲੀਮੇਟਰੀ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ,
handle_telemetry
ਫੰਕਸ਼ਨ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਪ੍ਰਾਪਤ ਸੁਨੇਹਾ ਕੰਸੋਲ 'ਤੇ ਪ੍ਰਿੰਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।ਆਖਿਰਕਾਰ ਇੱਕ ਅਨੰਤ ਲੂਪ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਚਲਾਉਂਦਾ ਰੱਖਦਾ ਹੈ। MQTT ਕਲਾਇੰਟ ਬੈਕਗ੍ਰਾਊਂਡ ਥ੍ਰੈਡ 'ਤੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੁਣ ਰਿਹਾ ਹੈ ਅਤੇ ਮੁੱਖ ਐਪਲੀਕੇਸ਼ਨ ਚਲ ਰਹੀ ਹੈ ਜਦੋਂ ਤੱਕ ਇਹ ਚਲਦਾ ਹੈ।
-
VS Code ਟਰਮੀਨਲ ਤੋਂ, ਆਪਣੀ Python ਐਪ ਚਲਾਉਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਕਮਾਂਡ ਚਲਾਓ:
python app.py
ਐਪ IoT ਡਿਵਾਈਸ ਤੋਂ ਸੁਨੇਹੇ ਸੁਣਨਾ ਸ਼ੁਰੂ ਕਰੇਗਾ।
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ ਡਿਵਾਈਸ ਚਲ ਰਿਹਾ ਹੈ ਅਤੇ ਟੈਲੀਮੇਟਰੀ ਸੁਨੇਹੇ ਭੇਜ ਰਿਹਾ ਹੈ। ਆਪਣੇ ਭੌਤਿਕ ਜਾਂ ਵਰਚੁਅਲ ਡਿਵਾਈਸ ਦੁਆਰਾ ਪਤਾ ਲਗਾਏ ਗਏ ਰੌਸ਼ਨੀ ਦੇ ਪੱਧਰ ਨੂੰ ਸਮਾਯੋਜਿਤ ਕਰੋ। ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਰਹੇ ਸੁਨੇਹੇ ਟਰਮੀਨਲ ਵਿੱਚ ਪ੍ਰਿੰਟ ਕੀਤੇ ਜਾਣਗੇ।
(.venv) ➜ nightlight-server python app.py Message received: {'light': 0} Message received: {'light': 400}
nightlight ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਿੱਚ
app.py
ਫਾਈਲ ਚਲ ਰਹੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਤਾਂ ਜੋ nightlight-server ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਿੱਚapp.py
ਫਾਈਲ ਭੇਜੇ ਜਾ ਰਹੇ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕੇ।
💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-server/server ਫੋਲਡਰ ਵਿੱਚ ਪਾ ਸਕਦੇ ਹੋ।
ਟੈਲੀਮੇਟਰੀ ਕਿੰਨੀ ਵਾਰ ਭੇਜੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ?
ਟੈਲੀਮੇਟਰੀ ਨਾਲ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਵਿਚਾਰ ਇਹ ਹੈ ਕਿ ਡੇਟਾ ਨੂੰ ਮਾਪਣ ਅਤੇ ਭੇਜਣ ਲਈ ਕਿੰਨੀ ਵਾਰ? ਜਵਾਬ ਹੈ - ਇਹ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਵਾਰ-ਵਾਰ ਮਾਪਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਮਾਪਾਂ ਵਿੱਚ ਬਦਲਾਅ ਦਾ ਤੇਜ਼ੀ ਨਾਲ ਜਵਾਬ ਦੇ ਸਕਦੇ ਹੋ, ਪਰ ਤੁਸੀਂ ਜ਼ਿਆਦਾ ਪਾਵਰ, ਜ਼ਿਆਦਾ ਬੈਂਡਵਿਡਥ ਵਰਤਦੇ ਹੋ, ਜ਼ਿਆਦਾ ਡੇਟਾ ਪੈਦਾ ਕਰਦੇ ਹੋ ਅਤੇ ਕਲਾਉਡ ਸਰੋਤਾਂ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਜ਼ਿਆਦਾ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਤੁਹਾਨੂੰ ਕਾਫ਼ੀ ਵਾਰ ਮਾਪਣਾ ਚਾਹੀਦਾ ਹੈ, ਪਰ ਬਹੁਤ ਵਾਰ ਨਹੀਂ।
ਥਰਮੋਸਟੈਟ ਲਈ, ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ ਮਾਪਣਾ ਸ਼ਾਇਦ ਕਾਫ਼ੀ ਹੈ ਕਿਉਂਕਿ ਤਾਪਮਾਨ ਅਕਸਰ ਨਹੀਂ ਬਦਲਦਾ। ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ ਇੱਕ ਦਿਨ ਵਿੱਚ ਇੱਕ ਵਾਰ ਮਾਪਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਇੱਕ ਧੁੱਪ ਵਾਲੇ ਦਿਨ ਦੇ ਵਿਚਕਾਰ ਰਾਤ ਦੇ ਤਾਪਮਾਨ ਲਈ ਆਪਣੇ ਘਰ ਨੂੰ ਗਰਮ ਕਰ ਸਕਦੇ ਹੋ, ਜਦੋਂ ਕਿ ਜੇਕਰ ਤੁਸੀਂ ਹਰ ਸਕਿੰਟ ਮਾਪਦੇ ਹੋ ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਹਜ਼ਾਰਾਂ ਬੇਵਜ੍ਹਾ ਨਕਲ ਕੀਤੇ ਤਾਪਮਾਨ ਮਾਪ ਹੋਣਗੇ ਜੋ ਉਪਭੋਗਤਾ ਦੇ ਇੰਟਰਨੈਟ ਦੀ ਗਤੀ ਅਤੇ ਬੈਂਡਵਿਡਥ ਨੂੰ ਖਾ ਜਾਣਗੇ (ਜੋ ਲੋਕਾਂ ਲਈ ਸਮੱਸਿਆ ਹੈ ਜਿਨ੍ਹਾਂ ਦੇ ਪਾਬੰਦੀ ਵਾਲੇ ਬੈਂਡਵਿਧ ਪਲਾਨ ਹਨ), ਜ਼ਿਆਦਾ ਪਾਵਰ ਵਰਤਦੇ ਹਨ ਜੋ ਰਿਮੋਟ ਸੈਂਸਰਾਂ ਜਿਵੇਂ ਬੈਟਰੀ ਚਲਾਉਣ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਲਈ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ, ਅਤੇ ਪ੍ਰਦਾਤਾ ਦੇ ਕਲਾਉਡ ਕੰਪਿਊਟਿੰਗ ਸਰੋਤਾਂ ਦੀ ਲਾਗਤ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ ਜੋ ਉਨ੍ਹਾਂ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਅਤੇ ਸਟੋਰ ਕਰਨ ਲਈ।
ਜੇਕਰ ਤੁਸੀਂ ਫੈਕਟਰੀ ਵਿੱਚ ਇੱਕ ਮਸ਼ੀਨਰੀ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਡੇਟਾ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਰਹੇ ਹੋ ਜੋ ਕਿ ਜੇਕਰ ਇਹ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦੀ ਹੈ ਤਾਂ ਇਹ ਕਾਠਾ-ਤੋੜ ਨੁਕਸਾਨ ਅਤੇ ਲੱਖਾਂ ਡਾਲਰ ਦੀ ਆਮਦਨ ਖੋਹ ਸਕਦੀ ਹੈ, ਤਾਂ ਸ਼ਾਇਦ ਹਰ ਸਕਿੰਟ ਵਿੱਚ ਕਈ ਵਾਰ ਮਾਪਣਾ ਜ਼ਰੂਰੀ ਹੋ ਸਕਦਾ ਹੈ। ਬੈਂਡਵਿਡਥ ਨੂੰ ਬਰਬਾਦ ਕਰਨਾ ਬਿਹਤਰ ਹੈ ਬਜਾਏ ਇਸ ਟੈਲੀਮੇਟਰੀ ਨੂੰ ਗੁਆਉਣ ਦੇ ਜੋ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਮਸ਼ੀਨ ਨੂੰ ਤੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਰੋਕਣ ਅਤੇ ਠੀਕ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ।
💁 ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਤੁਸੀਂ ਇੰਟਰਨੈਟ 'ਤੇ ਨਿਰਭਰਤਾ ਘਟਾਉਣ ਲਈ ਪਹਿਲਾਂ ਟੈਲੀਮੇਟਰੀ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਇੱਕ ਐਜ ਡਿਵਾਈਸ ਰੱਖਣ 'ਤੇ ਵਿਚਾਰ ਕਰ ਸਕਦੇ ਹੋ।
ਕਨੈਕਟਿਵਿਟੀ ਦੀ ਹਾਨੀ
ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਅਨਿਸ਼ਚਿਤ ਹੋ ਸਕਦੇ ਹਨ, ਆਉਟੇਜ ਆਮ ਹਨ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਇੱਕ IoT ਡਿਵਾਈਸ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ - ਕੀ ਇਹ ਡੇਟਾ ਗੁਆਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਜਦੋਂ ਤੱਕ ਕਨੈਕਟਿਵਿਟੀ ਮੁੜ ਸਥਾਪਿਤ ਨਹੀਂ ਹੁੰਦੀ ਇਸ ਨੂੰ ਸਟੋਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ? ਫਿਰ, ਜਵਾਬ ਹੈ ਇਹ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।
ਥਰਮੋਸਟੈਟ ਲਈ ਡੇਟਾ ਸ਼ਾਇਦ ਗੁਆਉਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਵੇਂ ਹੀ ਇੱਕ ਨਵਾਂ ਤਾਪਮਾਨ ਮਾਪ ਲਿਆ ਗਿਆ ਹੈ। ਹੀਟਿੰਗ ਸਿਸਟਮ ਨੂੰ ਪਰਵਾਹ ਨਹੀਂ ਹੈ ਕਿ 20 ਮਿੰਟ ਪਹਿਲਾਂ ਇਹ 20.5°C ਸੀ ਜੇਕਰ ਤਾਪਮਾਨ ਹੁਣ 19°C ਹੈ, ਇਹ ਹੁਣ ਦਾ ਤਾਪਮਾਨ ਹੈ ਜੋ ਇਹ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਕਿ ਹੀਟਿੰਗ ਚਾਲੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜਾਂ ਬੰਦ।
ਮਸ਼ੀਨਰੀ ਲਈ ਤੁਸੀਂ ਸ਼ਾਇਦ ਡੇਟਾ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਖਾਸ ਕਰਕੇ ਜੇਕਰ ਇਹ ਰੁਝਾਨਾਂ ਦੀ ਭਾਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਮਾਡਲ ਹਨ ਜੋ ਡੇਟਾ ਦੇ ਸਟ੍ਰੀਮਾਂ ਵਿੱਚ ਅਸੰਗਤੀਆਂ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦੇ ਹਨ ਜਦੋਂ ਉਹ ਪਰਿਭਾਸ਼ਿਤ ਸਮੇਂ ਦੀ ਮਿਆਦ (ਜਿਵੇਂ ਪਿਛਲੇ ਘੰਟੇ) ਤੋਂ ਡੇਟਾ ਦੇਖਦੇ ਹਨ ਅਤੇ ਅਸੰਗਤ ਡੇਟਾ ਨੂੰ ਪਛਾਣਦੇ ਹਨ। ਇਹ ਅਕਸਰ ਪੂਰਵ-ਰਖਰਖਾਵ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਦਰਸਾਉਣ ਲਈ ਕਿ ਕੁਝ ਟੁੱਟ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਉਸ ਨੂੰ ਟੁੱਟਣ ਤੋਂ ਪਹਿਲਾਂ ਮਰਮਤ ਜਾਂ ਬਦਲ ਸਕੋ। ਤੁਸੀਂ ਸ਼ਾਇਦ ਮਸ਼ੀਨ ਲਈ ਹਰ ਇੱਕ ਟੈਲੀਮੇਟਰੀ ਭੇਜਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਜੋ ਇਸ ਨੂੰ ਅਸੰਗਤੀ ਪਛਾਣ ਲਈ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾ ਸਕੇ, ਇਸ ਲਈ ਜਦੋਂ IoT ਡਿਵਾਈਸ ਮੁੜ ਕਨੈਕਟ ਕਰ ਸਕਦਾ ਹੈ ਤਾਂ ਇਹ ਇੰਟਰਨੈਟ ਆਉਟੇਜ ਦੌਰਾਨ ਜਨਰੇਟ ਕੀਤੇ ਸ ਇਨ੍ਹਾਂ ਡਿਵਾਈਸਾਂ ਲਈ ਸੋਚੋ ਕਿ ਇਹ ਕਿਹੜੇ ਸੁਨੇਹੇ ਭੇਜ ਰਹੇ ਹੋ ਸਕਦੇ ਹਨ ਜਾਂ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹੋ ਸਕਦੇ ਹਨ। ਇਹ ਕਿਹੜੀ ਟੈਲੀਮੇਟਰੀ ਭੇਜਦੇ ਹਨ? ਇਹ ਕਿਹੜੇ ਸੁਨੇਹੇ ਜਾਂ ਕਮਾਂਡਾਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ? ਕੀ ਤੁਹਾਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਇਹ ਸੁਰੱਖਿਅਤ ਹਨ?
ਲੈਕਚਰ ਤੋਂ ਬਾਅਦ ਕਵਿਜ਼
ਸਮੀਖਿਆ ਅਤੇ ਖੁਦ ਅਧਿਐਨ
MQTT ਬਾਰੇ ਹੋਰ ਪੜ੍ਹੋ MQTT ਵਿਕੀਪੀਡੀਆ ਪੰਨਾ 'ਤੇ।
ਆਪਣੇ ਆਪ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ Mosquitto ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਤੇ ਇਸਨੂੰ ਆਪਣੇ IoT ਡਿਵਾਈਸ ਅਤੇ ਸਰਵਰ ਕੋਡ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।
💁 ਸੁਝਾਅ - ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ Mosquitto ਗੁਮਨਾਮ ਕਨੈਕਸ਼ਨਾਂ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ (ਜਾਂਨਕਿ ਬਿਨਾਂ ਯੂਜ਼ਰਨੇਮ ਅਤੇ ਪਾਸਵਰਡ ਦੇ ਕਨੈਕਟ ਕਰਨਾ), ਅਤੇ ਉਸ ਕੰਪਿਊਟਰ ਤੋਂ ਬਾਹਰ ਕਨੈਕਸ਼ਨਾਂ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ ਜਿਸ 'ਤੇ ਇਹ ਚੱਲ ਰਿਹਾ ਹੈ।
ਤੁਸੀਂ ਇਸਨੂੰ ਇੱਕmosquitto.conf
ਕਨਫਿਗ ਫਾਈਲ ਨਾਲ ਠੀਕ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੋਵੇ:listener 1883 0.0.0.0 allow_anonymous true
ਅਸਾਈਨਮੈਂਟ
MQTT ਦੀ ਤੁਲਨਾ ਹੋਰ ਕਮਿਊਨਿਕੇਸ਼ਨ ਪ੍ਰੋਟੋਕੋਲ ਨਾਲ ਕਰੋ
ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਮੌਜੂਦ ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।