विषयसूची:

वायरलेस एसडी कार्ड रीडर [ESP8266]: 10 कदम (चित्रों के साथ)
वायरलेस एसडी कार्ड रीडर [ESP8266]: 10 कदम (चित्रों के साथ)

वीडियो: वायरलेस एसडी कार्ड रीडर [ESP8266]: 10 कदम (चित्रों के साथ)

वीडियो: वायरलेस एसडी कार्ड रीडर [ESP8266]: 10 कदम (चित्रों के साथ)
वीडियो: ESP8266: How To Make Wi-Fi Radio [ESP8266 Audio] 2024, जुलाई
Anonim
Image
Image

यूएसबी को सार्वभौमिक माना जाता था, और मुख्य लक्ष्य अन्य उपकरणों के साथ एक हॉट-स्वैपेबल, इंटरफ़ेस के लिए सुपर आसान बनाना था, लेकिन वर्षों से यह विचार खराब हो गया। इन यूएसबी पोर्ट के कई अलग-अलग प्रकार हैं जो कभी-कभी बहुत निराशाजनक होते हैं और जिस तरह से ये काम पूरी तरह से उनके नाम [यूएसबी - यूनिवर्सल सीरियल बस] का खंडन करते हैं क्योंकि प्रत्येक यूएसबी रिसीवर किसी भी यूएसबी डिवाइस के साथ संगत होना चाहिए! आप अपने यूएसबी स्टिक या कीबोर्ड को चार्जर के अंदर प्लग इन नहीं कर सकते हैं और इसके काम करने की उम्मीद कर सकते हैं।

लेकिन अवधारणा बहुत अच्छी लगती है! इसलिए इस "यूनिवर्सल-पोर्ट" अवधारणा को शुरू करने के लिए मैंने एक साधारण प्रोजेक्ट "वायरलेस कार्ड रीडर" के साथ शुरुआत की।

इसने मेरी सभी इच्छाओं को पूरा किया, मुझे बस इसे किसी भी यूएसबी रिसीवर के अंदर प्लग करना है, इससे कोई फर्क नहीं पड़ता कि कौन सा है!

जैसे ही आप इसे प्लग इन करते हैं, यह एक एक्सेस प्वाइंट बनाता है जहां हम कनेक्ट कर सकते हैं और फिर एक्सेस प्वाइंट से कनेक्ट हो सकते हैं और किसी भी संगत डिवाइस में किसी भी एफ़टीपी क्लाइंट एप्लिकेशन को खोल सकते हैं। इस सेटअप के साथ, हम वायरलेस तरीके से एसडी कार्ड में फाइलों को कॉपी करने के साथ-साथ सेव भी कर सकते हैं!

आपूर्ति

ये उन उत्पादों की सूची है जो इस परियोजना को आसानी से करने में आपकी सहायता कर सकते हैं

(संबद्ध लिंक)

  • Esp12E:
  • एसडी कार्ड:
  • माइक्रो एसडी एडाप्टर:
  • हैडरपिन:
  • एंगल्ड हैडर पिन:
  • तार:
  • एफटीडीआई:
  • Arduino नैनो + प्रोग्रामर वायर:
  • पुरुष यूएसबी:
  • पीसीबी:
  • सोल्डरिंग गन:
  • सोल्डरिंग लीड:

चरण 1: एसडी (सिक्योर डिजिटल) कार्ड

एसडी (सिक्योर डिजिटल) कार्ड
एसडी (सिक्योर डिजिटल) कार्ड

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

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

अभी के लिए, मान लें कि SDIO तेज़ है लेकिन लागू करना कठिन है और SPI धीमा है लेकिन लागू करना आसान है। चूंकि अधिकांश माइक्रोकंट्रोलर डिफ़ॉल्ट रूप से SPI का समर्थन करते हैं, इसलिए हम उस पर टिके रहेंगे।

एसपीआई के लिए एसडी कार्ड पिनआउट

पिन -1 - सीएस (चिप चयन) पिन -2 - डीआई (एमओएसआई) पिन -3 - जीएनडीपीिन -4 - वीसीसीपीिन -5 - एससीएलके पिन -6 - जीएनडीपिन -7 - डीओ (एमआईएसओ) पिन -8 - एनसीपीआईएन-9 - एनसी

चरण 2: एसडी कार्ड एडाप्टर संशोधन

एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन
एसडी कार्ड एडाप्टर संशोधन

आप किसी भी एसडी कार्ड मॉड्यूल का उपयोग कर सकते हैं जो Arduino और esp8266 का समर्थन करता है, लेकिन इस परियोजना के उद्देश्य के लिए, हम माइक्रोएसडी कार्ड एडेप्टर का उपयोग करेंगे और इस तरह से संशोधित करेंगे कि हम मॉड्यूल के बजाय इसका उपयोग कर सकें।

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

पीसीबी को इस तरह से काटें कि यह एसडी कार्ड एडॉप्टर के साथ पूरी तरह से फिट हो जाए और इसमें पुरुष यूएसबी पोर्ट जोड़ने के लिए कुछ अतिरिक्त जगह हो।

आप एडॉप्टर के बजाय एसडी कार्ड के साथ भी यही प्रक्रिया कर सकते हैं, लेकिन अगर आप इसे नुकसान पहुंचाते हैं तो यह काफी जोखिम भरा है।

चरण 3: यूएसबी कनेक्शन

यूएसबी कनेक्शन
यूएसबी कनेक्शन
यूएसबी कनेक्शन
यूएसबी कनेक्शन
यूएसबी कनेक्शन
यूएसबी कनेक्शन

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

फिर पुरुष यूएसबी पोर्ट को एसडी कार्ड के सामने रखा जहां हमने पहले कुछ जगह बनाई थी, फिर इसे जगह में मिलाप किया। इससे अभी तक बिजली की कोई समस्या हल नहीं हुई! क्योंकि SD कार्ड के लिए 3.3v की आवश्यकता होती है, लेकिन USB आपूर्ति मानक 5V है यदि आप इसे केवल आपूर्ति में प्लग करते हैं, तो आप संभवतः SD कार्ड को फ़्राई कर देंगे (लेकिन माइक्रोएसडी एडेप्टर द्वारा कोई नुकसान नहीं लिया जाएगा)।

इसे हल करने के लिए हम 3.3V रेगुलेटर का उपयोग करेंगे और USB सप्लाई के इनपुट को 3.3V रेगुलेटर से कनेक्ट करेंगे यानी USB के GND को रेगुलेटर के 1 पिन से कनेक्ट करेंगे और रेगुलेटर के पिन 3 को रेगुलेटर के +5V से कनेक्ट करेंगे। अंत में, एसडी कार्ड में पिन 3 (आउटपुट पिन) और रेगुलेटर की जमीन को मिलाएं।

यह एसडी कार्ड के लिए पावर सेटअप करेगा। आप अधिक विस्तृत कनेक्शन के लिए सर्किट आरेख की जांच कर सकते हैं।

चरण 4: ESP-12E के साथ सब कुछ एक साथ रखना

ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना
ESP-12E के साथ सब कुछ एक साथ रखना

अब एसडी कार्ड से डेटा पढ़ने और लिखने के लिए हम Esp12E वाईफाई मॉड्यूल का उपयोग करेंगे, भले ही यह esp32 से धीमा हो। लेकिन इससे कोई फर्क नहीं पड़ता कि आप किसे चुनते हैं, मैं बाद के चरणों में कारण बताऊंगा।

पहले EN (इनेबल पिन) को esp12E के VCC में मिलाप करें, इससे IC चालू हो जाएगा। यदि यह हाई सिग्नल से कनेक्ट नहीं है, तो IC चालू नहीं होगा। फिर esp12E को PCB बोर्ड के पीछे रखें और esp12E के SPI पिन को SD कार्ड पर SPI पिन में मिला दें। विवरण के लिए, कनेक्शन सर्किट आरेख की जांच करता है।

चरण 5: HTTP बनाम एफ़टीपी

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

फ़ाइलों को स्थानांतरित करने में एफ़टीपी HTTP से तेज़ है क्योंकि यह विशेष रूप से इसके लिए बनाया गया था। इसलिए, मैं इसे इस परियोजना में लागू करना चाहता था। जहां एक FTP सर्वर esp-12E पर चलता है और हम इस FTP के माध्यम से एसडी कार्ड में डेटा पुश और फ़ेच कर सकते हैं।

चरण 6: एफ़टीपी पुस्तकालय का पता लगाना

FTP लाइब्रेरी का पता लगाना
FTP लाइब्रेरी का पता लगाना
FTP लाइब्रेरी का पता लगाना
FTP लाइब्रेरी का पता लगाना

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

लेकिन थोड़े और प्रयास से, मुझे कोई ऐसा व्यक्ति मिला जिसने SPIFFS को SD कार्ड में बदलने के लिए डेविड पाइवा लाइब्रेरी पर कुछ काम किया। लेकिन जब मैंने इसका इस्तेमाल करने की कोशिश की, तो मुझे 2 मुद्दों का सामना करना पड़ा। सबसे पहले, जिस पृष्ठ पर मुझे यह पता चला वह कोरियाई में था, इसलिए मुझे इसके साथ कुछ भी करने से पहले यह जानने के लिए सचमुच बैठना और सब कुछ अनुवाद करना पड़ा कि क्या हो रहा था। फिर दूसरी समस्या यह थी कि मुझे मौजूदा एसडी लाइब्रेरी को उनके द्वारा किए गए परिवर्तनों का समर्थन करने के लिए संशोधित करना पड़ा लेकिन यह बहुत बेकार लगा।

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

चरण 7: ESP-12E प्रोग्रामिंग

ESP-12E प्रोग्रामिंग
ESP-12E प्रोग्रामिंग
ESP-12E प्रोग्रामिंग
ESP-12E प्रोग्रामिंग
ESP-12E प्रोग्रामिंग
ESP-12E प्रोग्रामिंग

ESP-12E एक इनबिल्ट प्रोग्रामर के साथ नहीं आता है, इसलिए हमें FDTI मॉड्यूल जैसे बाहरी प्रोग्रामर का उपयोग करने की आवश्यकता है। इसलिए मैंने कुछ तारों और महिला हेडर पिन के साथ एक एडेप्टर बनाया, इसके साथ, हम अस्थायी रूप से esp12E को मिलाप कर सकते हैं और इसे FTDI मॉड्यूल का उपयोग करके प्रोग्राम कर सकते हैं।

GND [esp12E] को GND, Rx [esp12E] से Tx, Tx [esp12E] से Rx, GPIO15 [esp12E] को GND, GPIO0 [esp12E] से GND, VCC [esp12E] को FDTI मॉड्यूल के VCC से कनेक्ट करें।

फिर Arduino IDE का उपयोग करके Github से कोड अपलोड करें।

एक बार प्रोग्राम अपलोड हो जाने के बाद आप उन तारों को हटा सकते हैं जो esp12E प्रोग्राम से जुड़े थे।

चरण 8: परियोजना को समाप्त करना

परियोजना को खत्म करना!
परियोजना को खत्म करना!
परियोजना को खत्म करना!
परियोजना को खत्म करना!
परियोजना को खत्म करना!
परियोजना को खत्म करना!

एडॉप्टर के अंदर बस किसी भी माइक्रोएसडी [३२ जीबी मैक्स] कार्ड में डालें और पूरे डिवाइस को किसी भी यूएसबी संगत डिवाइस में प्लग करें, जिससे चीजों को शक्ति मिलनी चाहिए! लेकिन विचार करने के लिए कुछ चीजें हैं, सुनिश्चित करें कि यूएसबी पोर्ट आउटपुट चालू 1amp से अधिक है, बस एक सुरक्षित पक्ष पर रहने के लिए। क्योंकि Esp12E मॉड्यूल फ़ाइलों को स्थानांतरित करते समय अधिक करंट की खपत करता है।

चरण 9: डिवाइस का उपयोग करना

डिवाइस का उपयोग करना
डिवाइस का उपयोग करना
डिवाइस का उपयोग करना
डिवाइस का उपयोग करना
डिवाइस का उपयोग करना
डिवाइस का उपयोग करना

जैसे ही डिवाइस संचालित होता है डिवाइस एसडी रीडर नामक एक एक्सेस प्वाइंट बनाता है। कोड पर मौजूद पासवर्ड का उपयोग करके इस एक्सेस प्वाइंट से कनेक्ट करें। फिर इस पर निर्भर करते हुए कि आप 12E से कनेक्ट करने के लिए किस डिवाइस का उपयोग कर रहे हैं, संबंधित FTP क्लाइंट सॉफ़्टवेयर डाउनलोड करें यदि आप PC डाउनलोड WinSCP या Filzella का उपयोग कर रहे हैं और यदि आप Android डिवाइस डाउनलोड AndFTP का उपयोग कर रहे हैं।

एक बार इंस्टॉलेशन हो जाने के बाद, AndFTP खोलें और FTP क्लाइंट सेट करने के लिए क्रेडेंशियल भरें। मेरे मामले में, मैंने उपयोगकर्ता नाम और पासवर्ड को कोड में "esp8266" डिफ़ॉल्ट पर छोड़ दिया। तो, उपयोगकर्ता की जानकारी के लिए और होस्ट के लिए 192.168.12.7 का उपयोग करें। अंत में, FTP सर्वर से कनेक्ट करें।

एक बार ऐसा करने के बाद, आप एसडी कार्ड से कोई भी फाइल डाउनलोड कर सकते हैं और साथ ही आप अपने फोन से एसडी कार्ड में फाइल अपलोड कर सकते हैं।

यह कैसे काम करता है यह जानने के लिए आप वीडियो देख सकते हैं!

चरण 10: अंतिम विचार

अंतिम विचार
अंतिम विचार
अंतिम विचार
अंतिम विचार

लेकिन इस निष्कर्ष पर पहुंचने से पहले कि यह एक बहुत ही उपयोगी उपकरण है, आइए एक कदम पीछे हटें।

हालांकि यह वही करता है जो मैं चाहता हूं, यह पूरी तरह से धीमा है! सिर्फ ४ फाइलों (प्रत्येक ~ १०० केबी) के लिए इसमें लगभग ३० सेकेंड लगते हैं, और यदि आप १० एमबी जैसी बड़ी फाइल के साथ प्रयास करते हैं तो इसे पूरा होने में लगभग ३-४ मिनट का समय लगेगा। इसे अनुकूलित करने के तरीके हैं, और जिस पृष्ठ से मैंने संदर्भित किया है, वह लगभग 450kbs पढ़ने की गति प्राप्त करने में सक्षम था। (Esp32 और SD_MMC के साथ पुस्तकालय स्थानांतरण गति लगभग 1MB/सेकंड हो सकती है)

जिस कारण से मैंने यहां परियोजना को रोक दिया और इसे अनुकूलित करने का प्रयास नहीं किया, वह 2 कारणों से था। पहला कारण, मैं वास्तव में चाहता हूं कि एफ़टीपी सर्वर के साथ मैं अभी भी डेटा स्थानांतरित करने के लिए यूएसबी डेटा लाइन का उपयोग कर सकता हूं, लेकिन यह esp8266 या esp32 में समर्थित नहीं है। और दूसरा कारण यह है कि मुझे FTP पर फ़ाइलों को स्थानांतरित करने के लिए पर्याप्त गति नहीं मिल सकी। यही कारण है कि मैंने esp12E के बजाय esp32 का उपयोग करने की जहमत क्यों नहीं उठाई।

लेकिन मुझे लगता है कि इनमें से कुछ समस्याओं को हल किया जा सकता है यदि हम esp32 S2 बोर्डों का उपयोग कर सकते हैं जो गो USB पर पूर्ण गति का समर्थन करते हैं। हो सकता है कि मैं एक और शिक्षाप्रद XD के लिए ऐसा कर सकूं।

सिफारिश की: