- Arduino के लिए Adafruit 5X8 NeoPixel Shield
- Blynk App और Arduino के बीच संचार प्रक्रिया को समझना
- अवयव आवश्यक
- प्रवेश आरजीबी एलईडी शील्ड और Arduino - हार्डवेयर कनेक्शन
- Blynk एप्लिकेशन को कॉन्फ़िगर करना
- Arduino Code को नियंत्रित करने वाली Adafruit WS2812B RGB LED Shield
- Arduino Board में कोड अपलोड करना
कुछ वर्षों के दौरान, आरजीबी एलईडी अपने सुंदर रंग, चमक और मोहक प्रकाश प्रभाव के कारण दिन-प्रतिदिन लोकप्रिय हो रहे हैं। यही कारण है कि इसका उपयोग कई स्थानों पर एक सजावटी वस्तु के रूप में किया जाता है, एक उदाहरण घर या कार्यालय स्थान हो सकता है। इसके अलावा, हम RGB लाइट्स का उपयोग किचन में और गेमिंग कंसोल में भी कर सकते हैं। वे मूड लाइटिंग के मामले में एक किड्स प्लेरूम या बेडरूम में भी महान हैं । इससे पहले, हमने म्यूजिक स्पेक्ट्रम विज़ुअलाइज़र के निर्माण के लिए WS2812B NeoPixel LEDs और ARM माइक्रोकंट्रोलर का उपयोग किया था, इसलिए यह जांचें कि क्या यह आपके लिए दिलचस्प है।
यही कारण है कि इस परियोजना में हम कई आकर्षक एनीमेशन प्रभाव और रंगों का उत्पादन करने के लिए एक Neopixel आधारित RGB LED मैट्रिक्स शील्ड, Arduino, और Blynk एप्लिकेशन का उपयोग करने जा रहे हैं, जिसे हम Blynk ऐप के साथ नियंत्रित कर पाएंगे। तो चलो शुरू करते है!!!
Arduino के लिए Adafruit 5X8 NeoPixel Shield
Arduino के संगत NeoPixel शील्ड में चालीस अलग-अलग संबोधित करने योग्य RGB एलईडी हैं, प्रत्येक में WS2812b ड्राइवर बिल्ट-इन है, जो इस NeoPixel शील्ड को बनाने के लिए 5 × 8 मैट्रिक्स में व्यवस्थित है । यदि आवश्यकता हो तो एक से अधिक नियोप्लेक्स शील्ड को एक बड़े शील्ड बनाने के लिए भी जोड़ा जा सकता है। RGB एल ई डी को नियंत्रित करने के लिए, एक एकल Arduino पिन की आवश्यकता होती है, इसलिए इस ट्यूटोरियल में, हमने ऐसा करने के लिए Arduino के पिन 6 का उपयोग करने का निर्णय लिया है।
हमारे मामले में, एलईडी Arduino के इनबिल्ट 5V पिन से संचालित होते हैं, जो पूरी चमक में "एलईड का एक तिहाई" के बारे में बिजली देने के लिए पर्याप्त है। यदि आपको अधिक एल ई डी की आवश्यकता होती है, तो आप इनबिल्ट ट्रेस को काट सकते हैं और बाहरी 5 वी टर्मिनल का उपयोग करके ढाल को बिजली देने के लिए एक बाहरी 5 वी आपूर्ति का उपयोग कर सकते हैं।
Blynk App और Arduino के बीच संचार प्रक्रिया को समझना
8 * 5 आरजीबी एलईडी मैट्रिक्स जिसका उपयोग यहां किया जाता है, WS2812B ड्राइवर पर आधारित चालीस व्यक्तिगत रूप से पता योग्य आरजीबी एलईडी है। इसमें 24-बिट रंग नियंत्रण और 16.8 मिलियन रंग प्रति पिक्सेल है। इसे "वन वायर कंट्रोल" कार्यप्रणाली से नियंत्रित किया जा सकता है। इसका मतलब है कि हम सिंगल कंट्रोल पिन का उपयोग करके पूरे एलईडी पिक्सेल को नियंत्रित कर सकते हैं। एल ई डी के साथ काम करते समय, मैं इन एल ई डी की डेटशीट के माध्यम से चला गया हूं, जहां मुझे लगता है कि ढाल की ऑपरेटिंग वोल्टेज रेंज 4 वी से 6 वी है और वर्तमान खपत 50 एमए प्रति एलईडी 5 वी पर लाल, हरे रंग के साथ पाई जाती है। और पूरी चमक पर नीला। यह बाहरी शक्ति पिन पर रिवर्स-वोल्टेज संरक्षण और Arduino को रीसेट करने के लिए शील्ड पर एक रीसेट बटन है। एल ई डी के लिए एक बाहरी पावर इनपुट पिन भी है यदि आंतरिक सर्किट्री के माध्यम से पर्याप्त मात्रा में बिजली उपलब्ध नहीं है।
जैसा कि ऊपर दिए गए योजनाबद्ध आरेख में दिखाया गया है, हमें Blynk एप्लिकेशन को डाउनलोड और इंस्टॉल करना होगाहमारे स्मार्टफोन पर जहां रंग, चमक जैसे मापदंडों को नियंत्रित किया जा सकता है। मापदंडों को स्थापित करने के बाद, यदि ऐप में कोई भी परिवर्तन होता है, तो यह बिलक क्लाउड है जहां हमारा पीसी भी जुड़ा हुआ है और अद्यतन डेटा प्राप्त करने के लिए तैयार है। Arduino Uno हमारे PC से USB केबल के माध्यम से जुड़ा हुआ है, जिसमें एक संचार पोर्ट खोला गया है, इस संचार पोर्ट (COM Port) के साथ, डेटा का आदान-प्रदान Blynk क्लाउड और Arduino UNO के बीच किया जा सकता है। पीसी लगातार समय के अंतराल पर बिन्नक क्लाउड से डेटा का अनुरोध कर रहा है और जब एक अद्यतन डेटा प्राप्त होता है, तो वह इसे Arduino में स्थानांतरित करता है और आरजीबी के नेतृत्व में चमक और रंगों को नियंत्रित करने जैसे उपयोगकर्ता-परिभाषित निर्णय करता है। RGB एलईडी शील्ड को Arduino LED पर रखा गया है और संचार के लिए एक ही डेटा पिन के माध्यम से जोड़ा गया है, डिफ़ॉल्ट रूप से यह Arduino के D6 पिन के माध्यम से जुड़ा हुआ है।Arduino UNO से भेजे गए सीरियल डेटा को Neopixel shied में भेजा जाता है जो बाद में LED मैट्रिक्स पर परिलक्षित होता है।
अवयव आवश्यक
- Arduino UNO
- 8 * 5 RGB एलईडी मैट्रिक्स शील्ड
- Arduino UNO के लिए USB A / B केबल
- लैपटॉप / पीसी
प्रवेश आरजीबी एलईडी शील्ड और Arduino - हार्डवेयर कनेक्शन
WS2812B Neopixel LED में तीन पिन होते हैं, एक डेटा के लिए होता है और दूसरा दो पावर के लिए उपयोग किया जाता है, लेकिन यह विशिष्ट Arduino शील्ड हार्डवेयर कनेक्शन को बहुत सरल बनाता है, हमें बस इतना करना है कि Arduino UNO के शीर्ष पर Neopixel LED मैट्रिक्स रखें। हमारे मामले में, एलईडी डिफ़ॉल्ट Arduino 5V रेल से संचालित है। Neopixel Shield रखने के बाद, सेटअप नीचे की तरह दिखता है:
Blynk एप्लिकेशन को कॉन्फ़िगर करना
Blynk एक ऐसा एप्लिकेशन है जो हमारे स्मार्टफ़ोन का उपयोग करके किसी भी IoT डिवाइस और उपकरणों को नियंत्रित करने के लिए Android और IOS उपकरणों पर चल सकता है । सबसे पहले, आरजीबी एलईडी मैट्रिक्स को नियंत्रित करने के लिए एक ग्राफिकल यूजर इंटरफेस (जीयूआई) बनाने की जरूरत है। आवेदन जीयूआई से बिलिन्क क्लाउड तक सभी चयनित मापदंडों को भेजेगा। रिसीवर अनुभाग में, हमारे पास एक सीरियल संचार केबल के माध्यम से पीसी से जुड़ा हुआ है Arduino। इसलिए, पीसी Blynk क्लाउड से डेटा का अनुरोध करता है, और ये डेटा आवश्यक प्रसंस्करण के लिए Arduino को भेजे जाते हैं। तो, चलिए Blynk एप्लीकेशन सेटअप के साथ शुरुआत करते हैं।
सेटअप से पहले, Google Play स्टोर से Blynk एप्लिकेशन डाउनलोड करें (IOS उपयोगकर्ता ऐप स्टोर से डाउनलोड कर सकते हैं)। स्थापना के बाद, अपने ईमेल आईडी और पासवर्ड का उपयोग करके साइन-अप करें।
एक नया प्रोजेक्ट बनाना:
सफल स्थापना के बाद, एप्लिकेशन खोलें, और वहां हमें एक विकल्प " नई परियोजना " के साथ एक स्क्रीन मिलेगी । उस पर क्लिक करें और यह एक नई स्क्रीन को पॉप अप करेगा, जहां हमें प्रोजेक्ट नाम, बोर्ड और कनेक्शन प्रकार जैसे पैरामीटर सेट करने की आवश्यकता है। हमारे प्रोजेक्ट में, डिवाइस को " Arduino UNO " और कनेक्शन प्रकार को " USB " के रूप में चुनें और " Create" पर क्लिक करें ।
परियोजना के सफल निर्माण के बाद, हमें अपने पंजीकृत मेल में एक प्रामाणिक आईडी मिलेगी । भविष्य के संदर्भ के लिए प्रमाणीकरण आईडी सहेजें।
ग्राफिक यूजर इंटरफेस (GUI) बनाना:
बिलक में प्रोजेक्ट खोलें, "+" चिह्न पर क्लिक करें जहां हमें विजेट मिलेगा जो हम अपने प्रोजेक्ट में उपयोग कर सकते हैं। हमारे मामले में, हमें आरजीबी कलर पिकर की आवश्यकता है जो नीचे दिखाए गए अनुसार "zeRGBa" के रूप में सूचीबद्ध है।
विजेट सेट करना:
विगेट्स को हमारी परियोजना में खींचने के बाद, अब हमें इसके पैरामीटर सेट करने होंगे जो कि आरजीयू यूएनओ को रंग आरजीबी मान भेजने के लिए उपयोग किए जाते हैं।
ZeRGBa पर क्लिक करें, फिर हमें ZeRGBa सेटिंग नाम की एक स्क्रीन मिलेगी। फिर आउटपुट विकल्प को " मर्ज " पर सेट करें और पिन को "V2" पर सेट करें जो नीचे दी गई छवि में दिखाया गया है।
Arduino Code को नियंत्रित करने वाली Adafruit WS2812B RGB LED Shield
हार्डवेयर कनेक्शन के पूरा होने के बाद, कोड को Arduino पर अपलोड करना होगा। कोड की स्टेप बाई स्टेप व्याख्या नीचे दी गई है।
सबसे पहले, सभी आवश्यक पुस्तकालयों को शामिल करें। Arduino IDE खोलें, फिर टैब स्केच पर जाएं और लाइब्रेरी-> मैनेज लाइब्रेरी शामिल करें विकल्प पर क्लिक करें । फिर सर्च बॉक्स में Blynk सर्च करें और फिर Arduino UNO के लिए Blynk पैकेज को डाउनलोड और इंस्टॉल करें।
यहाँ " Adafruit_NeoPixel.h " लाइब्रेरी का उपयोग RGB LED मैट्रिक्स को नियंत्रित करने के लिए किया जाता है। इसे शामिल करने के लिए, आप दिए गए लिंक से Adafruit_NeoPixel लाइब्रेरी डाउनलोड कर सकते हैं । एक बार जब आप मिल जाते हैं, तो आप इसे शामिल ज़िप लाइब्रेरी विकल्प के साथ शामिल कर सकते हैं।
#define BLYNK_PRINT डीबगशेरियल #include #include
फिर हम एलईडी की संख्या को परिभाषित करते हैं, जो हमारे एलईडी मैट्रिक्स के लिए आवश्यक है, हम पिन-संख्या को भी परिभाषित करते हैं जिसका उपयोग एलईडी मापदंडों को नियंत्रित करने के लिए किया जाता है।
#define PIN 6 #define NUM_PIXELS 40
फिर, हम एक में हमारे झपकी सत्यापन आईडी लगाने की जरूरत है प्रमाणन सरणी है, जो हम पहले बचाया है।
चारलोक = "होलीसैक-एसजीएजैकक्यूएक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्सएक्स";
यहां सॉफ्टवेयर सीरियल पिन का उपयोग डिबग कंसोल के रूप में किया जाता है। तो, Arduino पिन को डिबग सीरियल के रूप में परिभाषित किया गया है।
#शामिल
अंदर सेटअप, धारावाहिक संचार समारोह का उपयोग कर आरंभ नहीं हो जाता Serial.begin , blynk का उपयोग कर जुड़ा हुआ है Blynk.begin और का उपयोग कर pixels.begin (), एलईडी मैट्रिक्स आरंभ नहीं हो जाता।
शून्य सेटअप () { DebugSerial.begin (9600); Pix.begin (); सीरियल.बेगिन (9600); Blynk.begin (सीरियल, ऑर्टिकल); }
लूप () के अंदर, हमने Blynk.run () का उपयोग किया है , जो कि blynk GUI से आने वाली कमांड्स की जांच करता है और उसी के अनुसार ऑपरेशन निष्पादित करता है।
शून्य लूप () { Blynk.run (); }
अंतिम चरण में, जो पैरामीटर बिलक एप्लिकेशन से भेजे गए थे, उन्हें प्राप्त करने और संसाधित करने की आवश्यकता है। इस मामले में, पैरामीटर को वर्चुअल पिन "V2" को आवंटित किया गया था जैसा कि पहले सेटअप अनुभाग में चर्चा की गई थी। BLYNK_WRITE फ़ंक्शन एक इनबिल्ट फ़ंक्शन है जिसे जब भी संबंधित वर्चुअल पिन की स्थिति / मान में परिवर्तन होता है, तब कॉल किया जाता है। हम किसी अन्य Arduino फ़ंक्शन की तरह ही इस फ़ंक्शन के अंदर कोड चला सकते हैं।
यहां वर्चुअल पिन V2 पर आने वाले डेटा की जांच के लिए BLYNK_WRITE फ़ंक्शन लिखा गया है। जैसा कि ब्लिंक सेटअप सेक्शन में दिखाया गया है, कलर पिक्सेल डेटा को मर्ज करके V2 पिन को सौंपा गया था। इसलिए हमें डिकोडिंग के बाद फिर से डी-मर्ज करना होगा। क्योंकि एलईडी पिक्सेल मैट्रिक्स को नियंत्रित करने के लिए, हमें सभी 3 अलग-अलग रंग के पिक्सेल डेटा की आवश्यकता होती है जैसे कि लाल, हरा और नीला। जैसा कि नीचे दिए गए कोड में दिखाया गया है, मैट्रिक्स के तीन इंडेक्स को लाल रंग का मान प्राप्त करने के लिए param.asInt () की तरह पढ़ा गया था । इसी तरह, अन्य सभी दो मूल्य प्राप्त हुए और 3 व्यक्तिगत चर में संग्रहीत किए गए। फिर इन मानों को पिक्सेल मैट्रिक्स में Pix.setPixelColor फ़ंक्शन का उपयोग करके असाइन किया गया है जैसा कि नीचे दिए गए कोड में दिखाया गया है।
यहां, पिक्सल.सेटबाइटनेस () फ़ंक्शन का उपयोग ब्राइटनेस और पिक्सल्स को नियंत्रित करने के लिए किया जाता है। मैट्रिक्स में सेट कलर को प्रदर्शित करने के लिए फंक्शन का उपयोग किया जाता है।
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); Pix.clear (); Pix.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } Pix.show (); }
Arduino Board में कोड अपलोड करना
सबसे पहले, हमें Arduino IDE के अंदर Pdu of Arduino का चयन करना होगा, फिर हमें Arduino UNO में कोड अपलोड करना होगा। एक सफल अपलोड के बाद, पोर्ट-नंबर पर ध्यान दें जो हमारे सीरियल संचार सेटअप के लिए उपयोग किया जाएगा।
इसके बाद, अपने पीसी पर Blynk लाइब्रेरी का स्क्रिप्ट फ़ोल्डर ढूंढें। पुस्तकालय स्थापित करने पर यह स्थापित हो जाता है, मेरा अंदर था, "C: \ Users \ PC_Name \ Documents \ Arduino \ पुस्तकालयों \ Blynk \ script"
स्क्रिप्ट फ़ोल्डर में, "blynk-ser.bat" नाम की एक फ़ाइल होनी चाहिए जो सीरियल संचार के लिए उपयोग की जाने वाली एक बैच फ़ाइल है जिसे हमें नोटपैड के साथ संपादित करने की आवश्यकता है। नोटपैड के साथ फाइल खोलें और पोर्ट नंबर को अपने Arduino पोर्ट नंबर में बदलें जिसे आपने अंतिम चरण में नोट किया है।
संपादन के बाद, फ़ाइल को सहेजें और उस पर डबल-क्लिक करके बैच फ़ाइल चलाएँ। फिर, आपको नीचे दी गई विंडो की तरह दिखाई दे रही होगी:
नोट: यदि आप ऊपर दिखाए गए इस विंडो को नहीं देख पा रहे हैं और इसे फिर से कनेक्ट करने के लिए प्रेरित किया जाता है, तो यह Arduino ढाल के साथ पीसी के संबंध में त्रुटि के कारण हो सकता है। उस स्थिति में, पीसी के साथ अपने Arduino कनेक्शन की जाँच करें। उसके बाद, देखें कि COM पोर्ट नंबर Arduino IDE में दिखाई दे रहा है या नहीं। यदि यह वैध COM पोर्ट दिखा रहा है, तो यह आगे बढ़ने के लिए तैयार है। आपको बैच फ़ाइल को फिर से चलाना चाहिए।
अंतिम प्रदर्शन:
अब, यह सर्किट और इसकी कार्यक्षमता के परीक्षण का समय है। Blynk एप्लिकेशन खोलें और GUI खोलें और Play बटन पर क्लिक करें। उसके बाद, आप अपने इच्छित रंगों में से किसी का चयन करके एलईडी मैट्रिक्स पर प्रतिबिंबित कर सकते हैं। जैसा कि नीचे दिखाया गया है, मेरे मामले में मैंने लाल और नीले रंग का चयन किया है, इसे मैट्रिक्स पर प्रदर्शित किया जा रहा है।
इसी तरह, आप कोडिंग को थोड़ा कस्टमाइज़ करके इन एलईडी मैट्रिसेस का उपयोग करके अलग-अलग एनिमेशन बनाने की कोशिश कर सकते हैं।