विषयसूची:

YouTube साइट के लिए Arduino लाइब्रेरी बनाना: 7 कदम
YouTube साइट के लिए Arduino लाइब्रेरी बनाना: 7 कदम

वीडियो: YouTube साइट के लिए Arduino लाइब्रेरी बनाना: 7 कदम

वीडियो: YouTube साइट के लिए Arduino लाइब्रेरी बनाना: 7 कदम
वीडियो: अरुडिनो मास्टरक्लास | 90 मिनट में पूर्ण प्रोग्रामिंग कार्यशाला! 2024, नवंबर
Anonim
Image
Image
एक पुस्तकालय क्या है?
एक पुस्तकालय क्या है?

हेलो सब लोग, मैंने हाल ही में YouTube साइट नामक एक सेवा बनाई है जो YouTube Analytics API से ग्राहकों का डेटा निकाल सकती है और आपको अधिक सटीक ग्राहक संख्या प्रदान कर सकती है क्योंकि YouTube ने परिणामों को एकत्र करना शुरू किया है। इसके साथ, मैंने एक उदाहरण स्केच बनाया है, लेकिन मैं एक Arduino लाइब्रेरी भी बनाना चाहता था ताकि लोग इसका अधिक आसानी से उपयोग कर सकें।

चरण 1: पुस्तकालय क्या है?

एक पुस्तकालय क्या है?
एक पुस्तकालय क्या है?

एक पुस्तकालय कोड का एक टुकड़ा है जो एक विशिष्ट ऑपरेशन को संभाल सकता है, एक प्रकार के डेटा को संसाधित कर सकता है या यह जान सकता है कि किसी विशिष्ट हार्डवेयर तत्व के साथ कैसे इंटरैक्ट करना है। वे हमें आसानी से Arduino वातावरण का विस्तार करने की अनुमति देते हैं और उनमें से बहुत से ऐसे हैं जो Arduino IDE के साथ पहले से इंस्टॉल आते हैं।

मेरे जैसे मामलों में, जहां हम Arduino में नई संभावनाएं जोड़ना चाहते हैं, हम अन्य लोगों के लिए उनका उपयोग करने के लिए अपने स्वयं के पुस्तकालय बना सकते हैं। सभी स्थापित पुस्तकालय हमारे कंप्यूटर पर एक विशिष्ट फ़ोल्डर में रहते हैं। विंडोज पीसी के लिए मेरे मामले में, पुस्तकालय दस्तावेज़/Arduino फ़ोल्डर के अंतर्गत रहते हैं। आपके उपयोगकर्ता नाम के आधार पर पूरा पथ आपके लिए विशिष्ट होगा।

चरण 2: पुस्तकालय संरचना और फ़ाइलें

पुस्तकालय संरचना और फ़ाइलें
पुस्तकालय संरचना और फ़ाइलें

अपनी लाइब्रेरी का निर्माण शुरू करने के लिए, हमें सबसे पहले उसके नाम से एक फ़ोल्डर बनाने की आवश्यकता है, इसलिए मैंने YouTube साइट नामक एक फ़ोल्डर बनाया है। पुस्तकालय के न्यूनतम संस्करण में, हमारे पास कम से कम दो फाइलें होनी चाहिए।

पहला एक तथाकथित "हेडर" फ़ाइल है जिसमें हमारे पुस्तकालय द्वारा प्रदान की जाने वाली विधियों और गुणों की सभी परिभाषाएँ शामिल हैं, और दूसरी स्रोत फ़ाइल है जिसमें सभी स्रोत कोड होंगे।

शीर्षलेख फ़ाइलों में ".h" का विस्तार होता है जबकि स्रोत फ़ाइल में ".cpp" का विस्तार होता है और उनके पास आमतौर पर फ़ाइल नाम के रूप में पुस्तकालय का नाम होता है। मेरे मामले में, दो फाइलों को "YouTubeSight.h" और "YouTubeSight.cpp" कहा जाता है।

लाइब्रेरी कोड लिखने की प्रक्रिया थोड़ी थकाऊ और निराशाजनक हो सकती है, खासकर जब आप पहली बार लाइब्रेरी लिख रहे हों, लेकिन बहुत सारे परीक्षण और त्रुटि के साथ, आप वांछित परिणाम प्राप्त कर सकते हैं। उसके कारण मैं आपको दो फाइलों के तैयार कोड के माध्यम से मार्गदर्शन करूंगा और इसे समझाऊंगा।

पूरा कोड और पुस्तकालय निम्नलिखित लिंक पर GitHub से डाउनलोड के लिए उपलब्ध हैं:https://github.com/bkolicoski/arduino-youtube-sight

चरण 3: हैडर फ़ाइल

हैडर फ़ाइल
हैडर फ़ाइल
हैडर फ़ाइल
हैडर फ़ाइल
हैडर फ़ाइल
हैडर फ़ाइल

हेडर फाइल के अंदर, शुरुआत में, पूरी फाइल एक "ifndef" स्टेटमेंट के अंदर लिपटी होती है जो यह जांचती है कि निर्दिष्ट वेरिएबल परिभाषित है या नहीं। यह पुस्तकालय का उपयोग करने वाले किसी भी व्यक्ति के लिए त्रुटियों को रोकेगा यदि वे गलती से एक ही स्केच में इसे दो बार शामिल करते हैं।

इसके बाद, हमें आधार Arduino लाइब्रेरी को शामिल करने की आवश्यकता है और चूंकि हम YouTube साइट को अनुरोध भेजने के लिए किसी प्रकार के HTTP क्लाइंट के साथ काम करेंगे, इसलिए हम बेस क्लाइंट लाइब्रेरी को भी शामिल करेंगे।

इससे पहले कि हम अपने मुख्य वर्ग की सामग्री लिखना शुरू करें, हमें किसी भी स्थिर चर और सेटिंग्स को परिभाषित करने की आवश्यकता है जिसे हम संशोधित नहीं करना चाहते हैं। मेरे मामले में, ऐसे दो चर हैं। YouTube साइट सेवा का मुख्य URL और टाइमआउट वेरिएबल जिसका उपयोग हम यह जांचने के लिए करेंगे कि हम किसी मान को कितनी देर तक पढ़ते हैं।

साथ ही इस खंड में, हम किसी भी कस्टम प्रकार को परिभाषित कर सकते हैं जिसे हम इस चैनल सांख्यिकी संरचना की तरह उपयोग करना चाहते हैं जिसे हम परिणामों को सहेजेंगे।

वर्ग संरचना परिभाषा को दो भागों में विभाजित किया गया है। पहला भाग सभी सार्वजनिक कार्यों और संपत्तियों की परिभाषा है और दूसरा भाग सभी निजी कार्यों और संपत्तियों की परिभाषा है। दोनों के बीच अंतर यह है कि हमारे पुस्तकालय के अंतिम उपयोगकर्ता सीधे निजी अनुभाग से कुछ भी उपयोग नहीं कर पाएंगे, जबकि वे सार्वजनिक भाग से किसी भी संपत्ति और कार्यों को सीधे संशोधित और उपयोग करने में सक्षम होंगे।

पब्लिक सेक्शन में, हम क्लास कंस्ट्रक्टर को परिभाषित करते हैं, channelStats वेरिएबल जहां हम परिणाम स्टोर करेंगे, वह फ़ंक्शन जो डेटा प्राप्त करेगा और एक डिबग प्रॉपर्टी जिसे हम बाद में उन मामलों की जांच के लिए उपयोग कर सकते हैं जहां हमें अपेक्षित परिणाम नहीं मिल सकते हैं।

निजी गुणों के लिए, हम चैनल GUID को संग्रहीत करने के लिए एक को परिभाषित करेंगे, HTTP क्लाइंट के लिए एक सूचक जिसका हम उपयोग करेंगे और एक फ़ंक्शन जो YouTube साइट से लौटाई गई स्ट्रिंग को विभाजित करेगा।

चरण 4: स्रोत फ़ाइल

स्रोत फ़ाइल
स्रोत फ़ाइल
स्रोत फ़ाइल
स्रोत फ़ाइल

अब आइए स्रोत फ़ाइल के अंदर इन सभी के वास्तविक कार्यान्वयन को देखें।

हमारे लिए पहला कदम अपनी हेडर फाइल को शामिल करना है जिसे हमने अभी बनाया है और फिर हमें लाइब्रेरी कंस्ट्रक्टर को परिभाषित करने की आवश्यकता है। इसमें हम दो वेरिएबल पास करते हैं। GUID को उस निजी चर में सहेजा जाता है जिसे हमने पहले परिभाषित किया था और क्लाइंट को संदर्भ द्वारा पारित किया जाता है ताकि हम उसी उदाहरण को कॉल कर सकें जो हमें मिला था।

लाइब्रेरी के मुख्य गेटडाटा फ़ंक्शन को पहले रिटर्न प्रकार निर्दिष्ट करके परिभाषित किया जाता है, उसके बाद लाइब्रेरी का नाम और फ़ंक्शन का नाम। मैं इस फ़ंक्शन में प्रत्येक पंक्ति के बारे में विस्तार से नहीं बताऊंगा, लेकिन सामान्य तौर पर, फ़ंक्शन YouTube साइट सर्वर से एक कनेक्शन खोलता है, आंकड़े प्राप्त करने के लिए अनुरोध भेजता है और फिर लौटाए गए डेटा की मदद से पार्स करता है निजी getValue फ़ंक्शन।

प्राप्त परिणाम तब channelStats चर पर सेट किए जाते हैं और एक संकेतक वापस कर दिया जाता है यदि हम परिणाम प्राप्त करने में सफल रहे या नहीं और इसके साथ ही हमारे पुस्तकालय का मूल पूरा हो गया है।

चरण 5: उदाहरण रेखाचित्र प्रदान करना

उदाहरण रेखाचित्र प्रदान करना
उदाहरण रेखाचित्र प्रदान करना

आमतौर पर आप, प्रत्येक पुस्तकालय उदाहरण प्रदान करता है जिसे आप जल्दी से लोड कर सकते हैं और यह दिखाने के लिए उपयोग कर सकते हैं कि पुस्तकालय क्या कर सकता है और इसे कैसे करना है। ऐसे उदाहरण प्रदान करने के लिए, हमें पुस्तकालय संरचना को संशोधित करने की आवश्यकता है जहां अब हेडर और स्रोत फ़ाइल "src" फ़ोल्डर में होगी और "उदाहरण" नामक लाइब्रेरी रूट के तहत एक नया फ़ोल्डर जोड़ा जाएगा।

कोई भी Arduino स्केच जिसे आप इस फ़ोल्डर के अंदर रखते हैं, Arduino IDE से आपकी लाइब्रेरी के लिए एक उदाहरण के रूप में परोसा जाएगा और लोग इसे जल्दी से एक्सप्लोर कर सकते हैं और सीख सकते हैं कि लाइब्रेरी कैसे काम करती है।

चरण 6: पुस्तकालय प्रबंधक को प्रकाशित करना

पुस्तकालय प्रबंधक को प्रकाशन
पुस्तकालय प्रबंधक को प्रकाशन

पुस्तकालय का उपयोग करने के लिए, लोगों को बस आपके पुस्तकालय की हेडर फ़ाइल को अपने स्केच में शामिल करना होगा और Arduino IDE इसके साथ मिलकर इसका निर्माण करेगा। लेकिन ऐसा करने के लिए, उन्हें पहले इसे अपनी मशीनों पर स्थापित करना होगा।

एक सामान्य तरीका यह है कि लाइब्रेरी को GitHub से डाउनलोड किया जाए और इसे IDE में ज़िप इंस्टॉलर के माध्यम से इंस्टॉल किया जाए या इसे लाइब्रेरी फोल्डर के अंदर रखा जाए जैसा कि हमने इसे बनाते समय किया था। हालाँकि, Arduino IDE में एक टूल भी शामिल है, जिसे लाइब्रेरी मैनेजर कहा जाता है, जो आपको IDE से सीधे लाइब्रेरी खोजने की अनुमति देता है।

इसमें आपकी लाइब्रेरी को शामिल करने के लिए, हमें पहले "लाइब्रेरी.प्रॉपर्टीज" नामक रूट फ़ोल्डर में एक अतिरिक्त फ़ाइल बनाने की आवश्यकता है और इसमें हमें लाइब्रेरी का नाम, वर्तमान संस्करण और कुछ अतिरिक्त जानकारी निर्दिष्ट करने की आवश्यकता है जो लाइब्रेरी मैनेजर की मदद करेगी। इसके बारे में बेहतर जानकारी प्रदर्शित करने के लिए।

फ़ाइल के साथ, Arduino GitHub पृष्ठ पर एक समस्या बनाने की आवश्यकता है जो बस आपकी लाइब्रेरी को इसके लिंक के साथ इंडेक्स में शामिल करने के लिए कहता है और एक बार इसे Arduino स्टाफ द्वारा अनुमोदित और जोड़ा जाने के बाद, लाइब्रेरी मैनेजर करेगा परिणामों में अपने पुस्तकालय की पेशकश करना शुरू करें। इसके अतिरिक्त, प्रबंधक भविष्य में GitHub रेपो में किसी भी संस्करण टैग की तलाश करेगा और परिवर्तन होने पर इसका उपयोग करने वाले लोगों को एक अपडेट प्रदान करेगा।

चरण 7: अगले चरण

मुझे उम्मीद है कि इस निर्देश के बाद, आपको इस बात की बेहतर समझ है कि Arduino लाइब्रेरी कैसे काम करती है, आप एक कैसे बना सकते हैं और सबसे महत्वपूर्ण बात, मुझे उम्मीद है कि आप अपने अगले बड़े विचार पर काम करना शुरू करने के लिए प्रेरित होंगे।

किसी भी अतिरिक्त प्रश्न या सुझाव के लिए बेझिझक टिप्पणियों में लिखें, मेरे YouTube चैनल को सब्सक्राइब करें और इंस्ट्रक्शंस पर मुझे यहां फॉलो करें।

सिफारिश की: