विषयसूची:

ESP8266-01 के 4 पिन का उपयोग करना: 3 चरण
ESP8266-01 के 4 पिन का उपयोग करना: 3 चरण

वीडियो: ESP8266-01 के 4 पिन का उपयोग करना: 3 चरण

वीडियो: ESP8266-01 के 4 पिन का उपयोग करना: 3 चरण
वीडियो: How to program Nodemcu esp8266 1.0 module using android smartphone | part05 2024, नवंबर
Anonim
ESP8266-01. के 4 पिनों का उपयोग करना
ESP8266-01. के 4 पिनों का उपयोग करना
ESP8266-01. के 4 पिनों का उपयोग करना
ESP8266-01. के 4 पिनों का उपयोग करना
ESP8266-01. के 4 पिनों का उपयोग करना
ESP8266-01. के 4 पिनों का उपयोग करना

ध्यान दें: यह परियोजना मूल रूप से पहले के निर्देश का विस्तार है जिसमें केवल 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);

सिफारिश की: