Мазмұны:
Бейне: ESP8266-01 4 түйреуіштерін қолдану: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Ескерту: Бұл жоба негізінен тек 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);
Ұсынылған:
ISP Wifi модулін, ESP8266 флешер мен бағдарламашыны қолдану арқылы ESP8266 AT микробағдарламасын қалай жыпылықтауға немесе бағдарламалауға болады: 6 қадам
ESP8266 AT бағдарламалық жасақтамасын ESP8266 флешер мен бағдарламашы, IOT Wifi модулін қолдану арқылы қалай жыпылықтауға немесе бағдарламалауға болады: Сипаттама: Бұл модуль ESP-01 немесе ESP-01S түріндегі ESP8266 модульдеріне арналған USB адаптері /бағдарламашысы. Ол ESP01 қосуға арналған 2х4П 2,54мм әйел басымен ыңғайлы түрде орнатылған. Сондай-ақ, ол ESP-01-дің барлық түйреуіштерін 2x4P 2,54 мм ерлер арқылы ажыратады
Кір жуғыш машина моторының түйреуіштерін қалай табуға болады: 6 қадам
Кір жуғыш машина қозғалтқышының түйреуіштерін қалай табуға болады: сандық мультиметр көмегімен кір жуғыш машинаның түйреуіштерін табамыз. Бізге үздіксіздікті тексеру режимінде мультиметр және жоғарыдағы суреттегідей кір жуғыш машинаның ұқсас моторы қажет. алдымен визуалды тексеруден бастаңыз
Raspberry Pi бар жарық диодты жыпылықтау - Raspberry Pi -де GPIO түйреуіштерін қалай қолдануға болады: 4 қадам
Raspberry Pi бар жарық диодты жыпылықтау | Raspberry Pi -де GPIO түйреуіштерін қалай қолдануға болады: Сәлеметсіздер ме, осы нұсқаулықта біз Raspberry pi -дің GPIO -ларын қолдануды үйренеміз. Егер сіз бір кездері Arduino -ны қолданған болсаңыз, онда біз светодиодты қосқышты және т.б. оның түйреуіштеріне қосып, оны жұмыс істетуге болатынын білетін шығарсыз. светодиодты жыпылықтатыңыз немесе қосқыштан кіріс алыңыз
ESP8266 GPIO0/GPIO2/GPIO15 түйреуіштерін қолдану: 4 қадам
ESP8266 GPIO0/GPIO2/GPIO15 түйреуіштерін қолдану: 2018 жылдың 1 шілдесіне дейін жаңарту-GPIO0 шығыс кезінде қайта бағдарламалау туралы ескерту қосылды Бұл ESP8266 модулінде GPIO0/GPIO2 және GPIO15 түйреуіштерін пайдалану туралы өте қысқа ескерту. ESP8266-01 түйреуіштерін қалай қолдануға болады Кіріспе ESP8266-бұл төмен
Android және Linux операциялық жүйелері бар DragonBoard 410c GPIO түйреуіштерін қолдана отырып қосымшаларды әзірлеу: 6 қадам
Android және Linux операциялық жүйелері бар DragonBoard 410c-те GPIO түйреуіштерін қолдана отырып қосымшаларды әзірлеу: Бұл оқулықтың мақсаты-төмен жылдамдықты DragonBoard 410c GPIO түйреуішін қолдану арқылы қосымшаларды әзірлеу үшін қажетті ақпаратты көрсету. Бұл оқулықта андроидтағы SYS бар GPIO түйреуіштерін қолдана отырып қосымшаларды әзірлеуге арналған ақпарат берілген