6.7 KiB
ਇੰਟਰਨੈਟ ਰਾਹੀਂ ਆਪਣੀ ਨਾਈਟਲਾਈਟ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ - ਵਰਚੁਅਲ IoT ਹਾਰਡਵੇਅਰ ਅਤੇ ਰਾਸਪਬੈਰੀ ਪਾਈ
ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ ਰਾਸਪਬੈਰੀ ਪਾਈ ਜਾਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਲਈ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਭੇਜੇ ਗਏ ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋਗੇ।
ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋ
ਅਗਲਾ ਕਦਮ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਭੇਜੇ ਗਏ ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਨਾ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਜਵਾਬ ਦੇਣਾ ਹੈ।
ਟਾਸਕ
ਕਮਾਂਡਾਂ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰੋ।
-
VS Code ਵਿੱਚ ਨਾਈਟਲਾਈਟ ਪ੍ਰੋਜੈਕਟ ਖੋਲ੍ਹੋ।
-
ਜੇ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟਰਮੀਨਲ ਵਰਚੁਅਲ ਐਨਵਾਇਰਨਮੈਂਟ ਚਲਾ ਰਿਹਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਰਾਸਪਬੈਰੀ ਪਾਈ ਵਰਤ ਰਹੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਵਰਚੁਅਲ ਐਨਵਾਇਰਨਮੈਂਟ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ ਹੋਵੋਗੇ।
-
client_telemetry_topicਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਬਾਅਦ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:server_command_topic = id + '/commands'server_command_topicਉਹ MQTT ਟਾਪਿਕ ਹੈ ਜਿਸ ਨੂੰ ਡਿਵਾਈਸ LED ਕਮਾਂਡਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਬਸਕ੍ਰਾਈਬ ਕਰੇਗਾ। -
ਮੁੱਖ ਲੂਪ ਤੋਂ ਥੋੜ੍ਹਾ ਉੱਪਰ,
mqtt_client.loop_start()ਲਾਈਨ ਦੇ ਬਾਅਦ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:def handle_command(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['led_on']: led.on() else: led.off() mqtt_client.subscribe(server_command_topic) mqtt_client.on_message = handle_commandਇਹ ਕੋਡ ਇੱਕ ਫੰਕਸ਼ਨ,
handle_command, ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੋ ਇੱਕ ਸੁਨੇਹਾ JSON ਦਸਤਾਵੇਜ਼ ਵਜੋਂ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇled_onਪ੍ਰਾਪਰਟੀ ਦੀ ਵੈਲਿਊ ਨੂੰ ਲੱਭਦਾ ਹੈ। ਜੇ ਇਹTrueਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ LED ਚਾਲੂ ਹੋ ਜਾਂਦੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਇਹ ਬੰਦ ਹੋ ਜਾਂਦੀ ਹੈ।MQTT ਕਲਾਇੰਟ ਉਸ ਟਾਪਿਕ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦਾ ਹੈ ਜਿਸ 'ਤੇ ਸਰਵਰ ਸੁਨੇਹੇ ਭੇਜੇਗਾ ਅਤੇ
handle_commandਫੰਕਸ਼ਨ ਸੈਟ ਕਰਦਾ ਹੈ ਜੋ ਸੁਨੇਹਾ ਪ੍ਰਾਪਤ ਹੋਣ 'ਤੇ ਕਾਲ ਕੀਤਾ ਜਾਵੇਗਾ।💁
on_messageਹੈਂਡਲਰ ਸਾਰੇ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਟਾਪਿਕਾਂ ਲਈ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਅਜਿਹਾ ਕੋਡ ਲਿਖਦੇ ਹੋ ਜੋ ਕਈ ਟਾਪਿਕਾਂ ਨੂੰ ਸੁਣਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਉਸ ਟਾਪਿਕ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ 'ਤੇ ਸੁਨੇਹਾ ਭੇਜਿਆ ਗਿਆ ਸੀmessageਆਬਜੈਕਟ ਤੋਂ ਜੋ ਹੈਂਡਲਰ ਫੰਕਸ਼ਨ ਨੂੰ ਪਾਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। -
ਪਿਛਲੇ ਅਸਾਈਨਮੈਂਟ ਦੇ ਹਿੱਸੇ ਤੋਂ ਕੋਡ ਚਲਾਉਣ ਦੇ ਸਮਾਨ ਤਰੀਕੇ ਨਾਲ ਕੋਡ ਚਲਾਓ। ਜੇ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ CounterFit ਐਪ ਚੱਲ ਰਹੀ ਹੈ ਅਤੇ ਲਾਈਟ ਸੈਂਸਰ ਅਤੇ LED ਸਹੀ ਪਿੰਸ 'ਤੇ ਬਣਾਏ ਗਏ ਹਨ।
-
ਆਪਣੇ ਭੌਤਿਕ ਜਾਂ ਵਰਚੁਅਲ ਡਿਵਾਈਸ ਦੁਆਰਾ ਪਤਾ ਲਗਾਏ ਗਏ ਲਾਈਟ ਲੈਵਲ ਨੂੰ ਅਨੁਕੂਲ ਕਰੋ। ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਰਹੇ ਸੁਨੇਹੇ ਅਤੇ ਭੇਜੇ ਜਾ ਰਹੇ ਕਮਾਂਡਾਂ ਟਰਮੀਨਲ ਵਿੱਚ ਲਿਖੇ ਜਾਣਗੇ। ਲਾਈਟ ਲੈਵਲ ਦੇ ਅਨੁਸਾਰ LED ਵੀ ਚਾਲੂ ਅਤੇ ਬੰਦ ਹੋਵੇਗਾ।
💁 ਤੁਸੀਂ ਇਹ ਕੋਡ code-commands/virtual-device ਫੋਲਡਰ ਜਾਂ code-commands/pi ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ।
😀 ਤੁਸੀਂ ਸਫਲਤਾਪੂਰਵਕ ਆਪਣੇ ਡਿਵਾਈਸ ਨੂੰ MQTT ਬ੍ਰੋਕਰ ਤੋਂ ਆਉਣ ਵਾਲੀਆਂ ਕਮਾਂਡਾਂ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਕੋਡ ਕੀਤਾ ਹੈ।
ਅਸਵੀਕਰਤੀ:
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।