- अवयव आवश्यक
- सर्किट आरेख
- रास्पबेरी पाई पर एमक्यूटीटी क्लाउड लाइब्रेरी स्थापित करना
- MQTT के साथ रास्पबेरी पाई GPIO को नियंत्रित करने के लिए कोडिंग स्पष्टीकरण
पिछले ट्यूटोरियल में हमने MQTT प्रोटोकॉल के बारे में चर्चा की है और स्थानीय रूप से GPIO को नियंत्रित करने के लिए हमारे रास्पबेरी पाई पर स्थानीय MQTT सर्वर स्थापित किया है। लेकिन स्थानीय MQTT सर्वर का दोष यह है कि हम दुनिया में कहीं से भी GPIO को नियंत्रित नहीं कर सकते हैं, यह केवल स्थानीय स्तर पर सेवाएं प्रदान करता है। लेकिन अगर इस MQTT सर्वर को कुछ क्लाउड पर होस्ट किया जाता है तो रास्पबेरी पाई से जुड़े किसी भी उपकरण को विश्व स्तर पर नियंत्रित किया जा सकता है।
यहाँ, इस ट्यूटोरियल में, हम राफबेरी पिओ से जुड़े एक एसी उपकरण को नियंत्रित करने के लिए MQTT ब्रोकर के रूप में Adafruit IO का उपयोग करेंगे । अन्य IoT नियंत्रित होम ऑटोमेशन ट्यूटोरियल देखें:
- ESP8266 और Android ऐप का उपयोग करके IOT आधारित वॉइस कंट्रोल्ड होम ऑटोमेशन
- स्मार्ट फोन Arduino का उपयोग कर होम ऑटोमेशन नियंत्रित
- IoT आधारित वेब नियंत्रित होम ऑटोमेशन PIC Microcontroller और Adafruit IO का उपयोग कर
- IoT आधारित वेब नियंत्रित होम ऑटोमेशन रास्पबेरी पाई का उपयोग कर
- Google सहायक आधारित वॉयस नियंत्रित होम ऑटोमेशन DIY DIY Arduino वाई-फाई शील्ड का उपयोग कर
अवयव आवश्यक
- रास्पबेरी खिंचाव के साथ रास्पबेरी पाई इसमें स्थापित है।
- रिले मॉड्यूल
- बल्ब
- जम्पर तार
यहां, हम SSH का उपयोग लैपटॉप पर रास्पबेरी पाई तक पहुंचने के लिए करेंगे। आप लैपटॉप पर वीएनसी या रिमोट डेस्कटॉप कनेक्शन का उपयोग कर सकते हैं, या अपने रास्पबेरी पाई को मॉनिटर से जोड़ सकते हैं। बिना मॉनिटर के यहां बिना सिर के रास्पबेरी पाई स्थापित करने के बारे में अधिक जानें।
सर्किट आरेख
इस IoT के लिए सर्किट आरेख MQTT क्लाउड और रास्पबेरी पाई के साथ नियंत्रित घरेलू उपकरण सरल है, बस रास्पबेरी पाई के GPIO पिन 35 पर रिले मॉड्यूल के साथ एक बल्ब कनेक्ट करें।
रास्पबेरी पाई पर एमक्यूटीटी क्लाउड लाइब्रेरी स्थापित करना
यहां राफ्टबेरी पाई के साथ MafTT ब्रोकर के रूप में Adafruit IO प्लेटफॉर्म का उपयोग किया जाता है । जैसा कि हमने अपने पिछले ट्यूटोरियल्स में कई बार Adafruit IO प्लेटफॉर्म का उपयोग किया है उसी तरह हम इसे रास्पबेरी पाई में उपयोग कर सकते हैं।
बस Adafruit IO प्लेटफ़ॉर्म पर एक खाता बनाएं और एक फ़ीड बनाएं, यदि आप नहीं जानते कि फ़ीड कैसे बनाएं और Adafruit डैशबोर्ड को अनुकूलित करें तो लिंक का पालन करें।
डैशबोर्ड बनाने के बाद, MQTT से शुरुआत करने के लिए रास्पबेरी पाई में कुछ लाइब्रेरी स्थापित करें।
1. सबसे पहले, निम्नलिखित आदेश जारी करके अपने पाई और पायथन को अपडेट करें
sudo apt-get update sudo apt-get upgrade सुडो पिप्प 3 स्थापित -अपग्रेड सेटपूल
2. अब, Rpi.gpio और Adafruit ब्लिंक लाइब्रेरी को नीचे कमांड्स का उपयोग करके इंस्टॉल करें
sudo pip3 install RPI.GPIO sudo pip3 install adafruit-blinka
3. नीचे कमांड का उपयोग करके Adafruit IO लाइब्रेरी स्थापित करें
sudo pip3 स्थापित adafruit-io
4. नीचे दिए गए आदेश का उपयोग करते हुए जीथब से एडफ़ोर्स के उदाहरणों को क्लोन करें
git clone https://github.com/adafruit/Adafruit_IO_Python.git
5. फिर, टर्मिनल में निम्नलिखित कमांड दर्ज करके उदाहरण फ़ोल्डर में नेविगेट करें:
सीडी Adafruit_IO_Python / उदाहरण / मूल बातें
यदि आप सुनिश्चित नहीं हैं कि आप किस निर्देशिका में हैं, तो आप pwd चलाकर इसकी जांच कर सकते हैं ।
6. इस फ़ोल्डर के सभी उदाहरणों के लिए, आपको ADAFRUIT_IO_KEY और ADAFRUIT_IO_USERNAME को सेट करना होगा, जो Adafruit डैशबोर्ड से पाया जा सकता है। जैसा की नीचे दिखाया गया
Adafruit IO डैशबोर्ड पर बटन टॉगल करें, और आपको अपने Pi के टर्मिनल में निम्नलिखित को देखना चाहिए।
7. अब, नैनो एडिटर का उपयोग करके सब्स्क्राइब्ड फ़ाइल खोलें । इसे खोलने के लिए निम्न कमांड टाइप करें
sudo nano subscribe.py
हमें डैशबोर्ड से किसी भी GPIO को नियंत्रित करने के लिए इस कार्यक्रम को संशोधित करना होगा।
MQTT के साथ रास्पबेरी पाई GPIO को नियंत्रित करने के लिए कोडिंग स्पष्टीकरण
सबसे पहले, GPIO पिन और Adafruit MQTT क्लाइंट का उपयोग करने के लिए सभी आवश्यक पुस्तकालयों को आयात करें।
आयात RPi.GPIO GPIO के रूप में आयात sys Adafruit_IO आयात MQTTClient से
अब, GPIO मोड सेट करें और LED पिन नंबर निर्धारित करें और आउटपुट के रूप में सेट करें।
GPIO.setmode (GPIO.BOARD) GPIO.setwarnings (गलत) ledPin = 12 GPIO.setup (ledPin, GPIO.OUT)
इसके बाद, हमें AIO कुंजी और उपयोगकर्ता नाम सेट करना होगा जो हमने डैशबोर्ड बनाते समय पाया है।
ADAFRUIT_IO_KEY = 'आपका_AIO_KEY' ADAFRUIT_IO_USERNAME = 'आपका_AIO_USERNAME'
फ़ीड नाम दर्ज करें जिसे आपने लाइट चालू और बंद करने के लिए दिया है। यहाँ, यह "प्रकाश" है।
FEED_ID = 'प्रकाश'
अब, एक फ़ंक्शन को परिभाषित करें जो तब होगा जब कोई ईवेंट होगा। इसलिए, हम client.subscribe (FEED_ID) का उपयोग करके फ़ीड की सदस्यता लेंगे
डिफ कनेक्टेड (क्लाइंट): client.subscribe (FEED_ID) प्रिंट ('फीड डेटा की प्रतीक्षा कर रहा है…')
फ़ीड की सदस्यता लेने के बाद, हमें नए मूल्य की जांच करनी होगी और इसे पेलोड चर में संग्रहीत करना होगा । इसके लिए मैसेज फंक्शन कहा जाता है। इसलिए, जब भी पेलोड वेरिएबल में "1" हो, तो लीड पिन हाई करें और "0" के लिए इसे कम करें।
डिफ मैसेज (क्लाइंट, फीड_आईडी, पेलोड): प्रिंट ('फीड {0} को नया मूल्य प्राप्त हुआ: {1}'। फॉर्मेट (फीड_आईडी, पेलोड)) यदि पेलोड == 1: GPIO.output (ledPin, GPIO.HIGH) और: GPIO.output (ledPin, GPIO.LOW)
अब, Adafruit IO मंच से जुड़ने और संदेश भेजने और भेजने के लिए MQTT क्लाइंट बनाएं।
ग्राहक = MQTTClient (ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) client.on_connect = कनेक्ट किए गए ग्राहक ।on_disconnect = डिस्कनेक्ट किया गया
इसके अलावा, कोड में उचित इंडेंटेशन के बारे में ध्यान रखें अन्यथा यह एक त्रुटि दिखाएगा। ट्यूटोरियल के अंत में पूरा पायथन कोड दिया गया है।
अंत में, ctrl + x का उपयोग करके प्रोग्राम को सेव करें और एंटर को हिट करें। अब, हमें संदेशों की सदस्यता के लिए स्क्रिप्ट को चलाना होगा। इसलिए टर्मिनल टाइप में अजगर सदस्यता लें और एंटर को हिट करें।
अजगर सदस्यता
आपको नीचे दिए गए स्नैपशॉट के अनुसार एक संदेश वेटिंग फॉर फीड डेटा दिखाई देगा।
अब, सुनिश्चित करें कि रिले मॉड्यूल रास्पबेरी पाई के GPIO पिन के साथ जुड़ा हुआ है और फिर Adafruit IO डैशबोर्ड पर जाएं और लाइट फीड बदलें। बल्ब जब "1" प्राप्त हुआ है और बंद कर दिया जिन्हें आप नीचे देख जब "0" प्राप्त होता है है चालू करना चाहिए ।
इस तरह हम रास्पबेरी पाई और एमक्यूटीटी क्लाउड का उपयोग करके दुनिया के किसी भी उपकरण को नियंत्रित कर सकते हैं