INHOUDSOPGAWE:
Video: Gebruik die 4 penne van die ESP8266-01: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Opmerking: hierdie projek is basies 'n uitbreiding van 'n vorige instruksie wat slegs 2 penne gebruik het. Die beperkte aantal (4) GPIO-penne op die ESP8266-01 kan vir enige ernstige toepassing 'n hindernis wees, maar as u die penne in op 'n slim manier is dit baie moontlik om baie te doen met slegs die 4 penne. In sommige van my onlangse instruksies het ek die gebruik van 'n DHT11, 'n DS18B20, 'n OLED, 'n RTC en 'n BMP180 met die ESP8266-01 getoon. In hierdie instruksies het ek my voorgeneem om 4 sensors en 'n skerm te gebruik, terwyl ek ook die verkrygde data na Thingspeak oplaai. Dit brei eintlik uit oor 'n projek om die atmosfeer in en om my hoenderhok te monitor. Ja, u kan dit 'n weerstasie noem, maar dit is slegs om die gebruik van die 4 penne te illustreer, u kan maklik iets anders maak. Ek gebruik 2 penne vir I2C (BMP180 en OLED) 1 pen vir 2 DS18B20 sensors via die OneWire-protokol1-pen vir die DHT11 Alhoewel die ESP8266-01 nou al sy penne gebruik het, kan ek steeds meer sensors (of aandrywers) byvoeg deur die OneWire-protokol en/of via die I2C-protokol. So, wat het ons nodig: BOM
- ESP8266-01
- 2x DS18B20
- 1x DHT11
- 1x BMP180
- OLED (opsioneel)
en natuurlik 'n broodbord, 'n 3.3 V PSU en 'n paar broodborddrade en 'n Thingspeak -rekening
Net 'n paar opmerkings oor die BOM:
- ESP8266-01 Uiteraard gaan die projek daaroor om die beperkte penne van die ESP8266-01 te gebruik, maar as u nog steeds een moet koop, kan u 'n ESP8266-12 oorweeg met meer penne
- DHT11A goedkoop universele humiditeits- en temperatuursensor. Dit is nie baie akkuraat nie, maar dit sal wel gebeur. As u nog steeds een moet koop, kan u kies vir die DHT22 wat vermoedelik meer akkuraat is, maar u kan ook kies vir die AMS2321. Dit is 'n soort DHT22 wat geskik is vir I2C, en sodoende nog 'n pen losmaak
- BMP180 meet temperatuur en lugdruk. Dit is die opvolger van die BMP085, maar het ook nou self 'n paar suvessors. Daar is die (goedkoper) BMP280, maar u kan ook kies vir die BME280 wat temperatuur, lugdruk en humiditeit meet. Op hierdie manier kan u bespaar op die DHT/AMS -sensor
- OLEDI het dit net gebruik, sodat ek vinnig kon sien of die sensors gelees is, maar u kan dit net sowel op Thingspeak nagaan. Die OLED is in elk geval te klein om al die leeswaardes af te druk
Stap 1: Die stroombaan
Die 4 penne van die ESP8266 word nie as sodanig op die PCB aangedui nie, en die meeste beelde dui slegs duidelik GPIO0 en GPIO2 aan. Die ESP826-01 het egter 'n GPIO1-pen (die Tx-pen) en 'n GPIO3-pen (die Rx-pen). sal die penne soos volg gebruik
- GPIO0 -> SDA -pen van die I2C -poort
- GPIO1 -> DHT11
- GPIO2-> SCL-pen van die I2C-poort
- GPIO3-> OneWire-bus
Aangesien my I2C -modules reeds optrekweerstands het, sal ek geen I2C -weerstandsweerstands daar byvoeg nie. Die DS18B20 benodig nog 'n optrekweerstand waarvoor ek 'n 4k7 gebruik het, maar dit is regtig nie so krities nie; 'n 10k is ook goed. Die DHT11 het vermoedelik ook 'n optrekweerstand nodig, maar ek het gevind dat dit ook sonder een werk. Die toevoeging van 'n 4k7 -weerstand het niks van die lesings verander nie, so ek het dit uitgelaat. Baie van die 3 -pins DHT11 -modules het reeds 'n 10 k soldeer op die module. Ek het net besef dat ek nie die verbindings vir die OLED getrek het nie. Dit is omdat ek dit net vir 'n vinnige ondersoek aangeskakel het, maar as u dit wil byvoeg, is dit net 'n kwessie om SDA aan SDA en SCL aan SCL te koppel … en natuurlik die grond en Vcc -penne aan hul eweknieë
Stap 2: Die program
Die program is redelik eenvoudig. Eerstens stel dit die biblioteke en die sensors in. Dit koppel die DHT11 aan pen 1 (Tx) en die OnWire -bus vir die DS18B20 aan pen 3 (Rx). Om meer as 1 DS18B20 -sensor op die OneWire -bus te gebruik, moet u hul 'unieke adres' ken. As u dit nie het nie, benodig u 'n program om die adresse te lees. Doen dit maklik op 'n arduino. In die program moet u nog u WiFi -inskrywings sowel as die skryf -API vir u Thingspeak -kanaal verskaf
/*
Veld 1 tempokost (DHT11) Veld 2 humiditeitstaak (DHT11) veld 3 Koeltemperatuur (DS18B20) veld 4 grondtemperatuur (DS18B20) veld 5 Lugdruk (bmp180) veld 6 Buitentemperatuur (bmp180) * */ #sluit in #sluit in // https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include #include "SSD1306.h" SSD1306 display (0x3c, 0, 2); #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char* ssid = "YourSSID"; const char* password = "YourPassword"; const char* host = "api.thingspeak.com"; const char* writeAPIKey = "W367812985"; // gebruik jou writeApi // DHT11 stuff float temperature_buiten; vlot temperatuur_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // DS18b20 stuff OneWire oneWire (ONE_WIRE_BUS); // oneWire -instansie om te kommunikeer met enige OneWire -toestelle DallasTemperature sensors (& oneWire); // Gee adres van ons oneWire -instansie aan Dallas Temperature. DeviceAddress Probe01 = {0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02 = {0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 goed Adafruit_BMP085 bmp; ongeldige opstelling () {// I2C stuff Wire.pins (0, 2); Wire.begin (0, 2); // Initialiseer sensors // dht 11 dinge dht.begin (); // ds18b20 stuff sensors.begin (); // ds18b20 // stel die resolusie op 10 bit (kan 9 tot 12 bits wees. laer is vinniger) sensors.setResolution (Probe01, 10); sensors.setResolution (Probe02, 10); // bmp180 stuff if (! bmp.begin ()) {// Serial.println ("No BMP180 /BMP085"); // terwyl (1) {}} // OLED -dinge display.init (); display.flipScreenVertically (); display.setFont (ArialMT_Plain_10); vertraging (1000); // Koppel aan WiFi -netwerk WiFi.begin (ssid, wagwoord); terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (500); }} leemte lus () {// ds18b20stuff ------------------- sensors.requestTemperatures (); // Stuur die opdrag om temperature temperature_buiten = sensors.getTempC (Probe01); // temperature_buiten2 = sensors.getTempC (Probe02); // // dht11 goed te kry ---------------- ---- float humiditeit = dht.readHumidity (); vlottemperatuur = dht.readTemperature (); as (isnan (humiditeit) || isnan (temperatuur)) {terugkeer; } // bmp stuff ------------------------- String t = String (bmp.readTemperature ()); String p = String (bmp.readPressure ()); // OLED-goed -------------------------- display.clear (); display.drawString (0, 10, p); // bmp druk display.drawString (0, 24, String (temperature_buiten)); // ds18b20 display.drawString (0, 38, String (humiditeit)); // dht11 vertoning.display (); // maak TCP -verbindings WiFiClient -kliënt; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/update? Key ="; url += writeAPIKey; url += "& field1 ="; url += String (temperatuur); // roost (DHT1) url += "& field2 ="; url += String (humiditeit); // roost (DHT11) url += "& field3 ="; url += String (temperature_buiten); // kooptemperatuur (DS18B20 nr 1) url += "& field4 ="; url += String (temperatuur_buiten2); // grondtemperatuur (DS18B29 nr 2) url += "& field5 ="; url += String (bmp.readTemperature ()); Buite temperatuur (BMP180) url += "& field6 ="; url += String (bmp.readPressure ()); // Lugdruk (BMP180) url += "\ r / n"; // Stuur versoek na die bediener client.print (String ("GET") + url + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); vertraging (1000); }
……..
Stap 3: Meer
Tans monitor hierdie program slegs, maar wat kan u verhinder om 'n BH1750 I2C -lagsensor by te voeg om te meet of dit aand of oggend is of 'n RTC om die tyd van die dag te weet en om die deur van die hok outomaties oop en toe te maak met behulp van 'n PCF8574 I2C I/O -uitbreidingskaart, of soos dit reeds in die tuin is, voeg 'n PCF8591- of ADS1115 AD -omskakelaar by om die humiditeit van die grond te meet en aktiveer 'n pomp indien nodig. Of miskien skakel die waterverwarmer aan as die temperatuur onder nul val, as daar 'n I2 C -chip is, kan die ESP8266 dit waarskynlik gebruik.
'N Belangrike opmerking: die program werk goed, maar as u ander sensors by Rx of Tx voeg, veral as u dit in uitsette maak, kan die penne skielik onthou dat dit nie regtig GPIO -penne is nie. Dit is beter om van die begin af aan die penne te vertel dat dit nou GPIO -penne is. Een doen dit deur die volgende stellings in die opstelling te plaas:
pinMode (1, FUNCTION_3);
pinMode (3, FUNCTION_3);
Aanbeveel:
Hoe om 'n Raspberry Pi se GPIO-penne en Avrdude te gebruik om DIMP 2 of DA PIMP 2 van Bit-bang te program: 9 stappe
Hoe om 'n Raspberry Pi se GPIO-penne en Avrdude te gebruik vir Bit-bang-program DIMP 2 of DA PIMP 2: Dit is stap-vir-stap instruksies oor hoe om 'n Raspberry Pi te gebruik en die gratis open-source opdrag avrdude om te bit-bang -programmeer 'n DIMP 2 of DA PIMP 2. Ek neem aan dat u vertroud is met u Raspberry Pi en die LINUX -opdragreël. Jy hoef nie
Die beheer van verskeie LED's met Python en die GPIO -penne van u Framboos Pi: 4 stappe (met foto's)
Die beheer van verskeie LED's met Python en die GPIO -penne van u Raspberry Pi: Hierdie instruksie demonstreer hoe u meer GPIO -penne op u RaspberryPi kan beheer om 4 LED's aan te dryf. Dit sal u ook kennis maak met parameters en voorwaardelike stellings in Python. Ons vorige instruksies met behulp van die GPIO -penne van u Raspberry Pi om
ESP8266 Gebruik GPIO0/GPIO2/GPIO15 penne: 4 stappe
ESP8266 Die gebruik van GPIO0/GPIO2/GPIO15-penne: Werk 1 Julie 2018 by-Opmerking bygevoeg oor herprogrammering wanneer GPIO0 'n uitset is. uit Hoe om die ESP8266-01-penne te gebruik Inleiding ESP8266 is 'n lae
Ontwikkeling van toepassings met behulp van GPIO -penne op die DragonBoard 410c met Android- en Linux -bedryfstelsels: 6 stappe
Ontwikkeling van toepassings met behulp van GPIO-penne op die DragonBoard 410c met Android- en Linux-bedryfstelsels: Die doel van hierdie tutoriaal is om die inligting te wys wat nodig is om toepassings te ontwikkel met behulp van die GPIO-pen op DragonBoard 410c lae spoeduitbreiding. Hierdie handleiding bied inligting oor die ontwikkeling van toepassings met behulp van die GPIO -penne met SYS op die Andr
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek