विषयसूची:

NodeMCU का उपयोग कर क्रिकेट स्कोरबोर्ड: 9 कदम (चित्रों के साथ)
NodeMCU का उपयोग कर क्रिकेट स्कोरबोर्ड: 9 कदम (चित्रों के साथ)

वीडियो: NodeMCU का उपयोग कर क्रिकेट स्कोरबोर्ड: 9 कदम (चित्रों के साथ)

वीडियो: NodeMCU का उपयोग कर क्रिकेट स्कोरबोर्ड: 9 कदम (चित्रों के साथ)
वीडियो: NodeMCU based Live Cricket score board | ESP8266 projects | IoT Projects 2024, जुलाई
Anonim
Image
Image
योजना
योजना

नमस्कार! मुझे हाल ही में IoT (इंटरनेट ऑफ थिंग्स) की दुनिया में पेश किया गया था क्योंकि मैं इस क्षेत्र में सबसे लोकप्रिय डिवाइस, ESP8266 में आया था। मैं इस छोटे और सस्ते उपकरण द्वारा खोली गई संभावनाओं की अंतिम संख्या से चकित था। जैसा कि मैं वर्तमान में इसके लिए नया हूं, मैंने इसका उपयोग करके एक प्रोजेक्ट बनाने और रास्ते में सीखने का फैसला किया। इसलिए, मैंने परियोजनाओं और विचारों के लिए इंटरनेट पर खोज शुरू की।

मुझे W. A. Smith द्वारा Arduino Cricket Score Ticker नामक एक अद्भुत परियोजना मिली। इस परियोजना में, क्रिकबज से लाइव क्रिकेट स्कोर प्रदर्शित करने के लिए ईथरनेट शील्ड और एसडी कार्ड के साथ Arduino का उपयोग किया जाता है। इस परियोजना ने मुझे सोचने पर मजबूर कर दिया।

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

क्रिकेट प्रशंसक नहीं है? कोई दिक्कत नहीं है! कोड में XML पार्सर होता है जिसका उपयोग किसी भी XML फ़ाइल से डेटा प्राप्त करने के लिए किया जा सकता है। डेटा प्राप्त करने के लिए बस सही कार्यों का उपयोग करें।

चरण 1: योजना

योजना
योजना

इंटरनेट का उपयोग करने के लिए NodeMCU डेवलपमेंट बोर्ड (ESP-12E मॉड्यूल के साथ) का उपयोग करने और क्रिकबज से XML कोड का अनुरोध करने की योजना है जिसमें चल रहे / आगामी मैचों के बारे में सभी जानकारी शामिल है। यह कोड एसडी कार्ड पर.xml फ़ाइल के रूप में सहेजा जाता है। एक्सएमएल कोड से आवश्यक डेटा को पार्स करने के लिए फ़ाइल को एसडी कार्ड से पढ़ा जाता है। मैं जानकारी को पार्स करने के लिए W. A. Smith's code का उपयोग करूंगा। उनके प्रयासों के लिए धन्यवाद। यदि आप Arduino और ईथरनेट शील्ड का उपयोग करके समान बनाना चाहते हैं, तो उसका प्रोजेक्ट देखें।

मेरा विचार है कि इसे यथासंभव छोटा बनाया जाए, इसके लिए एक कस्टम पीसीबी और केस बनाया जाए। अभी के लिए, चलिए एक प्रोटोटाइप बनाते हैं। लेकिन पहले, आइए इस परियोजना में प्रयुक्त घटकों से परिचित हों।

आएँ शुरू करें

चरण 2: OLED डिस्प्ले

OLED डिस्प्ले
OLED डिस्प्ले
OLED डिस्प्ले
OLED डिस्प्ले

मैंने अपने छोटे आकार के कारण OLED डिस्प्ले के साथ जाने का फैसला किया और वे सस्ते में उपलब्ध हैं। मैं 0.96 डिस्प्ले का उपयोग कर रहा हूं जो मैच की जानकारी प्रदर्शित करने के लिए पर्याप्त होगा। आप डिस्प्ले के किसी भी आकार का उपयोग कर सकते हैं।

मैं जिस डिस्प्ले का उपयोग कर रहा हूं वह SSD1306 ड्राइवर और I2C (2-वायर) इंटरफेस के साथ एक मोनोक्रोम है। प्रदर्शन के SPI संस्करण भी उपलब्ध हैं। इन्हें चलाना आसान काम है। डिस्प्ले चलाने के लिए आवश्यक SSD1306 और GFX लाइब्रेरी डाउनलोड करें। इन पुस्तकालयों को लिखने के लिए एडफ्रूट को धन्यवाद।

कनेक्शन बहुत सरल हैं।

  • GND से GND
  • वीसीसी से 3.3V
  • एससीएल से डी1
  • एसडीए से डी२.

चरण 3: एसडी कार्ड और एडेप्टर

एसडी कार्ड और एडेप्टर
एसडी कार्ड और एडेप्टर

एसडी कार्ड क्रिकबज से एक्सएमएल फाइल को तब तक स्टोर करता है जब तक कि सारी जानकारी पार्स नहीं हो जाती। एक बार आवश्यक जानकारी प्रदर्शित होने के बाद, फ़ाइल हटा दी जाती है। 10 - 20 केबी एक्सएमएल फाइल को स्टोर करने के लिए एसडी कार्ड का उपयोग करना थोड़ा अधिक है लेकिन यह पार्सिंग को बहुत आसान और समझने में आसान बनाता है।

कोई भी मेमोरी कार्ड इस्तेमाल किया जा सकता है। मैंने इसके छोटे फॉर्म फैक्टर के लिए माइक्रो एसडी कार्ड को चुना। आप एसडी कार्ड में तारों को सीधे मिला सकते हैं लेकिन ब्रेकआउट बोर्ड का उपयोग करने से काम आसान हो जाता है। यह ध्यान दिया जाना चाहिए कि सभी एसडी कार्ड 3.3V पर चलने के लिए हैं। इसका मतलब है कि इसे न केवल 3.3V का उपयोग करके संचालित किया जाना चाहिए, बल्कि माइक्रोकंट्रोलर और एसडी कार्ड के बीच संचार 3.3V तर्क स्तर का होना चाहिए। 3.3V से ऊपर का वोल्टेज इसे मार देगा! जहां तक NodeMCU का संबंध है, हम इसके बारे में परेशान नहीं होंगे क्योंकि NodeMCU स्वयं 3.3V पर चलता है जो कि ठीक है। यदि आप 5V लॉजिक लेवल के साथ किसी अन्य माइक्रोकंट्रोलर का उपयोग करने की योजना बना रहे हैं, तो सुनिश्चित करें कि आपके ब्रेकआउट बोर्ड में एक लेवल शिफ्टर बिल्ट-इन है (जैसा कि चित्र में दिखाया गया है)। यह मूल रूप से 5V को माइक्रोकंट्रोलर से SD कार्ड के अनुकूल 3.3V में परिवर्तित या 'शिफ्ट' करता है। 3.3V (जैसा मैंने किया) के साथ लेवल शिफ्टर का उपयोग करने से इसका कार्य प्रभावित नहीं होता है।

एसडी कार्ड संचार के लिए एसपीआई इंटरफेस का उपयोग करता है। सीएस या चिप सिलेक्ट पिन को किसी भी जीपीआईओ पिन से जोड़ा जा सकता है। मैंने GPIO15 (D8) को चुना। यदि आपने GPIO15 के अलावा किसी अन्य पिन का उपयोग किया है तो कोड में आवश्यक परिवर्तन करें

  • एससीके से डी5
  • MISO से D6
  • MOSI से D7
  • सीएस से डी8
  • वीसीसी से 3.3V
  • GND से GND

अपना एसडी कार्ड प्रारूपित करें

हम जिस पुस्तकालय का उपयोग कर रहे हैं वह FAT16 या FAT32 फाइल सिस्टम का समर्थन करता है। सुनिश्चित करें कि आपने एसडी कार्ड को सही प्रारूप में प्रारूपित किया है।

चरण 4: कीपैड बनाना

कीपैड बनाना
कीपैड बनाना
कीपैड बनाना
कीपैड बनाना
कीपैड बनाना
कीपैड बनाना

मैं परियोजना को यथासंभव छोटा रखना चाहता हूं। इसलिए, मैंने कीपैड के लिए एक अलग बोर्ड बनाने और बाद में इसे मुख्य बोर्ड के ऊपर माउंट करने का फैसला किया। यह कुछ जगह बचाएगा।

एक तैयार कुंजी मैट्रिक्स खरीदा जा सकता है लेकिन मेरे पास पुश बटन बिछाए गए थे। इसके अलावा, मैं इसे यथासंभव छोटा बनाना चाहता था। पंक्तियों और स्तंभों को जोड़ने की एक विशिष्ट व्यवस्था के लिए 3 x 3 मैट्रिक्स के लिए कुल 6 GPIO पिन की आवश्यकता होगी। यह काफी हद तक यह देखते हुए है कि OLED डिस्प्ले और SD कार्ड को भी जोड़ा जाएगा।

जब संदेह हो, तो Google इसे बाहर कर दें! मैंने यही किया और एक ऐसा तरीका ढूंढा जिसके लिए पूरे मैट्रिक्स को नियंत्रित करने के लिए सिर्फ 1 पिन की आवश्यकता होगी। यह वोल्टेज डिवाइडर मैट्रिक्स का उपयोग करके संभव बनाया गया है। प्रत्येक पंक्ति और स्तंभ के बीच प्रतिरोधक जुड़े हुए हैं। जब एक कुंजी दबाया जाता है, तो प्रतिरोधों का एक निश्चित संयोजन श्रृंखला में जुड़ जाता है जो एक वोल्टेज विभक्त बनाता है। सर्किट आरेख देखें। भिन्न वोल्टेज माइक्रोकंट्रोलर द्वारा पढ़ा जाएगा। प्रत्येक कुंजी एक अलग वोल्टेज उत्पन्न करेगी और इस प्रकार यह आसानी से पता लगाया जा सकता है कि मैट्रिक्स के आउटपुट वोल्टेज को पढ़कर कौन सी कुंजी दबाई गई थी। चूंकि हम अलग-अलग वोल्टेज स्तरों को पढ़ना चाहते हैं और अब केवल उच्च और निम्न हैं, हमें एक एनालॉग पिन की आवश्यकता होगी। सौभाग्य से NodeMCU पर A0 के रूप में लेबल किया गया एक एनालॉग पिन है। समस्या हल हो गई!

यदि आप मैट्रिक्स खरीदना चाहते हैं तो आरेख में दिखाए गए आंतरिक कनेक्शन देखें। किसी भी आयाम के मैट्रिक्स का उपयोग किया जा सकता है। पंक्तियों के बीच 2.2kΩ रोकनेवाला और स्तंभों के बीच 680Ω रोकनेवाला का उपयोग करना सुनिश्चित करें।

पुश बटन कनेक्ट करना

पिन 1 और 2 आंतरिक रूप से जुड़े हुए हैं। पिन 3 और 4 के साथ भी। जब बटन दबाया जाता है, तो सभी पिन एक साथ जुड़े होते हैं। एक परफ़ॉर्मर पर स्विच को जोड़ने का विचार प्राप्त करने के लिए चित्र देखें।

मैंने एक 3-पिन पुरुष हेडर कनेक्ट किया है ताकि इसे बाद में मुख्य बोर्ड से जोड़ा जा सके।

चरण 5: सब कुछ एक साथ रखना

सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना
सब कुछ एक साथ रखना

आप जहां चाहें घटकों को रखने की योजना बना सकते हैं। उस पर कोई प्रतिबंध नहीं है। मैं आपको दिखाऊंगा कि मैंने इसे कॉम्पैक्ट बनाने के लिए कैसे किया क्योंकि मुझे कुछ ऐसा चाहिए था जो हथेली में फिट हो। यह थोड़ा गन्दा हो सकता है इसलिए यदि आप सोल्डरिंग के साथ सहज हैं तो मेरे तरीके से प्रयास करें। मैंने बोर्ड के दोनों किनारों को दो-परत पीसीबी के रूप में आबाद करने का फैसला किया। एक तरफ NodeMCU और SD कार्ड ब्रेकआउट बोर्ड और दूसरी तरफ OLED और कीपैड।

एसडी कार्ड ब्रेकआउट सिर्फ दो महिला हेडर के बीच फिट होने के लिए होता है जो कि NodeMCU के लिए हैं। मैंने एंगल्ड पुरुष हेडर को हटा दिया, जिसके साथ ब्रेकआउट बोर्ड आया, इसे घुमाया और फिर से मिलाप किया ताकि पिन लंबवत नीचे की ओर जाएं जैसा कि चित्र में दिखाया गया है। एसडी कार्ड स्लॉट तक पहुंचना आसान हो जाता है।

मैंने एक 4-पिन महिला हेडर के पिन को एक समकोण पर झुकाया और इसे परफ़ॉर्म के तांबे की तरफ मिलाप किया जैसा कि चित्र में दिखाया गया है।

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

डिवाइस को पावर देने से पहले किसी भी शॉर्ट सर्किट के लिए अपने सभी कनेक्शनों की दोबारा जांच करें

चरण 6: कीपैड सेट करना

कीपैड सेट करना
कीपैड सेट करना

एक बार जब आप सभी कनेक्शनों की जांच कर लेते हैं, तो आप पहली बार अपने डिवाइस को पावर देने के लिए तैयार होते हैं। उंगलियों को पार कर! कोई जादू का धुआं नहीं? बधाई!

अब हम कीपैड सेट करने के लिए तैयार हैं। कीपैड के कार्य को याद करें। प्रत्येक कुंजी प्रेस एक अलग वोल्टेज का उत्पादन करेगा जो NodeMCU के एनालॉग पिन को खिलाया जाता है। ESP-12E में 10-बिट रिज़ॉल्यूशन का एनालॉग टू डिजिटल कन्वर्टर (ADC) है। 2 को घात करने पर 10 1024 देगा। इसका मतलब यह है कि हमें प्रेस की गई प्रत्येक कुंजी के लिए 0 और 1024 के बीच एक रीडिंग मिलेगी। आइए देखें कि हमें क्या रीडिंग मिलती है। लेकिन पहले, हमें उन मूल्यों को प्राप्त करने के लिए एक छोटा प्रोग्राम लिखना होगा। Arduino IDE खोलें, निम्नलिखित कोड को कॉपी पेस्ट करें और इसे NodeMCU पर अपलोड करें।

इंट कीपैडपिन = ए0;

शून्य सेटअप () {Serial.begin (115200); } शून्य लूप () {इंट आर = एनालॉग रीड (कीपैडपिन); सीरियल.प्रिंट्लन (आर); }

  • सीरियल मॉनिटर खोलें। बॉड दर को 115200 पर सेट करें।
  • अब कोई भी बटन दबाएं। आपको सीरियल मॉनीटर पर लगातार रीडिंग मिलनी चाहिए। छोटे उतार-चढ़ाव ठीक हैं। उनका मुख्य कोड में ध्यान रखा जाएगा। प्रत्येक कुंजी के लिए ऐसा ही करें।
  • प्रत्येक कुंजी का एक अलग पठन होना चाहिए।
  • सभी मान नोट कर लें। हमें बाद में उनकी आवश्यकता होगी।

चरण 7: आइए कोड

आइए कोड
आइए कोड
आइए कोड
आइए कोड
आइए कोड
आइए कोड

अपने कंप्यूटर पर नीचे दी गई Scoreboard.ino फ़ाइल डाउनलोड करें और Arduino IDE का उपयोग करके इसे खोलें।

अपलोड करने से पहले

1) स्कोरबोर्ड के लिए ताज़ा समय निर्धारित करें। उदाहरण के लिए, 15 सेकेंड के लिए 15 लीटर।

2) कनेक्ट करने के लिए राउटर का SSID और पासवर्ड दर्ज करें।

3) यदि आपने एसडी कार्ड के सीएस पिन को GPIO15 के अलावा किसी अन्य पिन से कनेक्ट करना चुना है तो आवश्यक परिवर्तन करें।

4) उन मानों को याद रखें जिन्हें हमने सभी चाबियों के लिए नोट किया था? हमें प्रत्येक मान के लिए एक कुंजी संख्या निर्दिष्ट करनी होगी। मैंने आपको पढ़ने में होने वाले उतार-चढ़ाव के बारे में भी बताया था। यह स्विच कॉन्टैक्ट्स के सही नहीं होने के कारण है। लंबे समय में, यह मान संपर्कों की उम्र बढ़ने के कारण वर्तमान मूल्य से विचलित हो सकता है जो सर्किट में अतिरिक्त प्रतिरोध जोड़ता है जिससे वोल्टेज बदल जाता है। हम कोड में इस समस्या का ध्यान रख सकते हैं।

हम 5 के मार्जिन के साथ एक ऊपरी सीमा और मूल्य की निचली सीमा जोड़ देंगे। उदाहरण के लिए, मुझे कुंजी 1 के लिए 617 का पठन मिला।

  • इसमें से 5 घटाएं। ६१७ - ५ = ६१२. यह निचली सीमा है।
  • अब इसमें 5 मिला लें। ६१७ + ५ = ६२२। यह ऊपरी सीमा है।
  • कोड के अंत तक स्क्रॉल करें। कोड में दो मानों के लिए दिए गए स्थान को चित्र में दिखाए अनुसार भरें।
  • इसे हर 9 मानों के लिए करें।

अगर (आर> ६१२ && आर <६२२) {कीनंबर = १; }

इसका क्या मतलब है?

यदि पठन (r) 612 से अधिक और 622 से कम है, तो कुंजी 1 दबाया जाता है। ६१२ और ६२२ के बीच कोई भी मान कुंजी १ के रूप में माना जाएगा। यह पढ़ने में उतार-चढ़ाव की समस्या को हल करता है।

चरण 8: केस बनाना

केस का निर्माण
केस का निर्माण
केस का निर्माण
केस का निर्माण
केस का निर्माण
केस का निर्माण
केस का निर्माण
केस का निर्माण

यह पूरी तरह से वैकल्पिक है। मैंने सोचा था कि परियोजना साफ-सुथरी दिखेगी और इसके चारों ओर एक केस के साथ पूरा होगा। इस नौकरी के लिए कोई उचित उपकरण नहीं होने के कारण, यह मेरे लिए बहुत बड़ा काम होने वाला था। मामला ऐक्रेलिक का उपयोग करके बनाया गया है।

सैंडपेपर का उपयोग करके किनारों को चिकना करके ग्लूइंग के लिए टुकड़े तैयार करें। मैंने सभी टुकड़ों को एक साथ जोड़ने के लिए फेवी क्विक (सुपर ग्लू) का इस्तेमाल किया। सुपर गोंद ठीक होने के बाद एक सफेद अवशेष छोड़ देता है। इसलिए इसे जोड़ों के बीच ही लगाएं। सुपर ग्लू के साथ काम करते समय आपको तेज और सटीक होना चाहिए क्योंकि यह जल्दी से सेट हो जाता है। इस काम के लिए ऐक्रेलिक सीमेंट सबसे उपयुक्त है।

फ़ाइल का उपयोग करके USB पोर्ट तक पहुँचने के लिए एक छोटा सा उद्घाटन किया। यह यूएसबी कॉर्ड डालने के लिए काफी बड़ा होना चाहिए।

पुश बटन के लिए फ्रंट कवर पर 3x3 ग्रिड बनाया। इससे पुश बटन को एक्सेस करना मुश्किल हो जाएगा। इस समस्या को हल करने के लिए, मैंने प्रत्येक कुंजी के लिए चौकोर टुकड़े काट दिए ताकि उनके बटन अब सतह तक बढ़ाए जा सकें।

इतनी सैंडिंग, कटिंग, फिक्सिंग और एडजस्ट करने के बाद आखिरकार यह हो गया!

चरण 9: मज़े करो

मज़े करो!
मज़े करो!

अंत में, सारी मेहनत की जाती है। अपने मिनी स्कोरबोर्ड को पावर दें और गेम से अपडेट रहें।

पावर अप करने के बाद, यह पहले एक्सेस प्वाइंट से जुड़ता है। एसडी कार्ड को इनिशियलाइज़ करता है। यदि एसडी कार्ड प्रारंभ नहीं किया गया है तो यह एक त्रुटि दिखाएगा।

मैच संख्या के साथ सभी मैचों की एक सूची प्रदर्शित की जाएगी।

कीपैड का उपयोग करके मिलान संख्या का चयन करें।

स्कोर प्रदर्शित किया जाएगा। आप डिस्प्ले पर जो कुछ भी देखना चाहते हैं उसे कस्टमाइज़ कर सकते हैं। मैं कोड की व्याख्या करने में बहुत गहराई तक नहीं जाऊंगा। पार्सिंग कैसे काम करती है, इस बारे में आप यहां विस्तृत विवरण पा सकते हैं।

मेनू पर वापस जाने के लिए, बैक (कुंजी 8) बटन को तब तक दबाए रखें जब तक कि "फ़ेचिंग स्कोर…" पृष्ठ प्रदर्शित न हो जाए।

भविष्य की योजनाएं

  • ESP8266 12-E मॉड्यूल के साथ एक कस्टम PCB डिज़ाइन करें।
  • एक रिचार्जेबल बैटरी जोड़ें।
  • नई सुविधाओं के साथ कोड में सुधार करें।

आशा है कि आपने निर्माण का आनंद लिया। इसे स्वयं बनाएं और मज़े करें! सुधार के लिए हमेशा कुछ जगह होती है और बहुत कुछ सीखने को मिलता है। अपने खुद के विचारों के साथ आओ। निर्माण के संबंध में किसी भी सुझाव पर टिप्पणी करने के लिए स्वतंत्र महसूस करें। अंत तक बने रहने के लिए धन्यवाद।

सिफारिश की: