विषयसूची:
- चरण 1: याद रखने की युक्ति
- चरण 2: MCP23016
- चरण 3: पता
- चरण 4: आदेश
- चरण 5: श्रेणियाँ
- चरण 6: संचार के लिए संरचना
- चरण 7: कार्यक्रम
- चरण 8: MCP23016
- चरण 9: ईएसपी-01
- चरण 10: बढ़ते ESP01
- चरण 11: पुस्तकालय और चर
- चरण 12: सेटअप
- चरण 13: लूप
- चरण 14: पार्सरडेटा
- चरण 15: पोर्ट कॉन्फ़िगर करें
- चरण 16: पिनडाटा लिखें
- चरण 17: WriteBlockData और सेटअपवाईफाई
- चरण 18: ऐप
- चरण 19: डाउनलोड करें
वीडियो: ESP01 के साथ कम लागत वाला स्वचालन: 19 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
आज, हम 16 रिले के साथ ESP01 का उपयोग करके स्वचालन पर चर्चा करेंगे। यह एक सुपर सस्ता डिज़ाइन मॉडल है जहां आप मॉड्यूल को गुणा कर सकते हैं और 128 रिले तक प्राप्त कर सकते हैं, क्योंकि इस माइक्रोकंट्रोलर में आठ पोर्ट विस्तारक रखना संभव है।
हमारे सर्किट में, आपके पास स्मार्टफोन पर एक एप्लिकेशन होगा जो ESP01 के साथ संचार करता है। इसमें 16 बंदरगाहों के साथ एक विस्तारक होगा, प्रत्येक रिले से जुड़ा होगा। हमारे पास एक 3v3 समायोज्य स्रोत भी है। इसलिए हम एंड्रॉइड एप्लिकेशन के माध्यम से ईएसपी01 का उपयोग करके 16-चैनल रिले मॉड्यूल को नियंत्रित करेंगे, जिसे मैं आपको उपलब्ध कराता हूं।
चरण 1: याद रखने की युक्ति
मेरे दोस्तों, यह नोट करना महत्वपूर्ण है कि मैंने इस चिप का उपयोग MCP23016 नामक सर्किट में किया था। आपके लिए ESP32, ESP8266 और ARDUINO के लिए IOS का EXPANSOR वीडियो देखना भी महत्वपूर्ण है, जिसमें मैं डिवाइस का परीक्षण करता हूं और दिखाता हूं कि यह इन तीन प्रकार के बोर्डों के लिए काम करता है।
चरण 2: MCP23016
यहां हमारे पास MCP23016 की एक छवि है, जो 28 पिन वाली एक चिप है। यह उल्लेख करना महत्वपूर्ण है कि MCP23017 मॉडल भी है, जो अधिक सामान्य है और इसमें एक रोकनेवाला और संधारित्र की आवश्यकता नहीं है, क्योंकि इसमें एक आंतरिक घड़ी है। इससे यह आसान हो जाता है, लेकिन इसकी पिनिंग इस वीडियो में हम जो दिखा रहे हैं उससे अलग है।
चरण 3: पता
MCP23016 के पते को परिभाषित करने के लिए, हम पिन A0, A1 और A2 का उपयोग करते हैं। पता बदलने के लिए आप उन्हें केवल उच्च या निम्न पर छोड़ सकते हैं।
पता इस प्रकार बनाया जाएगा:
एमसीपी_पता = 20 + (ए2 ए1 ए0)
जहाँ A2 A1 A0 उच्च / निम्न मान ले सकता है, एक बाइनरी संख्या 0 से 7 रूपों तक।
उदाहरण के लिए:
A2> GND, A1> GND, A0> GND (मतलब 000, तो 20 + 0 = 20)
या अन्यथा, A2> High, A1> GND, A0> High (मतलब 101, फिर 20 + 5 = 25)
चरण 4: आदेश
संचार के लिए आदेशों वाली एक तालिका यहां दी गई है:
चरण 5: श्रेणियाँ
GP0 / GP1 - डेटा पोर्ट रजिस्टर
दो रजिस्टर हैं जो दो GPIO पोर्ट तक पहुंच प्रदान करते हैं।
रजिस्टर रीडिंग उस पोर्ट पर पिन की स्थिति प्रदान करता है।
बिट = 1> उच्च बिट = 0> कम
IODIR0 / IODIR1
दो रजिस्टर हैं जो पिन मोड को नियंत्रित करते हैं। (इनपुट या आउटपुट)
बिट = 1> इनपुट बिट = 0> आउटपुट
चरण 6: संचार के लिए संरचना
यहां हम चिप के पते के बारे में बात करते हैं, और कमांड और डेटा तक पहुंचते हैं, जो एक तरह का प्रोटोकॉल है जिसे सूचना भेजने के लिए किया जाना चाहिए।
चरण 7: कार्यक्रम
हम एक प्रोग्राम करेंगे जिसमें अधिक GPIO का उपयोग करने के लिए ESP01 को MCP23016 के साथ संचार करना शामिल है। ये 16 नए GPIO जो हमारे पास होंगे वे एक 16-चैनल रिले मॉड्यूल को नियंत्रित करने जा रहे हैं।
Android एप्लिकेशन के माध्यम से ESP01 को कमांड भेजे जाएंगे।
चरण 8: MCP23016
चरण 9: ईएसपी-01
यह एक 16-रिले बोर्ड है।
चरण 10: बढ़ते ESP01
चरण 11: पुस्तकालय और चर
हम i2c संचार के लिए और एक्सेस प्वाइंट और वेबसर्वर बनाने के लिए जिम्मेदार पुस्तकालयों को शामिल करेंगे। हम चिप और बंदरगाहों के पते को परिभाषित करते हैं। अंत में, हम एमसीपी पिन के मूल्यों को संग्रहीत करने के लिए चर को परिभाषित करते हैं।
#include // प्रतिक्रिया दें संचार i2c.#include // प्रतिक्रिया पोर CRAR o एक्सेसपॉइंट eo वेबसर्वर WiFiServer सर्वर (80);//वेबसर्वर पैरा acessarmos através do aplicativo //endereço I2C do MCP23016 #define MCPAddress 0x20 // GP0 0x00 को परिभाषित करें // डेटा पोर्ट रजिस्टर 0 # GP1 0x01 को परिभाषित करें // डेटा पोर्ट रजिस्टर 1 # परिभाषित करें IODIR0 0x06 // I / O दिशा रजिस्टर 0 # परिभाषित करें IODIR1 0x07 // I / O दिशा रजिस्टर 1 // गार्डा ओएस वेलोरेस डॉस पिनोस क्या एमसीपी uint8_t currentValueGP0 = 0; uint8_t वर्तमानValueGP1 = 0;
चरण 12: सेटअप
हम ESP01 को इनिशियलाइज़ करते हैं और पोर्ट को कॉन्फ़िगर करते हैं। हम एक्सेस प्वाइंट को भी कॉन्फ़िगर करते हैं और सर्वर को इनिशियलाइज़ करते हैं।
शून्य सेटअप () {Serial.begin (९६००); देरी (1000); वायर.बेगिन (0, 2); // ESP01 वायर.सेटक्लॉक (200000); कॉन्फ़िगरपोर्ट (IODIR0, OUTPUT); कॉन्फ़िगरपोर्ट (IODIR1, OUTPUT); राइटब्लॉकडाटा (GP0, 0x00); राइटब्लॉकडाटा (GP1, 0x00); सेटअपवाईफाई (); //configuração एक्सेस प्वाइंट सर्वर करते हैं। शुरू ();//inicializa o सर्वर }
चरण 13: लूप
यहां मैं जांचता हूं कि कोई क्लाइंट सर्वर से जुड़ा है या नहीं। हम पहली अनुरोध पंक्ति भी पढ़ते हैं। हम हेरफेर के लिए डेटा निकालते हैं, डिफ़ॉल्ट प्रतिक्रिया शीर्षलेख को परिभाषित करते हैं, और क्लाइंट को यह प्रतिक्रिया भेजते हैं।
शून्य लूप () {वाईफाई क्लाइंट क्लाइंट = सर्वर उपलब्ध (); // वेरिफ़िका से उम क्लाइंट फ़ॉई कनेक्टैडो अगर (! क्लाइंट) {वापसी; } स्ट्रिंग अनुरोध = client.readStringUntil('\r');// फ़ज़ ए लेइटुरा दा प्राइमिरा लिन्हा दा रिक्विसिस्को / * / एमआर या ओ हेडर प्रीफ़िक्सो पैरा कृपाण से एक आवश्यकता है जो एक एस्पेरडा पैरा ओएस रिलेज़ है */ if(req.indexOf ("/ एमआर")! = -1) {parserData (req); //a partir da requição extrai os dados para manipulação } else{ Serial.println("invalid request"); वापसी; } क्लाइंट.फ्लश (); स्ट्रिंग s = "HTTP/1.1 200 OK\r\n"; // काबेकाल्हो पैड्राओ डे प्रतिक्रिया क्लाइंट।प्रिंट; // ग्राहकों की देरी के लिए एक प्रतिक्रिया के माध्यम से (1); } // अंत लूप
चरण 14: पार्सरडेटा
अनुरोध से, हम रिले से संबंधित डेटा की तलाश करते हैं। फिर हम डेटा को MCP23016 पर भेजते हैं।
//a partir da requireção busca os dados Referente aos relésvoid parserData(String data) { uint8_t रिले = -1; uint8_t जीपी = -1; uint8_t मान = -1; इंट इंडेक्स = डेटा.इंडेक्सऑफ ("/ एमआर"); // बसका ओ इंडेक्स एमआर प्रीफिक्सो करते हैं अगर (डेटा [इंडेक्स + 5] == '/') // / एमआर 01/1, ओन्डे 0 = जीपी; 1 = रील; 1 = एस्टाडो (चालू / बंद) {जीपी = डेटा [सूचकांक + 3] - '0'; रिले = डेटा [इंडेक्स+4]-'0'; मूल्य = डेटा [सूचकांक + 6] - '0'; // एनविया ओएस डैडोस पैरा ओ एमसीपी २३०१६ // [रिले -1] पोर्क ओ एमसीपी वै डे ०-७ ओएस पिनोस राइटपिनडाटा (रिले -1, वैल्यू, जीपी); } }
चरण 15: पोर्ट कॉन्फ़िगर करें
हम GPIO पिन मोड (GP0 या GP1) सेट करते हैं।
// कॉन्फ़िगरेशन ओ मोडो डॉस पिनोस जीपीआईओ (जीपी0 या जीपी1) // कोमो पैरामेट्रो पासामोस: // पोर्ट: जीपी 0 या जीपी 1 // इनपुट पैरा टोडोस के रूप में जीपी ट्रैबलहरम कोमो एंट्री // कस्टम um valor de 0-255 संकेतक ओ मोडो दास पोर्टस (1 = INPUT, 0 = OUTPUT) // पूर्व: 0x01 या B00000001 कहां 1: इंडिका क्यू एपेनस ओ GPX.0 ट्रैबलहारा कोमो एंटरडा, ओ रेस्टेंट कोमो कहाएक शून्य कॉन्फ़िगरपोर्ट (uint8_t पोर्ट, uint8_t कस्टम) {अगर (कस्टम == INPUT) {लिखेंब्लॉकडाटा (पोर्ट, 0xFF); } और अगर (कस्टम == आउटपुट) {लिखेंब्लॉकडाटा (पोर्ट, 0x00); } और {लिखेंब्लॉकडाटा (पोर्ट, कस्टम); } }
चरण 16: पिनडाटा लिखें
कोड के इस भाग में, हम वांछित पिन की स्थिति बदलते हैं और डेटा को MCP को भेजते हैं।
// मुदा ओ एस्टाडो डी उम पिनो डेसेजाडो, पासंडो कोमो पैरामेट्रो: // पिन = पिनो डेसेजाडो; मान = 0/1 (चालू/बंद); जीपी = 0/1 (पोर्ट एमसीपी करते हैं) शून्य लिखेंपिनडाटा (इंट पिन, इंट वैल्यू, uint8_t जीपी) {uint8_t statusGP = 0; if(gp == GP0) statusGP = currentValueGP0; अन्य स्थितिGP = currentValueGP1; अगर (मान == 0) { statusGP &= ~(B00000001 << (पिन)); // मुदा ओ पिनो पैरा कम } और अगर (मान == 1) { statusGP |= (B00000001 << (पिन)); // मूड ओ पिनो पैरा हाई} अगर (जीपी == जीपी 0) currentValueGP0 = statusGP; अन्य करंटवैल्यूGP1 = statusGP; // एनविया ओएस डैडोस पैरा ओ एमसीपी राइटब्लॉकडाटा (जीपी, स्टेटसजीपी); देरी(10); }
चरण 17: WriteBlockData और सेटअपवाईफाई
यहां, हम i2c बस के माध्यम से MCP23016 को डेटा भेजते हैं। अगला, हम एक्सेस प्वाइंट को सक्षम करने के लिए गुणों को कॉन्फ़िगर करते हैं। अंत में, हमने एक्सेस प्वाइंट मोड के लिए वाईफाई को कॉन्फ़िगर किया और एसएसआईडी और पासवर्ड के साथ एक एपी बनाया।
// एनविया डैडोस पैरा ओ एमसीपी२३०१६ एट्रावेस डो बैरामेंटो आई२सी//रेग: रजिस्ट्रार वायर.राइट (पोर्ट); वायर.राइट (डेटा); वायर.एंडट्रांसमिशन (); देरी(10); }
// कॉन्फिगुरा के रूप में उपयोग करने के लिए उपयोग किया जाता है या एक्सेस प्वाइंटविहीन सेटअपवाईफाई () {वाईफाई.मोड(वाईफाई_एपी); WiFi.softAP ("ESP01_RELAY", "12345678"); }
चरण 18: ऐप
एप्लिकेशन बनाने के लिए, हम MIT ऐप आविष्कारक 2 का उपयोग करते हैं, जिसे लिंक के माध्यम से एक्सेस किया जा सकता है:
ai2.appinventor.mit.edu/
एप्लिकेशन में दो स्क्रीन होते हैं जिनमें प्रत्येक में आठ जोड़े बटन होते हैं, जो प्रत्येक रिले की स्थिति को दर्शाता है।
उपयोग किए जाने वाले कुछ प्रोग्रामिंग ब्लॉक निम्नलिखित हैं:
महत्वपूर्ण: ईएसपी का डिफ़ॉल्ट आईपी पता, एक्सेस प्वाइंट के रूप में 192.168.4.1. है
1. जब स्क्रीन इनिशियलाइज़ होती है, तो हम आईपी को मेमोरी में स्टोर करते हैं और बटन की स्थिति (चालू / बंद) को पुनर्प्राप्त करने के लिए प्रक्रिया को कॉल करते हैं।
2. दूसरी स्क्रीन पर कॉल करें
1. किसी एक रिले के ON बटन पर क्लिक करते समय, हम बटन (ग्रीन ब्लॉक) में दृश्य परिवर्तन करेंगे। WebViewer1. GoToUrl URL में MR01/1 डेटा को लिंक करके हमारे ESP01 के लिए अनुरोध करता है।
2. किसी एक रिले के ऑफ बटन पर क्लिक करते समय, हम बटन (हरे रंग के ब्लॉक) में दृश्य परिवर्तन करेंगे। WebViewer1. GoToUrl URL में MR01 / 0 डेटा को लिंक करके हमारे ESP01 से अनुरोध करता है।
इस प्रक्रिया का उपयोग बटनों (रिले) की स्थिति को पुनर्प्राप्त करने के लिए किया जाता है, क्योंकि स्क्रीन को बदलते समय, यह निर्माण पैटर्न पर वापस आ जाता है।
प्रत्येक बटन जोड़े के लिए पीला ब्लॉक दोहराता है।
चरण 19: डाउनलोड करें
डाउनलोड के लिए प्रोजेक्ट फ़ाइलें यहां दी गई हैं:
एमआईटी ऐप आविष्कारक 2 परियोजना फ़ाइल - डाउनलोड
Android पर इंस्टॉल करने के लिए एप्लिकेशन APK - डाउनलोड
अन्य फ़ाइलें डाउनलोड करें:
पीडीएफ
मैं नहीं
सिफारिश की:
कम लागत वाला रियोमीटर: 11 कदम (चित्रों के साथ)
कम लागत वाला रियोमीटर: इस निर्देश का उद्देश्य एक तरल पदार्थ की चिपचिपाहट को प्रयोगात्मक रूप से खोजने के लिए एक कम लागत वाला रियोमीटर बनाना है। यह प्रोजेक्ट ब्राउन यूनिवर्सिटी के अंडरग्रेजुएट और मैकेनिकल सिस्टम के क्लास वाइब्रेशन में स्नातक छात्रों की एक टीम द्वारा बनाया गया था।
बातूनी स्वचालन -- Arduino से ऑडियो -- आवाज नियंत्रित स्वचालन -- एचसी - 05 ब्लूटूथ मॉड्यूल: 9 चरण (चित्रों के साथ)
बातूनी स्वचालन || Arduino से ऑडियो || आवाज नियंत्रित स्वचालन || HC - 05 ब्लूटूथ मॉड्यूल:………………………. अधिक वीडियो के लिए कृपया मेरे YouTube चैनल को सब्सक्राइब करें…. …. इस वीडियो में हमने एक टॉकेटिव ऑटोमेशन बनाया है .. जब आप मोबाइल के माध्यम से वॉयस कमांड भेजेंगे तो यह घरेलू उपकरणों को चालू कर देगा और फीडबैक भेज देगा
मिनटों में कम लागत वाला सेंसर वाला ट्रैक बनाएं!: 10 कदम (चित्रों के साथ)
मिनटों में एक कम लागत वाला सेंसर ट्रैक बनाएं !: अपने पिछले निर्देश में, मैंने आपको दिखाया कि स्वचालित साइडिंग के साथ एक मॉडल ट्रेन लेआउट कैसे बनाया जाता है। इसमें 'सेंसर ट्रैक' नाम के एक ट्रैक सेगमेंट का इस्तेमाल किया गया था। मॉडल रेलवे लेआउट में होना काफी उपयोगी चीज है। मैं निम्नलिखित के लिए इस्तेमाल किया जा सकता है: ब्लॉक
433 मेगाहर्ट्ज बैंड पर कम लागत वाला वायरलेस सेंसर नेटवर्क: 5 कदम (चित्रों के साथ)
433 मेगाहर्ट्ज बैंड पर कम लागत वाला वायरलेस सेंसर नेटवर्क: टेरेसा राजबा को इस लेख में उनके प्रकाशनों से डेटा का उपयोग करने की स्वीकृति देने के लिए बहुत धन्यवाद। *उपरोक्त छवि में - पांच सेंसर-प्रेषक इकाइयां जिनका मैंने परीक्षण के लिए उपयोग किया वायरलेस सेंसर क्या हैं नेटवर्क? एक सरल परिभाषा होगी
कम लागत वाला रडार स्पीड साइन: 11 कदम (चित्रों के साथ)
कम लागत वाला रडार स्पीड साइन: क्या आप कभी अपना खुद का कम लागत वाला रडार स्पीड साइन बनाना चाहते हैं? मैं एक ऐसी गली में रहता हूँ जहाँ कारें बहुत तेज़ चलती हैं, और मुझे अपने बच्चों की सुरक्षा की चिंता है। मैंने सोचा था कि यह अधिक सुरक्षित होगा यदि मैं अपना खुद का एक रडार गति संकेत स्थापित कर सकता हूं जो प्रदर्शित करता है