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.
93 lines
8.1 KiB
93 lines
8.1 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
|
|
"translation_date": "2025-08-27T12:32:19+00:00",
|
|
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
|
|
"language_code": "pa"
|
|
}
|
|
-->
|
|
# ਰਾਤ ਦੀ ਲਾਈਟ ਨੂੰ ਇੰਟਰਨੈਟ 'ਤੇ ਕੰਟਰੋਲ ਕਰੋ - ਵਰਚੁਅਲ IoT ਹਾਰਡਵੇਅਰ ਅਤੇ ਰਾਸਪਬੈਰੀ ਪਾਈ
|
|
|
|
IoT ਡਿਵਾਈਸ ਨੂੰ *test.mosquitto.org* ਨਾਲ MQTT ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਚਾਰ ਕਰਨ ਲਈ ਕੋਡ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਜੋ ਲਾਈਟ ਸੈਂਸਰ ਪੜ੍ਹਨ ਨਾਲ ਟੈਲੀਮੇਟਰੀ ਮੁੱਲ ਭੇਜੇ ਜਾ ਸਕਣ ਅਤੇ LED ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਕਮਾਂਡ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਸਕੇ।
|
|
|
|
ਇਸ ਪਾਠ ਦੇ ਇਸ ਹਿੱਸੇ ਵਿੱਚ, ਤੁਸੀਂ ਆਪਣੇ ਰਾਸਪਬੈਰੀ ਪਾਈ ਜਾਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਨੂੰ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਕਨੈਕਟ ਕਰੋਗੇ।
|
|
|
|
## MQTT ਕਲਾਇੰਟ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ
|
|
|
|
MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਆਪਣੇ Pi 'ਤੇ ਜਾਂ ਜੇ ਤੁਸੀਂ ਵਰਚੁਅਲ ਡਿਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਤਾਂ ਆਪਣੇ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਿੱਚ ਇੱਕ MQTT ਲਾਇਬ੍ਰੇਰੀ pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
|
|
|
|
### ਕੰਮ
|
|
|
|
pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ
|
|
|
|
1. VS Code ਵਿੱਚ ਰਾਤ ਦੀ ਲਾਈਟ ਪ੍ਰੋਜੈਕਟ ਖੋਲ੍ਹੋ।
|
|
|
|
1. ਜੇ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟਰਮੀਨਲ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਚਲਾ ਰਿਹਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਰਾਸਪਬੈਰੀ ਪਾਈ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ ਹੋਵੋਗੇ।
|
|
|
|
1. MQTT pip ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਕਮਾਂਡ ਚਲਾਓ:
|
|
|
|
```sh
|
|
pip3 install paho-mqtt
|
|
```
|
|
|
|
## ਡਿਵਾਈਸ ਦਾ ਕੋਡ ਲਿਖੋ
|
|
|
|
ਡਿਵਾਈਸ ਕੋਡ ਲਿਖਣ ਲਈ ਤਿਆਰ ਹੈ।
|
|
|
|
### ਕੰਮ
|
|
|
|
ਡਿਵਾਈਸ ਕੋਡ ਲਿਖੋ।
|
|
|
|
1. `app.py` ਫਾਈਲ ਦੇ ਉੱਪਰ ਹਿੱਸੇ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤਾ ਇੰਪੋਰਟ ਸ਼ਾਮਲ ਕਰੋ:
|
|
|
|
```python
|
|
import paho.mqtt.client as mqtt
|
|
```
|
|
|
|
`paho.mqtt.client` ਲਾਇਬ੍ਰੇਰੀ ਤੁਹਾਡੇ ਐਪ ਨੂੰ MQTT ਦੇ ਜ਼ਰੀਏ ਸੰਚਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।
|
|
|
|
1. ਲਾਈਟ ਸੈਂਸਰ ਅਤੇ LED ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਬਾਅਦ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ:
|
|
|
|
```python
|
|
id = '<ID>'
|
|
|
|
client_name = id + 'nightlight_client'
|
|
```
|
|
|
|
`<ID>` ਨੂੰ ਇੱਕ ਵਿਲੱਖਣ ID ਨਾਲ ਬਦਲੋ ਜੋ ਇਸ ਡਿਵਾਈਸ ਕਲਾਇੰਟ ਦਾ ਨਾਮ ਹੋਵੇਗਾ, ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਉਹ ਟਾਪਿਕਾਂ ਲਈ ਜੋ ਇਹ ਡਿਵਾਈਸ ਪ੍ਰਕਾਸ਼ਿਤ ਅਤੇ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦਾ ਹੈ। *test.mosquitto.org* ਬ੍ਰੋਕਰ ਜਨਤਕ ਹੈ ਅਤੇ ਕਈ ਲੋਕਾਂ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇਸ ਅਸਾਈਨਮੈਂਟ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਹੋਰ ਵਿਦਿਆਰਥੀ ਵੀ ਸ਼ਾਮਲ ਹਨ। ਇੱਕ ਵਿਲੱਖਣ MQTT ਕਲਾਇੰਟ ਨਾਮ ਅਤੇ ਟਾਪਿਕ ਨਾਮਾਂ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ ਕਿ ਤੁਹਾਡਾ ਕੋਡ ਕਿਸੇ ਹੋਰ ਦੇ ਨਾਲ ਟਕਰਾਏਗਾ ਨਹੀਂ। ਤੁਹਾਨੂੰ ਇਹ ID ਇਸ ਅਸਾਈਨਮੈਂਟ ਦੇ ਬਾਅਦਲੇ ਹਿੱਸੇ ਵਿੱਚ ਸਰਵਰ ਕੋਡ ਬਣਾਉਣ ਸਮੇਂ ਵੀ ਲੋੜੀਂਦੀ ਹੋਵੇਗੀ।
|
|
|
|
> 💁 ਤੁਸੀਂ [GUIDGen](https://www.guidgen.com) ਵਰਗੇ ਵੈਬਸਾਈਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਵਿਲੱਖਣ ID ਜਨਰੇਟ ਕਰ ਸਕਦੇ ਹੋ।
|
|
|
|
`client_name` ਇਸ MQTT ਕਲਾਇੰਟ ਲਈ ਬ੍ਰੋਕਰ 'ਤੇ ਇੱਕ ਵਿਲੱਖਣ ਨਾਮ ਹੈ।
|
|
|
|
1. ਹੇਠਾਂ ਦਿੱਤੇ ਨਵੇਂ ਕੋਡ ਦੇ ਹੇਠਾਂ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ, ਤਾਂ ਜੋ ਇੱਕ MQTT ਕਲਾਇੰਟ ਆਬਜੈਕਟ ਬਣਾਇਆ ਜਾ ਸਕੇ ਅਤੇ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਸਕੇ:
|
|
|
|
```python
|
|
mqtt_client = mqtt.Client(client_name)
|
|
mqtt_client.connect('test.mosquitto.org')
|
|
|
|
mqtt_client.loop_start()
|
|
|
|
print("MQTT connected!")
|
|
```
|
|
|
|
ਇਹ ਕੋਡ ਕਲਾਇੰਟ ਆਬਜੈਕਟ ਬਣਾਉਂਦਾ ਹੈ, ਜਨਤਕ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਕਨੈਕਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਪ੍ਰੋਸੈਸਿੰਗ ਲੂਪ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਜੋ ਬੈਕਗ੍ਰਾਊਂਡ ਥ੍ਰੈਡ ਵਿੱਚ ਚਲਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਵੀ ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੇ ਟਾਪਿਕਾਂ 'ਤੇ ਸੁਨੇਹੇ ਸੁਣਦਾ ਹੈ।
|
|
|
|
1. ਕੋਡ ਨੂੰ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਚਲਾਓ ਜਿਵੇਂ ਤੁਸੀਂ ਅਸਾਈਨਮੈਂਟ ਦੇ ਪਿਛਲੇ ਹਿੱਸੇ ਤੋਂ ਕੋਡ ਚਲਾਇਆ ਸੀ। ਜੇ ਤੁਸੀਂ ਵਰਚੁਅਲ IoT ਡਿਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ CounterFit ਐਪ ਚੱਲ ਰਹੀ ਹੈ ਅਤੇ ਲਾਈਟ ਸੈਂਸਰ ਅਤੇ LED ਸਹੀ ਪਿੰਸ 'ਤੇ ਬਣਾਏ ਗਏ ਹਨ।
|
|
|
|
```output
|
|
(.venv) ➜ nightlight python app.py
|
|
MQTT connected!
|
|
Light level: 0
|
|
Light level: 0
|
|
```
|
|
|
|
> 💁 ਤੁਸੀਂ ਇਹ ਕੋਡ [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ਫੋਲਡਰ ਜਾਂ [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) ਫੋਲਡਰ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ।
|
|
|
|
😀 ਤੁਸੀਂ ਸਫਲਤਾਪੂਰਵਕ ਆਪਣੇ ਡਿਵਾਈਸ ਨੂੰ ਇੱਕ MQTT ਬ੍ਰੋਕਰ ਨਾਲ ਕਨੈਕਟ ਕਰ ਲਿਆ ਹੈ।
|
|
|
|
---
|
|
|
|
**ਅਸਵੀਕਰਤੀ**:
|
|
ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚੱਜੇਪਣ ਹੋ ਸਕਦੇ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼, ਜੋ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੈ, ਨੂੰ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਅਸੀਂ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। |