विषयसूची:
- चरण 1: घटकों को इकट्ठा करना
- चरण 2: हमारी लाइब्रेरी स्थापित करना
- चरण 3: आवश्यक पुस्तकालय स्थापित करना
- चरण 4: मॉड्यूल को असेंबल करना
- चरण 5: ल्यूमिनोसिटी मॉड्यूल स्केच लिखना
- चरण 6: हमारे एटहोम मॉड्यूल का परीक्षण
- चरण 7: मॉड्यूल के लिए केस बनाना
वीडियो: एटहोम के साथ एक चमकदार मॉड्यूल बनाएं: 7 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
एटहोम एक पूरी तरह से ओपनसोर्स और ओपनहार्डवेयर छात्र परियोजना है, जिसे एपिटेक से एटहोम समूह द्वारा बनाया गया है, जिसका उद्देश्य स्मार्टफोन एप्लिकेशन और वेब एप्लिकेशन को खिलाने के लिए उपयोग किए जाने वाले एपीआई को उजागर करने वाले स्व-होस्ट किए गए डेटाबेस के साथ संचार करने वाले कई व्यक्तिगत सेंसर मॉड्यूल का एक कनेक्टेड समाधान विकसित करना है। मॉड्यूल एक घर के इनडोर वातावरण की निगरानी करते हैं और उपयोगकर्ता को एक दृश्य प्रतिक्रिया देने में सक्षम होते हैं, हरे (अच्छे) से लाल (खराब) में जा रहे हैं और प्रेषित डेटा उपयोगकर्ता द्वारा मॉड्यूल के सीरियल संचार के माध्यम से या पर दिखाई दे रहे हैं हमारे एप्लिकेशन यदि आप उनका उपयोग करते हैं।
भले ही यह परियोजना अभी भी एक सक्रिय विकास के अधीन है, हमारे मॉड्यूल की बुनियादी कार्यक्षमताएं अब तैयार हैं और कस्टम मॉड्यूल विकसित करने के लिए उपयोग में आसान माना जाता है। इसलिए, इसलिए मैं आपको यह देखने का प्रस्ताव दे रहा हूं कि ल्यूमिनोसिटी मॉड्यूल के इस उदाहरण के साथ अपना खुद का सरल मॉड्यूल कैसे बनाया जाए।
ये मॉड्यूल मूल रूप से एक Arduino- संगत बोर्ड के साथ बनाए गए हैं (एक आंशिक Arduino कोर तब तक पर्याप्त होना चाहिए जब तक इसमें स्ट्रीम, वायर और एक UART स्ट्रीम सपोर्ट हो), एक LED (लाल वाला या RGB) समस्या के मामले में लाल हो जाता है, a सेंसर, एक बिजली की आपूर्ति (दीवार बिजली-आपूर्ति या बैटरी) और एक लेजर-कट केस।
हां, यह निश्चित रूप से नया नहीं है, बहुत सारे सेंसर प्रोजेक्ट हैं, लेकिन हमें उम्मीद है कि स्वास्थ्य समस्याओं का पता लगाने, संचार और एक स्व-होस्टेड सर्वर पर जानकारी का भंडारण और विज़ुअलाइज़ेशन एप्लिकेशन जैसी अन्य सुविधाएँ आपकी मदद करेंगी। या अगर आप सिर्फ अपने घर की निगरानी करना चाहते हैं, सरल परियोजनाएं या कम दिलचस्प नहीं:)
चरण 1: घटकों को इकट्ठा करना
इस परियोजना के लिए, आपको अपना एटहोम मॉड्यूल बनाने के लिए कुछ घटकों की आवश्यकता होगी:
- 1x Arduino-संगत बोर्ड: यहां मैं एक Arduino UNO का उपयोग करूंगा (लेकिन यह अन्य बोर्डों जैसे TI लॉन्चपैड और ESP8266 बोर्ड के साथ भी काम करता है)
- 1x सेंसर: मैं एक TSL2561 ल्यूमिनोसिटी सेंसर का उपयोग करूंगा (समर्थित सेंसर की सूची हमारे पुस्तकालय के दस्तावेज़ीकरण पर उपलब्ध है)
- 1x एलईडी: मैं यहां एक ग्रोव चेनेबल आरजीबी एलईडी का उपयोग करूंगा (लेकिन यह एक साधारण लाल एलईडी या एक नियोपिक्सल भी हो सकता है)
- ड्यूपॉन्ट तार
संगत घटकों की सूची हमारी परियोजना के दस्तावेज़ीकरण पर उपलब्ध है।
चरण 2: हमारी लाइब्रेरी स्थापित करना
हमारे पुस्तकालय को स्थापित करने के लिए, आपको हमारे भंडार से डाउनलोड करना होगा (हम इसे बाद में Arduino IDE सूची और PlatformIO पर प्रकाशित करेंगे) इस लिंक के साथ:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
फिर, Arduino IDE में जाएं और "स्केच> लाइब्रेरी शामिल करें>. ZIP लाइब्रेरी जोड़ें …" चुनें। फिर "आर्टिफैक्ट्स.ज़िप" नाम की ज़िप फ़ाइल चुनें और "ओके" पर क्लिक करें।
चरण 3: आवश्यक पुस्तकालय स्थापित करना
काम करने के लिए, हमारे पुस्तकालय को आपके कंप्यूटर पर कुछ अन्य पुस्तकालयों को स्थापित करने की आवश्यकता है:
- आर्किपेंको टास्क शेड्यूलर लाइब्रेरी
- सीड स्टूडियो ग्रोव डिजिटल लाइट सेंसर लाइब्रेरी
- SEEED Studio Grove Chainable RGB LED लाइब्रेरी
- एडफ्रूट नियोपिक्सल लाइब्रेरी
आप उन्हें Arduino IDE के लाइब्रेरी मैनेजर के माध्यम से "स्केच"> "लाइब्रेरी शामिल करें"> "लाइब्रेरी प्रबंधित करें …" पर जाकर स्थापित कर सकते हैं।
जो नई विंडो खुलेगी उसमें सफेद सर्च बार में उस लाइब्रेरी का नाम लिखें जिसे आप इंस्टॉल करना चाहते हैं, फिर उसके ब्लॉक पर क्लिक करें। एक "इंस्टॉल करें" बटन दिखाई देगा, आपको बस उस पर क्लिक करना है और आईडीई इसे डाउनलोड करके आपके लिए इंस्टॉल कर देगा।
चरण 4: मॉड्यूल को असेंबल करना
हम सेंसर से शुरू करेंगे। एक तार के माध्यम से TSL2561 के VCC पिन को Arduino के 5V पिन से, सेंसर के GND पिन को Arduino के GND पिन में से एक और सेंसर के SDA और SCL पिन को Arduino के SDA और SCL पिन से कनेक्ट करें।. अब आप कर चुके हैं!
अब, Grove Chainable RGB LED के VCC पिन को Arduino के 5V पिन और LED के GND पिन को Arduino के दूसरे GND से कनेक्ट करें। यदि आप केवल एक 5V पिन के रूप में Arduino हैं, तो आप Arduino के 5v को ब्रेडबोर्ड की + पंक्ति से जोड़ने के लिए और अपने सभी घटकों को 5V पिन से जोड़ने के लिए, या स्ट्रिपबोर्ड के एक टुकड़े पर उन्हें एक साथ मिलाप करने के लिए एक ब्रेडबोर्ड का उपयोग कर सकते हैं। वागो कनेक्टर या जो भी आप पसंद करते हैं उसका उपयोग करें। अब, अपने LED के CI पिन को अपने Arduino के पिन 7 और अपने LED के DI पिन को अपने Arduino के पिन 8 से कनेक्ट करें। यदि आपके पास ऐसी एलईडी नहीं है, तो चिंता न करें, कोड में एक छोटे से बदलाव के साथ आपके Arduino बोर्ड की अंतर्निहित एलईडी या क्लासिक का उपयोग करना संभव है।
चरण 5: ल्यूमिनोसिटी मॉड्यूल स्केच लिखना
आइए एक नया स्केच बनाएं और हमारे मॉड्यूल के लिए कोड लिखें।
यदि आप स्केच के स्पष्टीकरण में रुचि नहीं रखते हैं, तो आप इसे अपने Arduino IDE में कॉपी और पेस्ट कर सकते हैं:
#शामिल
लाइट मॉड्यूल = एटहोम मॉड्यूल का उपयोग करना; स्ट्रीम *स्ट्रीम = {और सीरियल, नलप्टर}; GroveChainableLED::Pins grovePins = {7, 8}; GroveChainableLED एलईडी (और GrovePins); लाइट मॉड्यूल * मॉड्यूल = लाइट मॉड्यूल:: getInstance (); शून्य सेटअप () {// अपना सेटअप कोड यहां एक बार चलाने के लिए डालें: Serial.begin(9600); मॉड्यूल-> सेटस्ट्रीम (स्ट्रीम); GroveDigitalLightSensor * LightSensor = new GroveDigitalLightSensor (); मॉड्यूल-> सेट सेंसर (लाइट सेंसर); मॉड्यूल-> सेटडिस्प्ले (और एलईडी); मॉड्यूल-> सेटअप (); } शून्य लूप () {// बार-बार चलाने के लिए अपना मुख्य कोड यहां रखें: मॉड्यूल-> रन (); }
यदि आप यह समझना चाहते हैं कि यह कोड क्या कर रहा है, तो आप निम्नलिखित पढ़ सकते हैं या यदि आप रुचि नहीं रखते हैं, तो आप सीधे अगले चरण पर जा सकते हैं।
शुरू करने के लिए, हमें स्केच के शीर्ष पर इस पंक्ति को लिखकर अपने पुस्तकालय को अपने स्केच में शामिल करना होगा:
#शामिल
अब, हमें उस मॉड्यूल ऑब्जेक्ट के लिए एक उपनाम बनाने की आवश्यकता है जिसका हम उपयोग करेंगे। आप इसे एक बॉक्स के रूप में देख सकते हैं जिसमें इसके घटकों को बदलने के लिए उपयोग किए जाने वाले कई बटन हैं, इसे शुरू करें, इसे रोकें, आदि। जैसा कि यह एक टेम्प्लेट द्वारा बनाया गया एक बॉक्स है (सामान्य टेम्पलेट की तरह हम इंसानों के रूप में परियोजनाओं के लिए उपयोग करते हैं, इसका एक स्टार्टर बेस होता है और Arduino का कंपाइलर हमारे द्वारा दिए गए मापदंडों के आधार पर अंतिम कोड बनाता है) एक सेंसर मान का प्रतिनिधित्व करने वाले प्रकार को परिभाषित करता है और हम मेमोरी में कितने सेंसर वैल्यू रखना चाहते हैं, यह इसके नाम में निर्दिष्ट है और सामान्य रूप से हर बार जब हम इसका उपयोग करना चाहते हैं तो इसे दोहराया जाना चाहिए। जो थोड़ा परेशान करने वाला है, इसलिए हम इस बॉक्स के पूरे नाम के साथ एक नया नाम, एक उपनाम जोड़ेंगे।
आइए उदाहरण के लिए कहें कि मैं इस बॉक्स को "लाइट मॉड्यूल" नाम देना चाहता हूं, क्योंकि इसका उपयोग चमकदार निगरानी मॉड्यूल को लागू करने के लिए किया जाएगा और मैं एक समय में केवल 1 मान रखना चाहता हूं। हमारे TSL2561 सेंसर द्वारा लक्स में चमक को एक अभिन्न प्रकार के रूप में दर्शाया गया है, जिसे कंप्यूटर द्वारा uint16_t के रूप में दर्शाया गया है। हमारा उपनाम इस तरह दिखेगा:
लाइट मॉड्यूल = एटहोम मॉड्यूल का उपयोग करना;
"उपयोग" कीवर्ड का अर्थ है कि हम एक उपनाम बना रहे हैं और हम इसे "=" वर्ण के बाद अनुक्रम से मेल खाने के बाद जो नाम देते हैं।
"AtHomeModule" इस बॉक्स का वास्तविक नाम है जिसे हम एक नया नाम दे रहे हैं, और मान प्रतिनिधित्व और स्मृति में रखे गए मानों की संख्या को परिभाषित करने वाले पैरामीटर "" के बीच सूचीबद्ध हैं।
अब, जब हम बाद में "AtHomeModule" नाम का उपयोग करेंगे, तो Arduino को पता चल जाएगा कि यह "AtHomeModule" के पूरे नाम को संदर्भित करता है।
यदि आप चाहते हैं कि आपका बॉक्स 1 के बजाय 5 मानों को मेमोरी में रखने में सक्षम हो, तो आपको बस "1" को "5" से बदलने की आवश्यकता है और Arduino आपके लिए एक अलग प्रकार का बॉक्स उत्पन्न करेगा जो आप चाहते हैं। हालांकि, ध्यान दें कि यदि मॉड्यूल को सेंसर के 5 मानों को प्रभावी ढंग से मापने के लिए समय से पहले अपने मूल्यों को भेजने के लिए प्रोग्राम किया गया है, तो आप उनमें से 5 को कभी नहीं देखेंगे क्योंकि यह पिछले अपलोड के बाद से केवल नए मान भेजता है।
इसके बाद, हमें संचार के लिए मॉड्यूल द्वारा उपयोग किए जाने वाले Arduino धाराओं पर पॉइंटर्स युक्त पॉइंटर्स की एक सरणी बनाने की आवश्यकता होती है, जिसे हमेशा कीवर्कड "nullptr" द्वारा समाप्त किया जाता है। यहां, मैं केवल Arduino की "सीरियल" स्ट्रीम का उपयोग कर रहा हूं जो यूएसबी पोर्ट द्वारा कंप्यूटर के साथ संचार करता है, इसलिए सरणी इस तरह दिखती है:
स्ट्रीम *स्ट्रीम = {और सीरियल, नलप्टर};
"*" वर्ण का अर्थ है कि प्रकार एक सूचक है (तत्व का स्थान, स्वयं तत्व नहीं) और "" कोष्ठक का अर्थ है Arduino में यह एक सरणी है, इसलिए हम कई मान रख सकते हैं।
इसके बाद, हमें अपनी एलईडी बनाने की जरूरत है। ऐसा करने के लिए, हमें निम्नलिखित दो पंक्तियाँ लिखनी होंगी;
GroveChainableLED::Pins grovePins = {7, 8};
GroveChainableLED एलईडी (और GrovePins);
यदि आपके पास ग्रोव आरजीबी एलईडी नहीं है, लेकिन फिर भी एक दृश्य प्रतिक्रिया चाहते हैं, तो आप इसे स्केच में एक साधारण बदलाव के साथ कर सकते हैं। पिछली दो पंक्तियों को इस पंक्ति से बदलें:
मोनोक्रोमैटिक एलईडी एलईडी (LED_BUILTIN);
इस कॉन्फ़िगरेशन में ग्रीन बिल्ट-इन एलईडी तब तक चालू रहेगी जब तक मॉनिटर किया गया मान स्वास्थ्य के लिए ठीक है और बॉन्ड से बाहर होने पर बंद हो जाता है। यदि आप इसे बॉन्ड से बाहर होने पर चालू करना पसंद करते हैं (क्योंकि आप उदाहरण के लिए पिन 13 पर हरे रंग के बजाय एक लाल एलईडी का उपयोग कर रहे हैं) तो आप इसके बजाय इस लाइन का उपयोग कर सकते हैं:
मोनोक्रोमैटिक एलईडी एलईडी (LED_BUILTIN, सच);
अगला कदम हमारे मॉड्यूल को ही बनाना है। यह पहली बार किया गया है जब हम "getInstance" विधि को कॉल करके स्मृति में इसका स्थान प्राप्त करते हैं, जैसे:
लाइट मॉड्यूल * मॉड्यूल = लाइट मॉड्यूल:: getInstance ();
फिर, हमें Arduino के "सेटअप ()" फ़ंक्शन में पैरामीटर सेट करने की आवश्यकता है, जो Arduino स्केच में हमेशा की तरह "सीरियल" पोर्ट को इनिशियलाइज़ करके शुरू होता है:
सीरियल.बेगिन (९६००);
हम इस लाइन को लिखकर लाइट सेंसर बनाते हैं:
GroveDigitalLightSensor * LightSensor = new GroveDigitalLightSensor ();
फिर, हम अपने मॉड्यूल को उनके माध्यम से संवाद करने के लिए Arduino Stream पर हमारे पॉइंटर्स की सरणी का उपयोग करने के लिए कहते हैं:
मॉड्यूल-> सेटस्ट्रीम (स्ट्रीम);
हम अपने मॉड्यूल को प्रकाश की तीव्रता की निगरानी के लिए अपने प्रकाश संवेदक का उपयोग करने के लिए भी कहते हैं जहां मॉड्यूल है:
मॉड्यूल-> सेट सेंसर (लाइट सेंसर);
हम अपने मॉड्यूल को एक दृश्य प्रतिक्रिया देने के लिए हमारे एलईडी का उपयोग करने के लिए कहते हैं:
मॉड्यूल-> सेटडिस्प्ले (और एलईडी);
अंत में, हम अपने मॉड्यूल को बताते हैं कि यह अपने स्वयं के "सेटअप" फ़ंक्शन को कॉल करके किसी भी आंतरिक कॉन्फ़िगरेशन को करने के लिए तैयार है:
मॉड्यूल-> सेटअप ();
हमारा अंतिम चरण अब हमारे मॉड्यूल के "रन ()" फ़ंक्शन को कॉल करना है, जिसे "लूप" फ़ंक्शन के अंदर इस लाइन को लिखकर Arduino के "लूप" फ़ंक्शन के प्रत्येक पुनरावृत्ति पर कॉल करने के लिए डिज़ाइन किया गया है:
मॉड्यूल-> रन ();
अब, हमारा स्केच अंततः Arduino पर अपलोड करने और हमारे मॉड्यूल का परीक्षण करने के लिए तैयार है!
चरण 6: हमारे एटहोम मॉड्यूल का परीक्षण
Arduino पर स्केच अपलोड करने के लिए, "टूल्स"> "पोर्ट"> "[COMx या /dev/x] (Arduino/Genuino UNO)" में जाकर अपना Arduino UNO बोर्ड चुनें।
आखिरी बात, अपने बोर्ड में स्केच अपलोड करने के लिए बस "अपलोड" बटन (दाईं ओर इशारा करते हुए तीर के साथ सर्कल बटन, टूल बार का दूसरा आइकन) पर क्लिक करें।
हॊ गया! अब आप मॉड्यूल काम कर रहे हैं और Arduino के सीरियल मॉनिटर में दिखाई देने वाले आपके कंप्यूटर पर मान भेज रहे हैं। आप "टूल्स" मेनू में Arduino के "सीरियल मॉनिटर" को खोलकर इसकी जांच कर सकते हैं और आपके पास इस चरण के दूसरे शीर्षक चित्र जैसा दिखने वाला आउटपुट होना चाहिए:)
चरण 7: मॉड्यूल के लिए केस बनाना
आप अपने मॉड्यूल के लिए 3 मिमी प्लाईवुड प्लैंक में लेजर काटकर एक साधारण बॉक्स केस बना सकते हैं।
अपने बॉक्स केस बनाने के लिए, हम मेकरकेस का उपयोग वांछित आयामों पर एक टेम्प्लेट तैयार करने के लिए करते हैं जिसे हम बाद में अनुकूलित करते हैं। आपको इस चरण से जुड़ी ल्यूमिनोसिटी मॉड्यूल की svg फ़ाइल मिलेगी।
फिर बस एक को छोड़कर चेहरों को एक साथ गोंद दें ताकि आप इसे बाद में खोल सकें, अपना सर्किट अंदर रखें और एलईडी को केस के छेद में चिपका दें (हम छेद को भरने के लिए पारदर्शी टेप का उपयोग करते हैं और एलईडी को सामने रखने के अलावा प्रकाश को फैलाते हैं। इसके)।
अब अपने Arduino को पावर देने के लिए बस एक बैटरी जोड़ें, केस को बंद करें और आपका मॉड्यूल तैयार है और अच्छा दिखना चाहिए:)
सिफारिश की:
आरएफ मॉड्यूल 433MHZ - बिना किसी माइक्रोकंट्रोलर के 433MHZ RF मॉड्यूल से रिसीवर और ट्रांसमीटर बनाएं: 5 कदम
आरएफ मॉड्यूल 433MHZ | बिना किसी माइक्रोकंट्रोलर के 433MHZ RF मॉड्यूल से रिसीवर और ट्रांसमीटर बनाएं: क्या आप वायरलेस डेटा भेजना चाहेंगे? आसानी से और बिना किसी माइक्रोकंट्रोलर की आवश्यकता के? यहाँ हम जाते हैं, इस निर्देश में मैं आपको mi बेसिक आरएफ ट्रांसमीटर और उपयोग के लिए तैयार रिसीवर दिखाऊंगा! इस निर्देश में आप बहुत ही उपयोग करके डेटा भेज और प्राप्त कर सकते हैं
कस्टम चमकदार बहुरंगी मिकी कान: 9 कदम (चित्रों के साथ)
कस्टम ग्लोइंग मल्टीकलर मिकी एर्स: मैं एक छोटी सी परियोजना साझा करना चाहता था जिस पर मैंने अपनी पत्नी और मेरी आखिरी डिज्नीलैंड यात्रा के लिए काम किया था! उसके पास फूलों और सोने के तार से बने ये खूबसूरत कस्टम मिन्नी माउस कान हैं, इसलिए मैंने सोचा कि क्यों न मैं अपने मिकी माउस के कानों को थोड़ा और जादू बना दूं
कैसे एक दीवार घड़ी चमकदार हाथ और समय अंतराल मार्कर देने के लिए: 14 कदम (चित्रों के साथ)
एक दीवार घड़ी चमकदार हाथ और समय अंतराल मार्कर कैसे दें: हम चमकदार हाथों के साथ एक बेडरूम की दीवार घड़ी चाहते थे और पांच मिनट और चौथाई घंटे के अंतराल का प्रदर्शन करना चाहते थे। इसे आसानी से बिस्तर से पढ़ा जा सकता था और चमक को रात भर रहना पड़ता था। आधुनिक घड़ियों पर इस्तेमाल किया जाने वाला चमकदार रंग
कैसे एक बेहद चमकदार एलईडी टॉर्च का निर्माण करें !: 8 कदम (चित्रों के साथ)
कैसे एक बहुत ही उज्ज्वल एलईडी टॉर्च का निर्माण करें !: इस निर्देशयोग्य (मेरी पहली) में मैं आपको दिखाने जा रहा हूं कि कैसे मैंने इस हास्यास्पद उज्ज्वल हाथ में एलईडी टॉर्च का निर्माण किया ताकि आप भी रात को दिन में बदल सकें … और अपने दोस्तों को प्रभावित कर सकें। हम में से कैंपिन जैसी गतिविधियों के लिए अक्सर फ्लैशलाइट का उपयोग करते हैं
दुनिया की सबसे चमकदार नीली एलईडी टॉर्च बनाएं: 5 कदम
दुनिया की सबसे चमकदार नीली एलईडी फ्लैशलाइट बनाएं: अपने 3 वाट (या 1 या संभवतः यहां तक कि 4 वाट) रेओवैक एलईडी फ्लैशलाइट के बीम रंग को कैसे बदलें? एक बदमाश एलईडी फ्लैशलाइट पर $ 30 खर्च करना चाहते हैं और इसे एक बैडर गधे में बदलना चाहते हैं नीली एलईडी फ्लैशलाइट? चाहते हैं अपनी वारंटी रद्द करने के लिए?! पर न पढ़ें, कृपया न करें, हम