Мазмұны:

ESP8266-01 4 түйреуіштерін қолдану: 3 қадам
ESP8266-01 4 түйреуіштерін қолдану: 3 қадам

Бейне: ESP8266-01 4 түйреуіштерін қолдану: 3 қадам

Бейне: ESP8266-01 4 түйреуіштерін қолдану: 3 қадам
Бейне: NodeMCU ESP8266 WiFi басқару тақтасына HTTP клиентінің мысалымен кіріспе 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 түйреуішпен ғана көп нәрсені жасауға болады, менің соңғы нұсқауларымда мен DHT11 DS18B20, OLED, RTC және ESP8266-01 көмегімен BMP180 пайдалануды көрсеттім. Бұл нұсқаулықта мен 4 сенсор мен дисплейді қолдануды, сонымен қатар алынған мәліметтерді Thingspeak -ке жүктеуді шештім. Бұл менің тауық қорамдағы және оның айналасындағы атмосфераны бақылау жобасын кеңейтуде. Иә, сіз мұны ауа райы станциясы деп атауға болады, бірақ бұл тек 4 түйреуішті қолдануды суреттеу үшін, осылайша басқа нәрсені оңай жасауға болады, мен 2 DS18B20 датчиктері үшін I2C (BMP180 және OLED) 1 түйреуішті қолданамын. DHT11 үшін OneWire протоколының 1 түйрегіші ESP8266-01-де барлық түйреуіштер пайдаланылғанымен, мен OneWire протоколы арқылы және/немесе I2C протоколы арқылы тағы да сенсорларды (немесе жетектерді) қосуға болады, сондықтан бізге не қажет: BOM

  • ESP8266-01
  • 2x DS18B20
  • 1x DHT11
  • 1x BMP180
  • OLED (міндетті емес)

және, әрине, нан тақтасы, 3,3 вольтты PSU және бірнеше нан сымдары мен Thingspeak есептік жазбасы

Банкке қатысты кейбір ескертулер:

  • Әлбетте, бұл жоба ESP8266-01 шектеулі түйреуіштерін пайдалану туралы, бірақ егер сіз әлі де біреуін сатып алуыңыз қажет болса, онда түйреуіштері көп ESP8266-12 қарастыруға болады.
  • DHT11A арзан ылғалдылық пен температура сенсоры. Бұл өте дәл емес, бірақ ол жасайды. Егер сізге әлі де біреуін сатып алу қажет болса, сіз дәлірек DHT22 -ді таңдай аласыз, бірақ сіз AMS2321 -ді де таңдай аласыз. Бұл I2C үшін қолайлы DHT22 түрі, осылайша басқа түйреуішті босатады
  • BMP180 температура мен ауа қысымын өлшейді. Бұл BMP085 -тің мұрагері, бірақ қазір оның кейбір көмекшілері де бар. BMP280 бар (арзанырақ), бірақ сіз температураны, ауа қысымын және ылғалдылықты өлшейтін BME280 -ді таңдай аласыз. Осылайша сіз DHT/AMS сенсорында үнемдей аласыз
  • OLEDI дәл осылай қолданды, сондықтан сенсорлардың оқылғанын тез көрдім, бірақ сіз оны Thingspeak -те тексере аласыз. Барлық оқу мәндерін басып шығару үшін OLED тым кішкентай

1 -қадам: Цикл

Цикл
Цикл

ESP8266 4 түйреуіші ПХД-да көрсетілмеген, ал суреттердің көпшілігінде GPIO0 және GPIO2 анық көрсетілген, алайда ESP826-01-GPIO1 түйрегіші (Tx түйреуіші) және GPIO3 түйрегіші (Rx істігі).i бұл түйреуіштерді келесідей қолданады

  • GPIO0 -> I2C портының SDA штыры
  • GPIO1 -> DHT11
  • I2C портының GPIO2-> SCL түйрегіші
  • GPIO3-> OneWire шинасы

Менің I2C модульдерімде тартылатын резисторлар болғандықтан, мен оған I2C тартылатын резисторларды қоспаймын. DS18B20 -ге әлі де резистор қажет, ол үшін мен 4k7 қолдандым, бірақ бұл онша маңызды емес, 10k де жақсы. DHT11-ге сонымен қатар тартылатын резистор қажет, бірақ мен оны онсыз жұмыс істейтінін білдім. 4k7 резисторды қосу көрсеткіштерді өзгертпеді, сондықтан мен оны қалдырдым. 3 түйреуішті DHT11 модульдерінің көпшілігінде модульге 10 к дәнекерленген, мен OLED қосылымдарын тартпағанымды түсіндім. Себебі мен оны тез тексеру үшін ғана қостым, бірақ егер сіз оны қосқыңыз келсе, бұл SDA -ны SDA -ға және SCL -ге SCL -ге қосу туралы … және, әрине, жер мен Vcc түйреуіштерін өз әріптестеріне қосу.

2 -қадам: Бағдарлама

Бағдарлама өте қарапайым. Ол алдымен кітапханалар мен сенсорларды орнатады, ол DHT11 -ді 1 (Tx) түйініне және DS18B20 үшін OnWire шинасын 3 -пинге (Rx) бекітеді. OneWire шинасында 1 -ден астам DS18B20 датчигін қолдану үшін сіз олардың «бірегей мекен -жайын» білуіңіз керек. Егер ол жоқ болса, онда сізге сол мекенжайларды оқу бағдарламасы қажет. Бағдарламада Thingspeak арнасы үшін WiFi тіркелгі деректерін және API жазуды қамтамасыз ету қажет.

/*

Өріс 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 #include «SSD1306.h» SSD1306 дисплейі (0x3c, 0, 2); #DHTPIN 1 анықтаңыз // GPIO1 (Tx) #DHTTYPE DHT11 анықтаңыз #ONE_WIRE_BUS 3 анықтаңыз // GPIO3 = Rx const char* ssid = «YourSSID»; const char* password = «YourPassword»; const char* host = «api.thingspeak.com»; const char* writeAPIKey = «W367812985»; // useAOURO your writeApi // DHT11 stuff float temperature_buiten; өзгермелі температура_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // DS18b20 OneWire oneWire материалдары (ONE_WIRE_BUS); // OneWire данасы кез келген OneWire құрылғыларымен байланысу үшін DallasTemperature датчиктерімен (& oneWire); // Біздің oneWire данамыздың мекенжайын Даллас температурасына жіберіңіз. DeviceAddress Probe01 = {0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02 = {0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 материалдары Adafruit_BMP085 bmp; void setup () {// I2C stuff Wire.pins (0, 2); Wire.begin (0, 2); // датчиктерді инициализациялау // dht 11 stuff dht.begin (); // ds18b20 stuff sensors.begin (); // ds18b20 // ажыратымдылықты 10 биттікке орнатыңыз (9 -нан 12 битке дейін болуы мүмкін.. төменірек жылдамырақ) sensors.setResolution (Probe01, 10); sensors.setResolution (Probe02, 10); // bmp180 заттары if (! bmp.begin ()) {// Serial.println («BMP180 /BMP085 жоқ»); // while (1) {}} // OLED материалдары display.init (); display.flipScreenVertically (); display.setFont (ArialMT_Plain_10); кешіктіру (1000); // WiFi желісіне қосылыңыз WiFi.begin (ssid, пароль); while (WiFi.status ()! = WL_CONNECTED) {кешіктіру (500); }} void loop () {// ds18b20stuff ------------------- sensors.requestTemperatures (); // температураны алу үшін пәрменді жіберіңіз temperature_buiten = sensors.getTempC (Probe01); // temperature_buiten2 = sensors.getTempC (Probe02); // // dht11 заттары ---------------- ---- қалқыма ылғалдылығы = dht.readHumidity (); өзгермелі температура = dht.readTemperature (); if (isnan (ылғалдылық) || isnan (температура)) {қайтару; } // bmp материалдары ------------------------- Жол t = Жол (bmp.readTemperature ()); Жол p = Жол (bmp.readPressure ()); // OLED материалдары -------------------------- display.clear (); display.drawString (0, 10, p); // bmp қысымын көрсету.drawString (0, 24, String (температура_бутен)); // ds18b20 display.drawString (0, 38, Жол (ылғалдылық)); // dht11 дисплейі.display (); // WiFiClient клиентіне TCP қосылымын жасау; const int httpPort = 80; if (! client.connect (хост, httpPort)) {қайтару; } Жолдың url = «/update? Key =»; url += writeAPIKey; url += «& өріс1 =»; url += Жол (температура); // roost (DHT1) url += «& өріс2 =»; url += Жол (ылғалдылық); // roost (DHT11) url += «& field3 =»; url += Жол (temperatur_buiten); // түйін температурасы (DS18B20 nr 1) url += «& field4 =»; url += Жол (temperatur_buiten2); // топырақ температурасы (DS18B29 nr 2) url += «& field5 =»; url += Жол (bmp.readTemperature ()); Сыртқы температура (BMP180) url += «& field6 =»; url += Жол (bmp.readPressure ()); // Ауа қысымы (BMP180) url += «\ r / n»; // client.print серверіне сұрау жіберу (String («GET») + url + «HTTP/1.1 / r / n» + «Host:» + host + «\ r / n» + «Connection: close / r / n / r / n «); кешіктіру (1000); }

……..

3 -қадам: Толығырақ

Қазіргі уақытта бұл бағдарлама тек бақылайды, бірақ сізге BH1750 I2C жарық сенсорын қосудың сізге не кедергі, ол күндізгі уақытты білу үшін кешкі немесе таңертеңгілік уақытты немесе РТЖ өлшеу үшін және үйдің есігін автоматты түрде ашу және жабу үшін. PCF8574 I2C енгізу -шығару кеңейту картасы немесе ол бақшада болғандықтан, топырақтың ылғалдылығын өлшеу үшін PCF8591 немесе ADS1115 AD түрлендіргішін қосыңыз және қажет болғанда сорғыны іске қосыңыз. Немесе су бассейнінің жылытқышы қосылады, егер температура нөлден төмен болса, егер I2 C чипі болса, оны ESP8266 қолдануы мүмкін.

Маңызды ескерту: бағдарлама жақсы жұмыс істейді, бірақ егер сіз басқа сенсорларды Rx немесе Tx -ке қоссаңыз, әсіресе егер сіз оларды шығысқа шығарсаңыз, түйреуіштер кенеттен олар GPIO түйреуіштері емес екенін есіне түсіруі мүмкін. Түйреуіштерді олар GPIO түйрегіштері екенін басынан бастап айтқан дұрыс: бұл келесі параметрлерді орнату арқылы жасайды:

pinMode (1, FUNCTION_3);

pinMode (3, FUNCTION_3);

Ұсынылған: