DHTTOP 10 Temperatur og fuktighetssensor med OLED ved bruk av Arduino Nano

DHTTOP 10 Temperatur og fuktighetssensor med OLED ved bruk av Arduino Nano
Arduino Nano er et lite, kraftig mikrokontrollertavle som er i stand til å samhandle med et bredt spekter av sensorer og enheter. DHT11 -sensoren er en ofte brukt sensor for måling av temperatur og luftfuktighet, og den kan enkelt kobles til et Arduino Nano -brett ved hjelp av jumperledninger og et brødplate.

I dette prosjektet vil vi bruke Arduino Nano og DHT11 -sensoren for å lage et temperatur- og fuktighetsovervåkingssystem. Arduino nano vil lese temperatur- og fuktighetsverdier fra DHT11 og vise på OLED.

Denne opplæringen dekker etter innhold:

1: Introduksjon til DHT11 -sensor

2: DHT11 Sensor Pinout

2.1: 3 -pin DHT11 -sensor

2.2: 4 Pin DHT11 -sensor

3: OLED -skjermmodul med Arduino Nano

4: Installere de nødvendige bibliotekene

4.1: Arduino -bibliotek for DHT -sensor

4.2: Arduino -bibliotek for OLED -skjerm

5: Sjekk OLED Display I2C -adresse i Arduino Nano

6: Grensesnitt Arduino Nano med DHT11 -sensor og OLED

6.1: Skjematisk

6.2: Kode

6.3: Output

1: Introduksjon til DHT11 -sensor

DHT11-sensoren er en kompakt og rimelig enhet for måling av temperatur og fuktighet. Arduino Nano med DHT11 brukes til å designe bærbare værstasjoner, HVAC -systemer og hjemmeautomatiseringssystemer.

DHT11 -sensoren består av et luftfuktighetssenseringselement og et temperatursenseringselement, som er kombinert på en enkelt integrert krets. Sensoren er i stand til å måle både relativ fuktighet og temperatur, og den kan overføre disse dataene via et digitalt signal til en mikrokontroller eller annen enhet.

DHT11 -sensoren kan integreres og kontrolleres ved hjelp av Arduino -koden. Den kan kobles til en mikrokontroller eller datamaskin med en bord ved hjelp av jumperledninger og en brødplate, og den kan enkelt integreres i en rekke prosjekter.

Noe hovedspesifikasjon av DHT11:

  • Driftsspenning starter fra 3.5v til 5.5v
  • Sensorstrøm mens måling av verdier er 0.3MA og standby -strøm er 60UA
  • Utgangsverdier som digitalt signal
  • Temperaturen starter fra 0 ° C til 50 ° C
  • Fuktighet målt fra 20% til 90%
  • Temperatur og luftfuktighet er begge 16-biters
  • Nøyaktighet på ± 1 ° C for temperaturmåling og ± 1% for relativ fuktighetsavlesning

Nå dekket vi det grunnleggende i DHT11 -sensoren. Nå vil vi diskutere DHT11 -pinout.

2: DHT11 Sensor Pinout

DHT11 har to varianter, en med 4 pinner og andre med 3 pinner. Eneste forskjell her er at 4 -pinners DHT11 -sensoren har en ekstra pin uten tilkobling. Denne pinnen er merket som NC og ikke brukt til noe formål.

De 3 pinnene til DHT11 er:

  • Strømspenningstift
  • GND -pinne
  • Digital datasignalpinne

2.1: 3 -pin DHT11 -sensor

Følgende pinout er av 3 pinner DHT11:

1 Data Utgangstemperaturavlesninger og fuktighetsverdier
2 VCC Inngangsspenning mellom 3.5v til 5.5v
3 GND GND

2.2: 4 Pin DHT11 -sensor

Nedenfor er 4 -pinners DHT11 sensorpinout:

Disse 4 pinnene med DHT11 -sensoren inkluderer:

1 VCC Inngang 3.5v til 5.5v
2 Data Utgangstemperatur og luftfuktighetsavlesninger
3 NC Ingen tilkoblingspinne
4 GND GND

3: OLED -skjermmodul med Arduino Nano

OLED -skjermen kommer hovedsakelig med to forskjellige kommunikasjonsprotokoller. Disse to er I2C og SPI. SPI -protokollen er raskere sammenlignet med I2C, men I2C er foretrukket og har fordelen fremfor SPI på grunn av mindre pinner som kreves.

Følgende bilde illustrerer et Arduino nano -tilkoblingsdiagram med 128 × 64 piksler (0.96 ") OLED -skjerm.

Under tabell viser pinout -konfigurasjon av OLED med nano:

Som vi har grensesnittet Arduino Nano med en OLED -skjerm. For å vise data på en OLED -skjerm må vi først installere noen nødvendige biblioteker.

4: Installere de nødvendige bibliotekene

Vi grenser til to sensorer; Den ene er en OLED -skjerm, og den andre er en DHT11 -sensor. Begge sensorene krevde separate biblioteker for å fungere. Nå installerer vi separate biblioteker for DHT11 og OLED -skjermer.

4.1: Arduino -bibliotek for DHT -sensor

Åpen ide, gå til: Skisse> Inkluder bibliotek> Administrer biblioteker:

Man kan også bruke Arduino Library Manager for å installere biblioteker. Søk i DHT11 sensorbibliotek og installer den oppdaterte versjonen. Dette biblioteket vil lese data fra DHT11 -sensoren.

Nå installerer vi Unified Sensor Library.

DHT11 sensorbiblioteker er installert. Deretter må OLED -bibliotekene installeres.

4.2: Arduino -bibliotek for OLED -skjerm

Det er en rekke biblioteker tilgjengelig for OLED -skjerm i IDE. Vi vil bruke Adafruit GFX og SSD1306 -biblioteket for OLED -skjerm.

Åpne IDE og søk på SSD1306 -biblioteket i biblioteksjefen:

Etter å ha installert SSD1306 -biblioteket, installerer du GFX Bibliotek av Adafruit:

Vi har installert biblioteker for begge sensorer, og nå kan vi laste opp kode i Arduino Nano. Men før det er det nødvendig å sjekke OLED I2C -adressen.

5: Sjekk OLED Display I2C -adresse i Arduino Nano

I2C gjør at flere enheter kan kobles sammen og kommunisere med hverandre over et to-trådsgrensesnitt. Hver I2C -enhet må ha en unik adresse, fra 0 til 127, for å sikre at den kan identifiseres og kommuniseres med I2C -linjen. Flere enheter med samme adresse kan ikke kobles til på samme I2C -buss.

Koble OLED -skjermen med Arduino Nano og etter valg av brett og port i Arduino IDE, laste opp koden gitt i artikkel Scan I2C -enheter i Arduino. Etter å ha lastet opp kode, vil vi få I2C -adressen til OLED -skjermen som i vårt tilfelle er 0x3c:

Vi vil definere denne I2C -adressen i Arduino -koden.

6: Grensesnitt Arduino Nano med DHT11 -sensor og OLED

For grensesnitt Arduino nano med DHT11 vil en digital tapp av Nano -brett bli brukt til datavesting. Å drive DHT11 5v Nano Board Pin vil være grensesnitt.

For OLED -skjerm I2C -pinner SDA og SCLA4 og A5 Pins av Arduino Nano vil bli brukt. For å drive en OLED 5V -pinne av Arduino nano vil bli brukt.

6.1: Skjematisk

Nedenfor er det skjematiske diagrammet til Arduino nano med DHT11 -sensor og for å vise leseverdier en OLED -skjerm brukes. Dette skjematiske bildet er av 3 -pinners DHT11 -sensor. 10KΩ Pull Up Resistor er integrert ved DHT11 -utgangen.

Tilsvarende er en 4 -pinners DHT11 -sensor koblet til et Nano -brett. OLED -skjermen er koblet til A4 og A5 GPIO -pinner av Nano ved hjelp av I2C -kommunikasjonen. DHT11 PIN 2 er datautgang. 4 -pinners DHT11 har en pin ekstra som ikke er til nytte.

6.2: Kode

Koble Arduino Nano og last opp den gitte koden:

#include /*Wire Communication Library* /
#inkludere
#include /*OLED Adafruit Library* /
#inkludere
#include /*dht sensorbibliotek* /
#Define Screen_Width 128 /*128 Bredde OLED i piksler* /
#defineskjerm_Height 64 /*64 Høyde OLED i Pixel* /
Adafruit_ssd1306 display (screen_width, screen_height, & wire, -1); /*I2c display initialisering*/
#Define DHTPIN 4 /*DHT11 Signal Pin* /
#Define DHTType DHT11
//#Definer DHTType DHT22 // DHT 22 (AM2302), AM2321
//#Definer DHTType DHT21 // DHT 21 (AM2301)
Dht dht (dhtpin, dhttype);
void setup ()
Serie.Begynn (9600);
dht.begynne();
hvis(!vise.Begynn (SSD1306_switchcapvcc, 0x3c))) /*OLED I2C adresse* /
Serie.Println (F ("SSD1306 tildeling mislyktes"));
til(;;);

forsinkelse (2000);
vise.clearDisplay ();
vise.setTextColor (hvit); /*Tekstfarge*/

void loop ()
forsinkelse (5000);
FLOAT T = DHT.readTemperature (); /*Les temp*/
FLOAT H = DHT.readhumidity (); /*Les luftfuktighet*/
if (isnan (h) || isnan (t))
Serie.Println ("Kunne ikke lese fra DHT -sensor!");

vise.clearDisplay (); /*klar skjerm*/
vise.SettExtSize (1); /*OLED fontstørrelse*/
vise.setcursor (0,0);
vise.print ("temperatur:");
vise.SettExtSize (2);
vise.setcursor (0,10);
vise.trykk (t); /*Skriv ut temp i Celsius*/
vise.skrive ut(" ");
vise.SettExtSize (1);
vise.CP437 (True);
vise.skriv (167);
vise.SettExtSize (2);
vise.print ("c");
vise.SettExtSize (1);
vise.setcursor (0, 35);
vise.trykk ("Fuktighet:");
vise.SettExtSize (2);
vise.setcursor (0, 45);
vise.trykk (h); /*Skriver ut fuktighetsprosent*/
vise.skrive ut(" %");
vise.vise();

Ved starten av koden inkluderte vi OLED- og DHT -sensorbibliotekene. Neste OLED -skjermstørrelse er definert i piksler. Etter den er DHT -sensortypen initialisert. Hvis du bruker noen annen type DHT11, må du være sensornavnet deretter inne i koden.

Neste i kode initialiserte vi DHT og OLED -sensor. OLED er koblet til 0x3c I2C -adresse. I2C -adresse kan sjekkes ved hjelp av koden i denne artikkelen.

De to flytevariablene t og h vil lagre henholdsvis temperatur- og fuktighetsverdiene. Lasty in Code alle verdiene vises på en OLED -skjerm ved hjelp av OLED GFX -bibliotekfunksjonene.

6.3: Output

Utgangen viser sanntidstemperatur og fuktighetsverdier som vises på OLED -skjermen:

Vi har fullført grensesnitt til OLED- og DHT11 -sensoren med Arduino Nano -brettet.

Konklusjon

Arduino Nano kan integreres med flere sensorer. Denne artikkelen dekker OLED- og DHT11 -sensorgrensesnitt med Arduino Nano. Ved hjelp av DHT11 målte vi temperatur og fuktighet som vises på OLED. Ved å bruke den gitte koden kan noen av Arduino Nano programmeres for å vise sensoravlesninger på en OLED -skjerm.