ESP32 on edistynyt mikro-ohjainkortti, joka voi suorittaa useita komentoja lähtöjen luomiseksi. OLED-näyttöä käytetään erilaisten tietojen näyttämiseen. Käyttämällä ESP32:ta DHT11-anturin kanssa voimme ottaa lämpötila- ja kosteuslukemat. Kaikki nämä tiedot voidaan esittää OLED-näytöllä. Tämä opetusohjelma kattaa kaikki vaiheet, joita tarvitaan näiden antureiden liittämiseen ESP32:een.
Tämä opetusohjelma kattaa seuraavan sisällön:
3: OLED-näyttömoduuli ESP32:lla
4: Vaadittujen kirjastojen asentaminen
4.1: Arduino-kirjasto DHT-anturille
4.2: Arduino-kirjasto OLED-näytölle
5: ESP32:n liittäminen DHT11-anturin kanssa
1: DHT11-anturin esittely
DHT11 on yksi elektroniikkayhteisön yleisesti käytetyistä lämpötilan ja kosteuden valvontaantureista. Se on tarkempi lämpötilan ja suhteellisen kosteuden ilmoittamisessa. Se lähettää kalibroidun digitaalisen signaalin, joka sylkee kahteen lämpötila- ja kosteuslukemaan.
Se käyttää digitaalisen signaalin hankintatekniikkaa, joka antaa luotettavuuden ja vakauden. DHT11-anturi sisältää resistiivisen kosteutta mittaavan komponentin ja NTC-lämpötilan mittauskomponentin. Molemmat on integroitu 8-bittiseen erittäin tehokkaaseen mikro-ohjaimeen, joka tarjoaa nopean vasteen, häiriönestokyvyn ja kustannustehokkuuden.
Tässä on joitain DHT11:n tärkeimpiä teknisiä tietoja:
-
- DHT11-anturi toimii jännitteellä 5–5,5 V.
- Käyttövirta mittauksen aikana on 0,3mA ja valmiustilassa 60uA.
- Se lähettää sarjatiedot digitaalisena signaalina.
- DHT11-anturin lämpötila vaihtelee 0°C - 50°C.
- Kosteusalue: 20% - 90%.
- Tarkkuus ±1°C lämpötilan mittauksessa ja ±1 % suhteellisen kosteuden mittauksissa.
Koska olemme käsitelleet DHT11-anturin perusesittelyn, siirrytään nyt kohti DHT11:n pinoutia.
2: DHT11-anturin liitin
Suurimman osan ajasta DHT11-anturissa on kaksi erilaista nastakokoonpanoa. DHT11-anturissa, joka on saatavana 4-nastaisena, on 3 nastaa, jotka eivät toimi tai on merkitty liittämättömäksi.
3-nastaisessa DHT11-anturimoduulissa on kolme nastaa, jotka sisältävät virta-, GND- ja datanastan.
2.1: 3-nastainen DHT11-anturi
Tässä kuvassa näkyy DHT11-anturin 3-nastainen kokoonpano.
Nämä kolme nastaa ovat:
1. | Data | Lähtölämpötila ja kosteus sarjatiedoissa |
2. | Vcc | Syöttöteho 3,5 - 5,5 V |
3. | GND | Piirin GND |
2.2: 4-nastainen DHT11-anturi
Seuraava kuva havainnollistaa 4-nastaista DHT11-anturimoduulia:
Nämä 4 nastaa sisältävät:
1. | Vcc | Syöttöteho 3,5 - 5,5 V |
2. | Data | Lähtölämpötila ja kosteus sarjatiedoissa |
3. | NC | Ei yhteyttä tai sitä ei käytetä |
Neljä. | GND | Piirin GND |
3: OLED-näyttömoduuli ESP32:lla
OLED-näytössä on pääasiassa kaksi erilaista viestintäprotokollaa. Kaksi protokollaa ovat I2C ja SPI. Serial peripheral interface (SPI) on yleensä nopeampi kuin I2C, mutta suosimme I2C:tä SPI-protokollan sijaan, koska se vaati pienemmän määrän nastoja.
Seuraava kuva havainnollistaa ESP32-liitäntäkaaviota 128×64 pikselin (0,96 tuuman) OLED-näytöllä.
Alla on kytkentätaulukko:
Kun ESP32 on liitetty OLED-näytön kanssa, luettelon seuraava vaihe on asentaa kaikki tarvittavat kirjastot ESP32-ohjelmointia varten Arduino IDE:n avulla.
4: Vaadittujen kirjastojen asentaminen
Tässä aiomme liittää kaksi erilaista anturia ESP32:een, joten molemmat vaativat erilliset kirjastot toimiakseen. Nyt asennamme kirjastot DHT11- ja OLED-näytöille.
4.1: Arduino-kirjasto DHT-anturille
Avaa Arduino IDE, mene osoitteeseen: Luonnos>Sisällytä kirjasto>Hallinnoi kirjastoja
Vaihtoehtoisesti voimme myös avata kirjastonhallinnan Arduino IDE -rajapinnan sivupainikkeesta.
Etsi DHT-kirjasto ja asenna uusin päivitetty versio. DHT-kirjasto auttaa lukemaan anturitietoja.
Kun olet asentanut DHT-kirjaston seuraavaksi, meidän on asennettava a yhtenäinen anturikirjasto kirjoittanut Adafruit.
4.2: Arduino-kirjasto OLED-näytölle
Arduino IDE:ssä on saatavilla useita kirjastoja ESP32:n ohjelmoimiseksi OLED-näytöllä. Tässä käytämme kahta Adafruitin kirjastoa: SSD1306 ja GFX-kirjasto.
Avaa IDE ja napsauta Library Manager ja etsi OLED SSD1306 -kirjasto. Asenna Adafruitin SSD1306-kirjasto hakupalkista.
Vaihtoehtoisesti voit myös mennä osoitteeseen: Luonnos>Sisällytä kirjasto>Hallinnoi kirjastoja
Seuraava kirjasto, joka meidän on asennettava, on GFX Adafruitin kirjasto.
Olemme asentaneet kirjastot sekä OLED-näytölle että DHT11-anturille. Nyt voimme helposti liittää molemmat ESP32:een.
5: Liitännät ESP32:lle DHT11-anturin ja OLEDin kanssa
ESP32:n liittämiseen DHT11-anturin kanssa tarvitsemme digitaalisen nastan anturitietojen lukemiseen ja DHT11-anturin virransyöttöön voimme käyttää joko ESP32:n 3V3-nastaa tai Vin-nastaa.
OLED-näytössä käytetään SDA- ja SCL-nastaa I2C. Virransyöttöä varten voimme käyttää Vin tai ESP32 3V3-nastaa.
5.1: Kaavamainen
Annetussa kuvassa näemme ESP32:n kaavion DHT11:n kanssa ja ulostulona käytetään OLED-näyttöä. Tämä kuva esittää 3-nastaista anturimoduulia, joka on yhteydessä ESP32:een. Muista kytkeä 10kΩ vetovastus.
Samoin 4-pinninen DHT11 voidaan kytkeä, ainoa ero tässä on 3-pinninen, josta ei ole hyötyä tai jota kutsutaan nimellä Ei yhteyttä. Datanasta on anturin nastassa 2.
OLED-näyttö liitetään I2C SDA- ja SCL-nastoilla D21:ssä ja D22:ssa.
5.2: Koodi
Yhdistä ESP32 PC:hen ja avaa Arduino IDE. Lataa annettu koodi ESP32-kortille.
#include#include
#include
#include
#include
#define SCREEN_WIDTH 128 /*OLED-näytön leveys 128 pikseliä*/
#define SCREEN_HEIGHT 64 /*OLED-näytön korkeus 64 pikseliä*/
Adafruit_SSD1306 näyttö ( SCREEN_WIDTH, SCREEN_HEIGHT, & lanka, - 1 ) ; /* SSD1306 I2C Näytön alustus */
#define DHTPIN 4 /*DHT11-anturin signaalinasta*/
#define DHTTYPE DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
tyhjä asetus ( ) {
Serial.begin ( 115 200 ) ;
dht.begin ( ) ;
jos ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C-osoite osoitteessa joka OLED on kytketty */
Serial.println ( F ( 'SSD1306-allokointi epäonnistui' ) ) ;
varten ( ;; ) ;
}
viive ( 2000 ) ;
display.clearNäyttö ( ) ;
display.setTextColor ( VALKOINEN ) ; /* Tulostuksen tekstin väri valkoinen */
}
tyhjä silmukka ( ) {
viive ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* lukea lämpötila */
float h = dht.read Humidity ( ) ; /* lukea kosteus */
jos ( on ( h ) || on ( t ) ) {
Serial.println ( 'DHT-anturin lukeminen epäonnistui!' ) ;
}
display.clearNäyttö ( ) ; /* asia selvä OLED-näyttö ennen lukeman näyttämistä */
display.setTextSize ( 1 ) ; /* OLED-tekstin fontti koko */
display.setCursor ( 0 , 0 ) ;
display.print ( 'Lämpötila:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
display.print ( t ) ; /* tulostuslämpötila sisään Celsius */
display.print ( ' ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( totta ) ;
display.write ( 167 ) ;
display.setTextSize ( 2 ) ;
display.print ( 'C' ) ;
display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
display.print ( 'Kosteus:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Neljä viisi ) ;
display.print ( h ) ; /* tulostaa kosteusprosentin */
display.print ( '%' ) ;
näyttö.näyttö ( ) ;
}
Koodi aloitettiin sisällyttämällä tarvittavat kirjastot OLED- ja DHT11-antureille. Tämän jälkeen määritellään OLED-näytön mitat. Seuraavaksi määritellään DHT-anturin tyyppi siltä varalta, että jos käytät DHT22:ta, vaihda se vastaavasti.
Asetusosassa DHT-anturi ja OLED-näyttö alustetaan. OLED-näyttö on kytketty I2C-osoitteeseen 0x3C. Jos haluat tarkistaa I2C-osoitteen, lataa tässä annettu koodi artikla .
Lämpötila- ja kosteusarvot tallennetaan uimurimuuttujan sisään t ja h vastaavasti. Sen jälkeen molemmat arvot tulostetaan OLED-näytölle.
5.3: Lähtö
Ulostulossa näemme reaaliaikaisesti mitatun lämpötilan ja kosteuden OLED-näytöllä.
Olemme saaneet onnistuneesti päätökseen ESP32:n liittämisen DHT11-anturin ja OLED-näytön kanssa.
Johtopäätös
ESP32:lla varustetut OLED-näytöt voivat näyttää useita tietoja, jotka luetaan ulkoisten antureiden avulla. Tässä artikkelissa käsitellään kaikki vaiheet ESP32:n liittämiseksi DHT11-anturin kanssa huoneen lämpötilan ja kosteuden mittaamiseksi. Sen jälkeen kaikki luetut tiedot näytetään I2C OLED -näyttömoduulissa.