- ईएसपी 8285 का परिचय
- ईएसपी विकास बोर्ड सर्किट आरेख
- हमारे ESP8285 देव बोर्ड का निर्माण
- PCBWay से पीसीबी को ऑर्डर करना
- ESP8285 बोर्ड को असेंबल करना और प्रोग्राम करना
- एक साधारण एलईडी ब्लिंक स्केच के साथ परीक्षण
- ESP8285 पर वेबसर्वर स्केच का परीक्षण
एस्प्रेसिफ से ईएसपी कंट्रोलर IoT आधारित डिजाइनों के लिए एक व्यापक रूप से लोकप्रिय विकल्प बन रहे हैं। बाजार में पहले से ही कई प्रकार के ईएसपी मॉड्यूल और विकास बोर्ड उपलब्ध हैं, जिनमें से NodeMCU सबसे लोकप्रिय है। इसके अलावा, ESP-12E, ESP01 भी लोकप्रिय विकल्प हैं। लेकिन अगर आप अपने डिजाइन को अधिक लचीला और कॉम्पैक्ट बनाना चाहते हैं, तो संभावना है कि हमें सीधे उपलब्ध मॉड्यूल का उपयोग करने के बजाय चिप स्तर से अपना ईएसपी मॉड्यूल डिजाइन करना होगा। इस लेख में, हम सीखेंगे कि एक मॉड्यूल का उपयोग किए बिना सीधे ESP नियंत्रकों (ESP8285) का उपयोग करने के लिए एक सर्किट और पीसीबी कैसे डिज़ाइन किया जाए।
इस परियोजना में हमने ESP8285 का उपयोग किया है क्योंकि यह एक बहुत ही रोचक छोटी चिप है। यह IoT (इंटरनेट ऑफ थिंग्स) और गहरी नींद की क्षमताओं के साथ एक छोटा SoC (सिस्टम ऑन चिप) है। इसमें उनके बड़े भाई ESP8266 के समान शक्ति है और एक बोनस के रूप में, यह बहुत सारे GPIO के साथ अंतर्निहित 1MB फ्लैश मेमोरी के साथ आता है। आप ESP8266 को एक विकल्प के रूप में भी उपयोग कर सकते हैं और इस लेख में चर्चा की गई अधिकांश चीजें अभी भी समान होंगी।
पिछले लेख में, मैंने आपको दिखाया है कि कैसे आप 2.4GHz के लिए अपने खुद के PCB एंटीना को डिजाइन कर सकते हैं, उदाहरण के लिए उसी ESP8285 चिप का उपयोग कर सकते हैं। आप ESP8266 / ESP8285 के लिए एंटीना डिजाइन के बारे में जानने के लिए उस लेख को पढ़ सकते हैं ।
इसलिए इस लेख में, मैं कवर करूँगा कि सभी सर्किट कैसे काम करते हैं और अंत में एक वीडियो होगा जिसमें यह सब समझाया जाएगा। मैंने अपने ESP मॉड्यूल डिजाइन के लिए PCBWay से PCB बोर्ड को डिजाइन और ऑर्डर करने के लिए पूरी प्रक्रिया को विस्तार से कवर किया है।
ईएसपी 8285 का परिचय
यदि आप इस बहुमुखी ईएसपी 8285 चिप के बारे में नहीं जानते हैं, तो यहां एक त्वरित विवरण दिया गया है। ESP8285 बिल्ट-इन 1M फ्लैश और रैम के साथ एक छोटी चिप है, यह ESP8286, ESP-01 मॉड्यूल के समान है, लेकिन आंतरिक फ्लैश मेमोरी इसे और अधिक कॉम्पैक्ट और सस्ता बनाती है।
इस चिप में Tensilica का L106 डायमंड 32-बिट कोर प्रोसेसर है और यही ESP8266 के लिए भी जाता है, यही कारण है कि ESP8266 के सभी कोड को बिना किसी संशोधन के सीधे इस चिप में फ्लैश किया जा सकता है, और इसमें ESp8266 खुराक के समान नेटवर्क स्टैक है। ।
ESP8285 एंटीना स्विच, आरएफ बालुन, पावर एम्पलीफायर, कम शोर को एम्पलीफायर, फिल्टर और पावर मैनेजमेंट मॉड्यूल को एकीकृत करता है। कॉम्पैक्ट डिजाइन पीसीबी आकार को कम करता है, और इसके लिए न्यूनतम बाहरी सर्किट की आवश्यकता होती है। यदि आप इस IC के बारे में अधिक जानना चाहते हैं, तो आप हमेशा एस्प्रेसिफ सिस्टम पर ESP8285 डिवाइस की डेटशीट की जांच कर सकते हैं ।
ईएसपी विकास बोर्ड सर्किट आरेख
सर्किट बहुत सरल है और मैंने इसे बेहतर समझ के लिए तोड़ दिया है। नीचे ईएसपी योजनाबद्ध पूरे सर्किट को दिखाता है, जैसा कि आप देख सकते हैं कि आठ कार्यात्मक ब्लॉक हैं, मैं प्रत्येक के माध्यम से जाऊंगा और प्रत्येक ब्लॉक को समझाऊंगा।
ESP8285 SOC:
परियोजना के केंद्र में ESP8285 SoC है, सभी GPIO और अन्य आवश्यक कनेक्शन यहां परिभाषित हैं।
पावर फ़िल्टर: इस IC पर 7 पावर पिन हैं, पहले ADC और IOs के लिए पावर पिन है। मैंने उन्हें एक साथ छोटा कर दिया है, और 3.3V डीसी इनपुट को फ़िल्टर करने के लिए एक 47uF पावर फ़िल्टर कैपेसिटर, और एक 0.1uF डिकॉप्लिंग कैपेसिटर का उपयोग करें।
PI फ़िल्टर: PI फ़िल्टर इस डिज़ाइन के सबसे महत्वपूर्ण ब्लॉक्स में से एक है क्योंकि यह RF एम्पलीफायर और LNA को पावर देने के लिए ज़िम्मेदार है, कोई भी आंतरिक या बाहरी शोर इस सेक्शन के लिए वर्णनात्मक हो सकता है, इसलिए इसके लिए, RF सेक्शन काम नहीं करेगा। । यही कारण है कि LNA सेक्शन के लिए कम पास फिल्टर बहुत महत्वपूर्ण है। आप लिंक का अनुसरण करके PI फ़िल्टर के बारे में अधिक जान सकते हैं।
क्रिस्टल थरथरानवाला: 40MHz क्रिस्टल थरथरानवाला ESP8285 SoC के लिए घड़ी के स्रोत के रूप में कार्य करता है, और 10 पीपीएफ decoupling कैपेसिटर को डेटाशीट द्वारा अनुशंसित के रूप में जोड़ा गया था।
LNA सेक्शन: इस सर्किट का एक और सबसे महत्वपूर्ण खंड LNA सेक्शन है; यह वह जगह है जहां पीसीबी एंटीना ईएसपी के भौतिक पिन से जुड़ा हुआ है। जैसा कि डेटाशीट द्वारा अनुशंसित है, एक 5.6pF संधारित्र का उपयोग किया जाता है, और इसे मिलान सर्किट के रूप में ठीक काम करना चाहिए। लेकिन मैंने दो प्रेरकों के लिए दो प्लेसहोल्डर्स को जोड़ा है जैसे कि यदि मिलान सर्किट असंतुष्ट काम करता है, तो मैं हमेशा एंटीना इंडेडेंस से मिलान करने के लिए मानों को मोड़ने के लिए कुछ इनकाउंटर डाल सकता हूं।
LNA सेक्शन में UFL कनेक्टर के साथ दो PCB जंपर्स भी होते हैं। पीसीबी एंटीना डिफ़ॉल्ट रूप से सेट होता है, लेकिन यदि आपके एप्लिकेशन को थोड़ी अधिक रेंज की आवश्यकता होती है, तो आप यूएफएल कनेक्टर के लिए पीसीबी जम्पर को छोटा कर सकते हैं और जम्पर को छोटा कर सकते हैं, और आप उसी तरह एक बाहरी एंटीना कनेक्ट कर सकते हैं।
बैटरी इनपुट कनेक्टर:
आप ऊपर देख सकते हैं, मैंने तीन प्रकार के बैटरी कनेक्टर्स को समानांतर में रखा है क्योंकि यदि आप एक को खोजने में असमर्थ थे, तो आप हमेशा एक और डाल सकते हैं।
GPIO हेडर और प्रोग्रामिंग हेडर:
GPIO हेडर GPIO पिन तक पहुँचने के लिए हैं और प्रोग्रामिंग हैडर मुख्य Soc को फ्लैश करने के लिए है।
ऑटो रीसेट सर्किट:
इस ब्लॉक में, दो NPN ट्रांजिस्टर, MMBT2222A, जब आप Arduino IDE में अपलोड बटन दबाते हैं, तो ऑटो-रीसेट सर्किट बनता है, अजगर उपकरण को कॉल मिलता है, यह अजगर उपकरण ESP उपकरणों के लिए फ्लैश टूल है, यह pi टूल टूल देता है GPIO पिन को जमीन पर रखते हुए बोर्ड को रीसेट करने के लिए UART कनवर्टर को संकेत। उसके बाद, अपलोड और सत्यापन प्रक्रिया शुरू होती है।
पावर एलईडी, ऑन-बोर्ड एलईडी, और वोल्टेज विभक्त:
पावर एलईडी: पावर एलईडी में एक पीसीबी जम्पर होता है यदि आप इस बोर्ड का उपयोग बैटरी चालित एप्लिकेशन के लिए कर रहे हैं, तो आप इस जम्पर को काफी कम बिजली बचा सकते हैं।
ऑनबोर्ड एलईडी: बाजार में कई देव-बोर्डों में एक ऑनबोर्ड एलईडी है, और यह बोर्ड कोई अपवाद नहीं है; IC का GPIO16 एलईडी ऑनबोर्ड से जुड़ा है। इसके साथ ही, 0 OHM रेसिस्टर के लिए 0 ओह्स रेसिस्टर को पॉप्युलेट करने के लिए एक प्लेसहोल्डर है, आप GPIO16 को रिसेट से कनेक्ट कर रहे हैं, और जैसा कि आप जानते हैं, यह गहरी नींद मोड में ESP लगाने के लिए एक बहुत ही महत्वपूर्ण कदम है।
वोल्टेज डिवाइडर: जैसा कि आप जानते हैं, एडीसी का अधिकतम इनपुट वोल्टेज 1V है। इसलिए, इनपुट की सीमा को 3.3V में बदलने के लिए, वोल्टेज विभक्त का उपयोग किया जाता है। कॉन्फ़िगरेशन इतना बनाया गया है कि आप रेंज में 5V को बदलने के लिए पिन के साथ हमेशा एक अवरोधक जोड़ सकते हैं।
HT7333 LDO:
एक एलडीओ या लो ड्रॉपआउट वोल्टेज रेगुलेटर का उपयोग न्यूनतम बिजली हानि के साथ बैटरी से ईएसपी 8285 को वोल्टेज को विनियमित करने के लिए किया जाता है।
HT7333 LDO का अधिकतम इनपुट वोल्टेज 12V है और इसका उपयोग बैटरी वोल्टेज को 3.3V में परिवर्तित करने के लिए किया जाता है, मैंने इस HT7333 LDO को इसलिए चुना क्योंकि यह एक बहुत ही कम मौन धारा वाला एक उपकरण है। 4.7uF decoupling कैपेसिटर का उपयोग LDO को स्थिर करने के लिए किया जाता है।
प्रोग्रामिंग मोड के लिए पुश-बटन:
पुश-बटन GPIO0 से जुड़ा है, यदि आपके UART कनवर्टर में RTS या DTR पिन नहीं है, तो आप GPIO0 को मैन्युअल रूप से जमीन पर खींचने के लिए इस पुश-बटन का उपयोग कर सकते हैं।
पुलअप और पुलडाउन प्रतिरोध:
पुलअप और पुलडाउन प्रतिरोधों को डेटशीट द्वारा अनुशंसित किया गया है।
इसके अलावा, पीसीबी को डिजाइन करते समय कई डिजाइन मानदंडों और दिशानिर्देशों का पालन किया गया था। यदि आप इसके बारे में अधिक जानना चाहते हैं, तो आप पा सकते हैं कि ESP8266 के लिए हार्डवेयर डिजाइन गाइड।
हमारे ESP8285 देव बोर्ड का निर्माण
योजनाबद्ध किया जाता है, और हम पीसीबी बिछाने के साथ आगे बढ़ सकते हैं। हमने पीसीबी बनाने के लिए ईगल पीसीबी डिजाइन सॉफ्टवेयर का उपयोग किया है, लेकिन आप अपने पसंदीदा सॉफ्टवेयर के साथ पीसीबी डिजाइन कर सकते हैं। जब यह पूरा हो जाता है तो हमारा पीसीबी डिजाइन ऐसा दिखता है।
BOM और Gerber फाइलें निम्नलिखित लिंक से डाउनलोड करने के लिए उपलब्ध हैं:
- ईएसपी 8282 देव-बोर्ड गेरबर फाइलें
- ईएसपी 8282 देव-बोर्ड बीओएम
अब, हमारा डिज़ाइन तैयार हो गया है, यह समय आ गया है कि पीसीबी का उपयोग करके गढ़ा जाए। ऐसा करने के लिए, बस नीचे दिए गए चरणों का पालन करें:
PCBWay से पीसीबी को ऑर्डर करना
चरण 1: https://www.pcbway.com/ पर जाएं, साइन अप करें यदि यह आपकी पहली बार है। फिर, पीसीबी प्रोटोटाइप टैब में, अपने पीसीबी के आयाम, परतों की संख्या और आपके द्वारा आवश्यक पीसीबी की संख्या दर्ज करें।
चरण 2: 'भाव अब' बटन पर क्लिक करके आगे बढ़ें। आपको एक पृष्ठ पर ले जाया जाएगा, जहां बोर्ड प्रकार, परतें, पीसीबी के लिए सामग्री, मोटाई और अधिक जैसे कुछ अतिरिक्त पैरामीटर सेट करने के लिए, उनमें से अधिकांश डिफ़ॉल्ट रूप से चुने गए हैं, यदि आप किसी विशिष्ट पैरामीटर के लिए चयन कर रहे हैं, तो आप चयन कर सकते हैं यह सुनने में है।
जैसा कि आप देख सकते हैं, हमें हमारे पीसीबी की जरूरत थी! इसलिए, मैंने सोल्डर मास्क कलर सेक्शन में ब्लैक का चयन किया है।
चरण 3: अंतिम चरण Gerber फ़ाइल अपलोड करने और भुगतान के साथ आगे बढ़ना है। यह सुनिश्चित करने के लिए कि प्रक्रिया सुचारू है, यदि आपके Gerber फ़ाइल को भुगतान के साथ आगे बढ़ने से पहले वैध है तो PCBWAY सत्यापित करता है। इस तरह, आप यह सुनिश्चित कर सकते हैं कि आपका PCB फेब्रिकेशन फ्रेंडली है और आपके लिए प्रतिबद्ध होगा।
ESP8285 बोर्ड को असेंबल करना और प्रोग्राम करना
कुछ दिनों के बाद, हमने अपने पीसीबी को एक साफ पैकेज बॉक्स में प्राप्त किया, और पीसीबी की गुणवत्ता हमेशा की तरह अच्छी थी। बोर्ड की शीर्ष परत और नीचे की परत नीचे दी गई है:
बोर्ड प्राप्त करने के बाद, मैंने तुरंत बोर्ड को सोल्डर करना शुरू कर दिया। मैंने मुख्य सीपीयू को सोल्डर करने के लिए एक गर्म हवा सोल्डरिंग स्टेशन और बहुत सारे सोल्डर फ्लक्स का उपयोग किया है, और पीसीबी पर अन्य घटकों को टांका लगाने वाले लोहे के माध्यम से मिलाप किया जाता है। इकट्ठे मॉड्यूल को नीचे दिखाया गया है।
एक बार ऐसा हो जाने के बाद, मैंने अपने भरोसेमंद FTDI मॉड्यूल को एक स्केच अपलोड करके बोर्ड का परीक्षण करने के लिए जोड़ा है, जुड़ा हुआ पिन और नीचे दिखाए गए बोर्ड की एक छवि:
ESP8285 देव बोर्ड एफटीडीआई मॉड्यूल
३.३ वी -> ३.३ वी
टीएक्स -> आरएक्स
आरएक्स -> टीएक्स
DTR -> DTR
RST -> RST
जीएनडी -> जीएनडी
एक बार, सभी आवश्यक कनेक्शन पूरे हो गए, मैंने टूल > बोर्ड > जेनेरिक ESP8285 मॉड्यूल से जेनेरिक ESP8285 बोर्ड का चयन करके Arduino IDE स्थापित किया है ।
एक साधारण एलईडी ब्लिंक स्केच के साथ परीक्षण
इसके बाद, एलईडी को ब्लिंक करके बोर्ड का परीक्षण करने का समय आ गया है, इसके लिए, मैंने निम्नलिखित कोड का उपयोग किया है:
/ * ESP8285 पलक झपकना ब्लू LED को ESP828285 मॉड्यूल * / #define LED_PIN 16 // डिफाइनिंग ब्लिंकिंग LED पिन शून्य सेटअप () {pinMode (LED_PIN, OUTPUT); // एक आउटपुट के रूप में एलईडी पिन को आरंभीकृत करें। // लूप फ़ंक्शन बार-बार हमेशा के लिए लूप को चलाता है () {digitalWrite (LED_PIN, LOW); // एलईडी चालू करें (ध्यान दें कि एलओडब्ल्यू वोल्टेज स्तर है) देरी (1000); // एक दूसरे digitalWrite (LED_PIN, HIGH) की प्रतीक्षा करें; // वोल्टेज बंद करके एलईडी बंद करें उच्च विलंब (1000); // दो सेकंड के लिए प्रतीक्षा करें}
कोड बहुत सरल है, पहले मैंने इस बोर्ड के लिए एलईडी पिन को परिभाषित किया है, और यह GPIO 16 पर है। इसके बाद, मैंने सेटअप अनुभाग में आउटपुट के रूप में उस पिन को सेट किया है। और अंत में, लूप सेक्शन में, मैंने पिन को बीच में एक सेकंड की देरी के साथ चालू और बंद कर दिया है।
ESP8285 पर वेबसर्वर स्केच का परीक्षण
एक बार जो ठीक काम कर रहा था, वह ESP8266WebServer उदाहरण से हैलोस्वर स्केच का परीक्षण करने का समय है । मैं एक ESP8266 उदाहरण का उपयोग कर रहा हूं क्योंकि अधिकांश कोड esp8285 चिप के साथ संगत है। इस पृष्ठ के नीचे उदाहरण कोड भी पाया जा सकता है।
यह कोड बहुत सरल है, सबसे पहले, हमें सभी आवश्यक पुस्तकालयों को परिभाषित करने की आवश्यकता है, #शामिल
इसके बाद, हमें हॉटस्पॉट का नाम और पासवर्ड दर्ज करना होगा।
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "आपका-पासवर्ड" #endif const char * ssid = STASSID; const char * पासवर्ड = STAPSK;
अगला, हमें ESP8266WebServer ऑब्जेक्ट को परिभाषित करने की आवश्यकता है। यहाँ उदाहरण इसे एक सर्वर के रूप में परिभाषित करता है (80) (80) पोर्ट नंबर है।
अगला, हमें एक एलईडी के लिए पिन को परिभाषित करने की आवश्यकता है मेरे मामले में यह पिन नंबर 16 था।
const int एलईडी = 16;
अगला, हैंडलरूट () फ़ंक्शन परिभाषित है। यह फ़ंक्शन तब कहा जाएगा जब हमारे ब्राउज़र से आईपी पते पर कॉल किया जाएगा।
शून्य संभालना () {डिजिटलवेरिट (एलईडी, 1); server.send (200, "टेक्स्ट / प्लेन", "esp8266 से हैलो!"); digitalWrite (एलईडी, 0); }
अगला सेटअप फ़ंक्शन है, सुनें हमें सभी आवश्यक मापदंडों को परिभाषित करना होगा जैसे-
पिनमोड (एलईडी, OUTPUT); // हमने एलईडी पिन को आउटपुट Serial.begin (115200) के रूप में परिभाषित किया है; // हमने 115200 बॉड WiFi.mode (WIFI_STA) के साथ एक सीरियल कनेक्शन शुरू किया है; // हमने वाईफाई मोड को स्टेशन WiFi.begin (ssid, पासवर्ड) के रूप में सेट किया है; तब हम वाईफाई कनेक्शन Serial.println ("") शुरू करते हैं; // यह पंक्ति अतिरिक्त स्थान देती है जबकि (WiFi.status ()! = WL_CONNECTED) {विलंब (500); सीरियल.प्रिंट ("।"); } / * जबकि लूप में हम कनेक्शन की स्थिति का परीक्षण कर रहे हैं एक ESP हॉटस्पॉट से कनेक्ट करने में सक्षम है लूप टूट जाएगा * / Serial.println (""); Serial.print ("कनेक्टेड टू"); सिरियल.प्रिंट (ssid); Serial.print ("आईपी पता:"); Serial.println (WiFi.localIP ());
अगला, हम सीरियल मॉनिटर विंडो से जुड़े एसएसआईडी के नाम और आईपी पते को प्रिंट कर रहे हैं।
server.on ("/", handleRoot); // सर्वर ऑब्जेक्ट के मेथोड पर रूट फ़ंक्शन server.on ("/ inline", () {server.send (200, "टेक्स्ट / प्लेन", "यह अच्छी तरह से काम करता है");}) को हैंडल करने के लिए कहा जाता है;; // फिर से हमने इनलाइन उदाहरण सर्वर के लिए मेथोड पर बुलाया है ।begin (); // अगले हम सर्वर को आरंभिक मेथोड Serial.println से शुरू करते हैं ("HTTP सर्वर शुरू हुआ"); // और अंत में हम सीरियल मॉनिटर में एक स्टेटमेंट प्रिंट करते हैं। } // जो सेटअप फ़ंक्शन के अंत को चिह्नित करता है शून्य (लूप) {server.handleClient (); }
लूप फ़ंक्शन में, हमने esp को ठीक से संचालित करने के लिए हैंडल क्लिएंट () विधियों को बुलाया है।
एक बार यह हो जाने के बाद, ESP8285 बोर्ड को वेबसर्वर से जुड़ने में कुछ समय लगा और सफलतापूर्वक इस उम्मीद के मुताबिक काम किया जिसने इस परियोजना के अंत को चिह्नित किया।
बोर्ड का पूरा काम नीचे दिए गए वीडियो पर भी देखा जा सकता है। मुझे उम्मीद है कि आपको यह लेख अच्छा लगा होगा और इसमें से कुछ नया सीखा होगा। यदि आपको कोई संदेह है, तो आप नीचे टिप्पणी में पूछ सकते हैं या विस्तृत चर्चा के लिए हमारे मंचों का उपयोग कर सकते हैं।