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/hi/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md

91 lines
8.1 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "90fb93446e03c38f3c0e4009c2471906",
"translation_date": "2025-08-25T17:17:46+00:00",
"source_file": "1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md",
"language_code": "hi"
}
-->
# इंटरनेट के माध्यम से अपनी नाइटलाइट को नियंत्रित करें - वर्चुअल IoT हार्डवेयर और रास्पबेरी पाई
IoT डिवाइस को *test.mosquitto.org* के साथ MQTT का उपयोग करके टेलीमेट्री मान भेजने और लाइट सेंसर रीडिंग के साथ LED को नियंत्रित करने के लिए कमांड प्राप्त करने के लिए कोड किया जाना चाहिए।
इस पाठ के इस भाग में, आप अपने रास्पबेरी पाई या वर्चुअल IoT डिवाइस को एक MQTT ब्रोकर्स से कनेक्ट करेंगे।
## MQTT क्लाइंट पैकेज इंस्टॉल करें
MQTT ब्रोकर्स के साथ संवाद करने के लिए, आपको अपने पाई पर या वर्चुअल डिवाइस का उपयोग कर रहे हैं तो वर्चुअल वातावरण में एक MQTT लाइब्रेरी पिप पैकेज इंस्टॉल करना होगा।
### कार्य
पिप पैकेज इंस्टॉल करें
1. VS Code में नाइटलाइट प्रोजेक्ट खोलें।
1. यदि आप वर्चुअल IoT डिवाइस का उपयोग कर रहे हैं, तो सुनिश्चित करें कि टर्मिनल वर्चुअल वातावरण चला रहा है। यदि आप रास्पबेरी पाई का उपयोग कर रहे हैं, तो आप वर्चुअल वातावरण का उपयोग नहीं करेंगे।
1. MQTT पिप पैकेज इंस्टॉल करने के लिए निम्नलिखित कमांड चलाएं:
```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) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।