विषयसूची:
वीडियो: ESP8266-01 के 4 पिन का उपयोग करना: 3 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
ध्यान दें: यह परियोजना मूल रूप से पहले के निर्देश का विस्तार है जिसमें केवल 2 पिन का उपयोग किया जाता है। ESP8266-01 पर GPIO पिन की सीमित संख्या (4) किसी भी गंभीर अनुप्रयोग के लिए एक बाधा की तरह लग सकती है। फिर भी यदि कोई पिन का उपयोग करता है एक स्मार्ट तरीका केवल उन 4 पिनों के साथ बहुत कुछ करना संभव है। मेरे कुछ हालिया निर्देशों में, मैंने ESP8266-01 के साथ एक DHT11 एक DS18B20, एक OLED, एक RTC और एक BMP180 का उपयोग दिखाया है। इस निर्देशयोग्य में मैंने 4 सेंसर और एक डिस्प्ले का उपयोग करने के लिए निर्धारित किया, जबकि अधिग्रहीत डेटा को थिंग्सपीक पर अपलोड भी किया। यह वास्तव में मेरे चिकन कॉप में और उसके आसपास के वातावरण की निगरानी की एक परियोजना पर विस्तार कर रहा है। हां, आप इसे एक मौसम केंद्र कह सकते हैं, लेकिन यह केवल 4 पिनों के उपयोग को स्पष्ट करने के लिए है, आप आसानी से कुछ और बना सकते हैं इस तरह से मैं I2C (BMP180 और OLED) के लिए 2 पिन का उपयोग 2 DS18B20 सेंसर के लिए 1 पिन का उपयोग करूंगा। DHT11 के लिए वनवायर प्रोटोकॉल1 पिन हालांकि ESP8266-01 में अब इसके सभी पिन का उपयोग किया गया है, फिर भी मैं वनवायर प्रोटोकॉल और/या I2C प्रोटोकॉल के माध्यम से और अधिक सेंसर (या एक्चुएटर्स) जोड़ सकता हूं। तो, हमें क्या चाहिए:बीओएम
- ईएसपी8266-01
- 2x DS18B20
- 1x DHT11
- 1 एक्स बीएमपी 180
- ओएलईडी (वैकल्पिक)
और निश्चित रूप से एक ब्रेडबोर्ड, एक 3.3 वी पीएसयू और कुछ ब्रेडबोर्ड तार और एक थिंग्सपीक खाता
बीओएम के बारे में बस कुछ टिप्पणियां:
- ESP8266-01जाहिर है कि परियोजना ESP8266-01 के सीमित पिनों का उपयोग करने के बारे में है, लेकिन अगर आपको अभी भी एक खरीदने की आवश्यकता है, तो आप एक ESP8266-12 पर विचार कर सकते हैं जिसमें अधिक पिन हैं
- DHT11A सस्ते सभी उद्देश्य आर्द्रता और तापमान सेंसर। यह बहुत सटीक नहीं है लेकिन यह करेगा। यदि आपको अभी भी एक खरीदना है, तो आप DHT22 का विकल्प चुन सकते हैं जो माना जाता है कि अधिक सटीक है, लेकिन आप AMS2321 का विकल्प भी चुन सकते हैं। यह एक प्रकार का DHT22 है जो I2C के लिए उपयुक्त है, इस प्रकार एक और पिन मुक्त करता है
- BMP180 तापमान और वायुदाब को मापता है। यह BMP085 का उत्तराधिकारी है, लेकिन अब इसके पास कुछ बचावकर्ता भी हैं। वहाँ (सस्ता) BMP280 है, लेकिन आप BME280 का विकल्प भी चुन सकते हैं जो तापमान, वायुदाब और आर्द्रता को मापता है। इस तरह आप DHT/AMS सेंसर पर बचत कर सकते हैं
- OLEDI ने अभी इसका उपयोग किया है ताकि मैं जल्दी से देख सकूं कि सेंसर पढ़े गए हैं या नहीं, लेकिन आप इसे थिंग्सपीक पर भी देख सकते हैं। OLED वैसे भी सभी पढ़े गए मानों को प्रिंट करने के लिए बहुत छोटा है
चरण 1: सर्किट
ESP8266 के 4 पिन पीसीबी पर इस तरह इंगित नहीं किए गए हैं, और अधिकांश छवियां केवल स्पष्ट रूप से GPIO0 और GPIO2 बताती हैं। हालांकि ESP826-01 में GPIO1 पिन (Tx पिन) और एक GPIO3 पिन (Rx पिन) है। i उन पिनों का उपयोग इस प्रकार करेंगे
- GPIO0 -> I2C पोर्ट का SDA पिन
- GPIO1 ->DHT11
- GPIO2-> I2C पोर्ट का SCL पिन
- GPIO3-> वनवायर बस
जैसा कि मेरे I2C मॉड्यूल में पहले से ही प्रतिरोधों को खींच लिया गया है, मैं वहां कोई भी I2C पुलअप प्रतिरोधक नहीं जोड़ूंगा। DS18B20 को अभी भी एक पुल अप रेसिस्टर की आवश्यकता है जिसके लिए मैंने 4k7 का उपयोग किया है, लेकिन यह वास्तव में उतना महत्वपूर्ण नहीं है, एक 10k भी अच्छा है। DHT11 को माना जाता है कि एक पुल-अप रेसिस्टर की भी आवश्यकता होती है, लेकिन मैंने इसे बिना एक के भी काम करने के लिए पाया। 4k7 रोकनेवाला जोड़ने से कोई भी रीडिंग नहीं बदली, इसलिए मैंने इसे छोड़ दिया। 3 पिन DHT11 मॉड्यूल में से कई, पहले से ही मॉड्यूल पर 10 k मिलाप है। मुझे अभी एहसास हुआ कि मैंने OLED के लिए कनेक्शन नहीं बनाए हैं। ऐसा इसलिए है क्योंकि मैंने इसे केवल एक त्वरित जांच के लिए जोड़ा है, लेकिन क्या आप इसे जोड़ना चाहते हैं, यह केवल एसडीए को एसडीए और एससीएल को एससीएल से जोड़ने की बात है … और जमीन और वीसीसी पिन को उनके समकक्षों से जोड़ने की बात है।
चरण 2: कार्यक्रम
कार्यक्रम काफी सीधा है। पहले यह पुस्तकालयों और सेंसरों को स्थापित करता है। यह DHT11 को पिन 1 (Tx) और ऑनवायर बस को DS18B20 के लिए पिन 3 (Rx) से जोड़ता है। वनवायर बस में 1 से अधिक DS18B20 सेंसर का उपयोग करने के लिए, आपको उनका 'अद्वितीय पता' जानना होगा। यदि आपके पास वह नहीं है तो आपको उन पतों को पढ़ने के लिए एक प्रोग्राम की आवश्यकता है। इसे आसानी से एक arduino पर करें। कार्यक्रम में आपको अभी भी अपने वाईफाई क्रेडेंशियल्स के साथ-साथ अपने थिंग्सपीक चैनल के लिए एपीआई लिखना होगा।
/*
फील्ड 1 टेम्प रोस्ट (DHT11) फील्ड 2 ह्यूमिडिटी रोस्ट (DHT11) फील्ड 3 कॉप तापमान (DS18B20) फील्ड 4 मिट्टी का तापमान (DS18B20) फील्ड 5 एयरप्रेशर (bmp180) फील्ड 6 बाहरी तापमान (bmp180) * */ #include #include // https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include "SSD1306.h" SSD1306 डिस्प्ले (0x3c, 0, 2); #DHTPIN 1 परिभाषित करें //GPIO1 (Tx) #DHTTYPE DHT11 को परिभाषित करें #ONE_WIRE_BUS 3 को परिभाषित करें // GPIO3=Rx const char* ssid = "YourSSID"; कॉन्स्ट चार * पासवर्ड = "आपका पासवर्ड"; कास्ट चार* होस्ट = "एपीआई.थिंग्सपीक.कॉम"; कास्ट चार* राइटएपीआईकेई = "डब्ल्यू३६७८१२९८५"; // अपने राइटएपी का उपयोग करें // डीएचटी 11 सामान फ्लोट तापमान_ब्यूटेन; फ्लोट तापमान_buiten2; डीएचटी डीएचटी (डीएचटीपीआईएन, डीएचटीटीपीई, 15); // DS18b20 सामान वनवायर वनवायर (ONE_WIRE_BUS); // वनवायर इंस्टेंस किसी भी वनवायर डिवाइस के साथ संचार करने के लिए डलास तापमान सेंसर (और वनवायर); // हमारे वनवायर इंस्टेंस का पता डलास तापमान में पास करें। DeviceAddress Probe01 = { 0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02={0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 सामान Adafruit_BMP085 bmp; शून्य सेटअप () {//I2C सामान Wire.pins(0, 2); वायर.बेगिन (0, 2); // सेंसर शुरू करें // dht 11 सामान dht.begin (); //ds18b20 सामान sensor.begin();//ds18b20 // 10 बिट के लिए संकल्प सेट करें (9 से 12 बिट हो सकता है.. कम तेज है) sensor.setResolution (Probe01, 10); sensor.setResolution (Probe02, 10); // bmp180 सामान अगर (! bmp.begin ()) {// Serial.println ("कोई BMP180 / BMP085"); // जबकि (1) {}} //OLED सामान display.init (); डिस्प्ले.फ्लिपस्क्रीन वर्टिकली (); display.setFont (एरियलएमटी_प्लेन_10); देरी (1000); // वाईफाई नेटवर्क से कनेक्ट करें WiFi.begin (ssid, पासवर्ड); जबकि (WiFi.status() != WL_CONNECTED) {देरी (500); } } शून्य लूप () {//ds18b20stuff--------------------- सेंसर। अनुरोध तापमान (); // तापमान प्राप्त करने के लिए कमांड भेजें ---- फ्लोट आर्द्रता = dht.readHumidity (); फ्लोट तापमान = dht.readTemperature (); अगर (इस्नान (आर्द्रता) || इसान (तापमान)) {वापसी; } // बीएमपी सामान --------------------------- स्ट्रिंग टी = स्ट्रिंग (बीएमपी.readTemperature ()); स्ट्रिंग पी = स्ट्रिंग (बीएमपी.readPressure ()); // ओएलईडी सामान -------------------------- डिस्प्ले। क्लियर (); display.drawString(0, 10, p);//bmp दबाव display.drawString(0, 24, String(temperature_buiten));//ds18b20 display.drawString(0, 38, String(humidity));//dht11 डिस्प्ले.प्रदर्शन (); // टीसीपी कनेक्शन वाईफाई क्लाइंट क्लाइंट बनाएं; कॉन्स्ट इंट httpPort = 80; अगर (! क्लाइंट। कनेक्ट (होस्ट, httpPort)) {वापसी; } स्ट्रिंग यूआरएल = "/ अद्यतन? कुंजी ="; यूआरएल + = राइटएपीआईके; यूआरएल += "&field1="; url += स्ट्रिंग (तापमान);// roost (DHT1) url += "&field2="; url += स्ट्रिंग (आर्द्रता);// रोस्ट (DHT11) url += "&field3="; url += String(temperature_buiten);//कॉप तापमान (DS18B20 nr 1) url += "&field4="; यूआरएल + = स्ट्रिंग (तापमान_buiten2); // मिट्टी का तापमान (DS18B29 nr 2) url +="&field5="; url +=स्ट्रिंग(bmp.readTemperature());बाहर का तापमान (BMP180) url +="&field6="; url +=स्ट्रिंग(bmp.readPressure());// एयरप्रेशर (BMP180) url += "\r\n"; // सर्वर क्लाइंट को अनुरोध भेजें। \n\r\n"); देरी (1000); }
……..
चरण 3: अधिक
वर्तमान में यह कार्यक्रम केवल मॉनिटर करता है, लेकिन आपको BH1750 I2C लाइट सेंसर जोड़ने से रोकने के लिए क्या है, यह मापने के लिए कि क्या यह शाम या सुबह है या दिन के समय को जानने के लिए RTC है और कॉप का दरवाजा स्वचालित रूप से खोलने और बंद करने के लिए है। एक PCF8574 I2C I/O विस्तार कार्ड, या जैसा कि यह पहले से ही बगीचे में है, मिट्टी की नमी को मापने और आवश्यक होने पर एक पंप को सक्रिय करने के लिए PCF8591 या ADS1115 AD कनवर्टर जोड़ें। या हो सकता है कि पानी के बेसिन हीटर पर स्विच करना जब तापमान शून्य से नीचे गिर जाता है यदि इसके लिए I2 C चिप है, तो ESP8266 शायद इसका उपयोग कर सकता है।
हालांकि एक महत्वपूर्ण नोट: जैसा है कार्यक्रम अच्छी तरह से काम करता है, लेकिन यदि आप आरएक्स या टीएक्स में अन्य सेंसर जोड़ते हैं, खासकर यदि आप उन्हें आउटपुट में बनाते हैं, तो पिन अचानक याद कर सकते हैं कि वे वास्तव में जीपीआईओ पिन नहीं हैं। पिनों को शुरू से ही यह बताना बेहतर होगा कि वे अब GPIO पिन हैं। कोई निम्नलिखित कथनों को सेटअप में डालकर ऐसा करता है:
पिनमोड(1, FUNCTION_3);
पिनमोड (3, FUNCTION_3);
सिफारिश की:
बिना सोल्डर पिन हैडर के Arduino नैनो के लिए ICSP कनेक्टर लेकिन पोगो पिन: 7 कदम
बिना सोल्डर पिन हैडर लेकिन पोगो पिन के Arduino नैनो के लिए ICSP कनेक्टर: बोर्ड पर बिना सोल्डर पिन हेडर के Arduino नैनो के लिए ICSP कनेक्टर बनाएं, लेकिन Pogo Pin.Parts3×2 पिन सॉकेट X1 - APitch 2.54mm ड्यूपॉन्ट लाइन वायर महिला पिन कनेक्टर हाउसिंग टर्मिनल x6 - BP75-E2 (1.3 मिमी शंक्वाकार सिर) स्प्रिंग टेस्ट जांच पोगो पिन
पोटेंशियोमीटर (वैरिएबल रेसिस्टर) और अरुडिनो यूनो का उपयोग करके एलईडी / चमक को लुप्त करना / नियंत्रित करना: 3 चरण
पोटेंशियोमीटर (वैरिएबल रेसिस्टर) और अरुडिनो यूनो का उपयोग करके एलईडी/चमक को फीका/नियंत्रित करना: Arduino एनालॉग इनपुट पिन पोटेंशियोमीटर के आउटपुट से जुड़ा है। तो Arduino ADC (डिजिटल कनवर्टर के अनुरूप) एनालॉग पिन पोटेंशियोमीटर द्वारा आउटपुट वोल्टेज को पढ़ रहा है। पोटेंशियोमीटर नॉब को घुमाने से वोल्टेज आउटपुट बदलता है और Arduino फिर से
पायथन और आपके रास्पबेरी पाई के GPIO पिन के साथ कई एलईडी को नियंत्रित करना: 4 चरण (चित्रों के साथ)
पायथन और आपके रास्पबेरी पाई के GPIO पिन के साथ कई एल ई डी को नियंत्रित करना: यह निर्देशयोग्य दर्शाता है कि 4 एल ई डी को पावर देने के लिए अपने रास्पबेरीपी पर कई जीपीआईओ पिन को कैसे नियंत्रित किया जाए। यह आपको पायथन में मापदंडों और सशर्त बयानों से भी परिचित कराएगा। आपके रास्पबेरी पाई के GPIO पिन का उपयोग करके हमारा पिछला निर्देश
ESP8266 GPIO0/GPIO2/GPIO15 पिन का उपयोग करना: 4 कदम
ESP8266 GPIO0/GPIO2/GPIO15 पिन का उपयोग करना: 1 जुलाई 2018 को अपडेट करें - GPIO0 एक आउटपुट होने पर पुन: प्रोग्रामिंग पर जोड़ा गया नोट यह ESP8266 मॉड्यूल पर GPIO0 / GPIO2 और GPIO15 पिन का उपयोग करने के तरीके पर एक बहुत छोटा नोट है। अपडेट: यह भी जांचें बाहर ESP8266-01 पिन का उपयोग कैसे करेंपरिचयESP8266 एक कम है
आईएसपी ६ पिन से ८ पिन सॉकेट: ४ कदम
ISP ६ पिन से ८ पिन सॉकेट: जिस कारण से मैंने मुख्य रूप से इस परियोजना का निर्माण किया था, वह ATTiny45 को प्रोग्राम करना था, जिसमें ८ पिन कनेक्शन है, जबकि मेरे USBtinyISP (लेडीडा से) में केवल १० पिन और ६ पिन कनेक्शन है। लगभग ३-४ सप्ताह तक इंटरनेट पर जासूसी करने के बाद मुझे कुछ भी नहीं मिला