DHTTOP 10 Czujnik temperatury i wilgotności z OLED za pomocą Arduino nano

DHTTOP 10 Czujnik temperatury i wilgotności z OLED za pomocą Arduino nano
Arduino nano to mała, potężna płyta mikrokontrolera, która jest zdolna do interakcji z szeroką gamą czujników i urządzeń. Czujnik DHT11 jest powszechnie używanym czujnikiem do pomiaru temperatury i wilgotności, i można go łatwo podłączyć z płytą Arduino Nano za pomocą przewodów skorupy i tablicy chleba.

W tym projekcie będziemy używać czujnika Arduino Nano i DHT11 do stworzenia systemu monitorowania temperatury i wilgotności. Arduino nano odczytuje wartości temperatury i wilgotności z DHT11 i pokaże na OLED.

Ten samouczek obejmuje następujące treści:

1: Wprowadzenie do czujnika DHT11

2: Pinout czujnika DHT11

2.1: 3 PIN CENTOR DHT11

2.2: 4 PIN DHT11 czujnik

3: Moduł wyświetlacza OLED z Arduino nano

4: Instalowanie wymaganych bibliotek

4.1: Biblioteka Arduino dla czujnika DHT

4.2: Biblioteka Arduino dla wyświetlacza OLED

5: Sprawdź adres OLED I2C w Arduino nano

6: Interfejs Arduino nano z czujnikiem DHT11 i OLED

6.1: Schemat

6.2: Kod

6.3: Wyjście

1: Wprowadzenie do czujnika DHT11

Czujnik DHT11 to kompaktowe i tanie urządzenie do pomiaru temperatury i wilgotności. Arduino Nano z DHT11 jest używane do projektowania przenośnych stacji pogodowych, systemów HVAC i systemów automatyki domowej.

Czujnik DHT11 składa się z elementu wykrywania wilgotności i elementu wykrywania temperatury, które są łączone na jednym obwodzie zintegrowanym. Czujnik jest w stanie pomiar zarówno wilgotności względnej, jak i temperatury, i może przesyłać te dane za pomocą sygnału cyfrowego do mikrokontrolera lub innego urządzenia.

Czujnik DHT11 można zintegrować i kontrolować za pomocą kodu Arduino. Można go podłączyć do komputera mikrokontrolera lub jednorazowego użytku za pomocą przewodów skoczkowych i płyty chlebowej, i można go łatwo zintegrować z różnorodnymi projektami.

Pewna główna specyfikacja DHT11:

  • Napięcie robocze zaczyna się od 3.5v do 5.5v
  • Prąd czujnika podczas pomiaru wartości wynosi 0.3ma i prąd gotowości to 60UA
  • Wartości wyjściowe jako sygnał cyfrowy
  • Temperatura zaczyna się od 0 ° C do 50 ° C
  • Wilgotność mierzona od 20% do 90%
  • Temperatura i wilgotność są 16-bitowe
  • Dokładność ± 1 ° C dla pomiaru temperatury i ± 1% dla odczytów wilgotności względnej

Teraz omówiliśmy podstawy czujnika DHT11. Teraz omówimy pinout DHT11.

2: Pinout czujnika DHT11

DHT11 ma dwa warianty, jeden z 4 szpilkami i drugi z 3 pinami. Tylko różnica polega na tym, że 4 -pinowy czujnik DHT11 ma dodatkowy szpilka bez połączenia. Ten szpilka jest oznaczona jako NC i nie używane do żadnego celu.

3 szpilki DHT11 to:

  • Pin napięcia zasilania
  • Pin GND
  • Cyfrowy styk sygnału danych

2.1: 3 PIN CENTOR DHT11

Następujący pinout ma 3 piny DHT11:

1 Dane Odczyty temperatury wyjściowej i wartości wilgotności
2 VCC Napięcie wejściowe między 3.5v do 5.5v
3 GND GND

2.2: 4 PIN DHT11 czujnik

Poniżej znajduje się 4 -pinowy pinout czujnika DHT11:

Te 4 piny czujnika DHT11 obejmuje:

1 VCC Wejście 3.5v do 5.5v
2 Dane Temperatura wyjściowa i odczyty wilgotności
3 NC Brak szpilki połączenia
4 GND GND

3: Moduł wyświetlacza OLED z Arduino nano

Wyświetlacz OLED ma głównie dwa różne protokoły komunikacji. Te dwa są I2C i SPI. Protokół SPI jest szybszy w porównaniu z I2C, ale I2C jest preferowany i ma przewagę nad SPI z powodu mniej wymaganych pinów.

Następujący obraz ilustruje schemat połączenia Arduino nano z 128 × 64 pikseli (0.96 ") wyświetlacz OLED.

Poniżej tabela Pokaż konfigurację pinout OLED z nano:

Gdy połączyliśmy Arduino nano z wyświetlaczem OLED. Aby wyświetlić dane na ekranie OLED, musimy najpierw zainstalować niektóre niezbędne biblioteki.

4: Instalowanie wymaganych bibliotek

Włączamy dwa czujniki; Jeden to wyświetlacz OLED, a drugi to czujnik DHT11. Oba czujniki wymagały oddzielnych bibliotek do funkcjonowania. Teraz zainstalujemy osobne biblioteki dla ekranów DHT11 i OLED.

4.1: Biblioteka Arduino dla czujnika DHT

Otwórz IDE, przejdź do: Szkic> Dołącz bibliotekę> Zarządzaj bibliotekami:

Można również użyć menedżera biblioteki Arduino do instalowania bibliotek. Przeszukaj bibliotekę czujników DHT11 i zainstaluj zaktualizowaną wersję. Ta biblioteka odczytuje dane z czujnika DHT11.

Teraz zainstalujemy Ujednolicona biblioteka czujników.

Instalowane są biblioteki czujników DHT11. Następnie należy zainstalować biblioteki OLED.

4.2: Biblioteka Arduino dla wyświetlacza OLED

W IDE dostępnych jest wiele bibliotek do wyświetlacza OLED. Będziemy używać biblioteki Adafruit GFX i SSD1306 do wyświetlacza OLED.

Otwórz IDE i przeszukaj bibliotekę SSD1306 w menedżerze biblioteki:

Po zainstalowaniu biblioteki SSD1306 zainstaluj GFX Biblioteka przez Adafruit:

Zainstalowaliśmy biblioteki dla obu czujników, a teraz możemy przesłać kod w Arduino Nano. Ale wcześniej konieczne jest sprawdzenie adresu OLED I2C.

5: Sprawdź adres OLED I2C w Arduino nano

I2C umożliwia podłączenie wielu urządzeń i komunikowanie się ze sobą nad interfejsem dwuprzewodowym. Każde urządzenie I2C musi mieć unikalny adres, od 0 do 127, aby upewnić się, że można go zidentyfikować i komunikować na linii I2C. Wiele urządzeń z tym samym adresem nie można podłączyć w tej samej magistrali I2C.

Podłącz wyświetlacz OLED z Arduino Nano i po wybraniu płyty i portu w Arduino IDE Prześlij kod podany w urządzeniach skanowania artykułów w Arduino. Po przesłaniu kodu otrzymamy adres I2C wyświetlacza OLED, który w naszym przypadku jest 0x3c:

Zdefiniujemy ten adres I2C w kodzie Arduino.

6: Interfejs Arduino nano z czujnikiem DHT11 i OLED

Do interfejsu Arduino Nano z DHT11 do odczytu danych zostanie użyty cyfrowy pin nano. Aby zasilić DHT11 5v Nano Pin zostanie połączony.

Do Pinów ELED Ekran I2C SDA I Scl Na A4 I A5 Zastosowane będą szpilki Arduino nano. Do zasilania OLED 5V Pin z Arduino nano będzie używany.

6.1: Schemat

Poniżej znajduje się schematyczny schemat Arduino nano z czujnikiem DHT11 i wyświetlanie wartości odczytu używane jest ekran OLED. Ten schematyczny obraz ma 3 -pinowy czujnik DHT11. Rezystor podciągający 10kΩ jest zintegrowany na wyjściu DHT11.

Podobnie 4 -pinowy czujnik DHT11 jest połączony z płytą Nano. Wyświetlacz OLED jest podłączony do pinów A4 i A5 GPIO Nano za pomocą komunikacji I2C. DHT11 Pin 2 to wyjście danych. 4 -pinowy DHT11 ma dodatkowe 1 pin, który nie ma sensu.

6.2: Kod

Podłącz Arduino Nano i prześlij dany kod:

#Include /*Wire Communication Library* /
#włączać
#Include /*OLED ADAFRUT Library* /
#włączać
#Include /*DHT BIBLIOTEKCJA SYTERUSU* /
#Define Screen_Width 128 /*128 szerokość OLED w pikselach* /
#Define Screen_Height 64 /*64 Wysokość OLED w piksel* /
ADAFRUT_SSD1306 Wyświetlacz (Screen_Width, Screen_Height i Wire, -1); /*I2C inicjalizacja wyświetlania*/
#definicja DHTPIN 4 /*DHT11 Sygnał Pin* /
#Define Dhttype DHT11
//#Zdefiniuj DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#Zdefiniuj DHTTYPE DHT21 // DHT 21 (AM2301)
DHT DHT (DHTPIN, DHTTYPE);
void setup ()
Seryjny.rozpocząć (9600);
DHT.zaczynać();
Jeśli(!wyświetlacz.Rozpocznij (SSD1306_SWITCHCAPVCC, 0x3C)) /*OLED I2C Adres* /
Seryjny.println (f („alokacja ssd1306 nie powiodła się”));
Do(;;);

Opóźnienie (2000);
wyświetlacz.clearDisplay ();
wyświetlacz.setTextColor (biały); /*Kolor tekstu*/

void Loop ()
opóźnienie (5000);
float t = dht.readTemperature (); /*Przeczytaj temp*/
float h = dht.ReadHumididge (); /*czytaj wilgotność*/
if (isnan (h) || isnan (t))
Seryjny.println („nie odczytał się z czujnika DHT!");

wyświetlacz.clearDisplay (); /*Wyczyść wyświetlacz*/
wyświetlacz.setTextSize (1); /*Rozmiar czcionki OLED*/
wyświetlacz.setCursor (0,0);
wyświetlacz.Drukuj („Temperatura:”);
wyświetlacz.setTextSize (2);
wyświetlacz.setCursor (0,10);
wyświetlacz.druk (t); /*Drukuj temp w Celsjusza*/
wyświetlacz.druk („”);
wyświetlacz.setTextSize (1);
wyświetlacz.CP437 (prawda);
wyświetlacz.Napisz (167);
wyświetlacz.setTextSize (2);
wyświetlacz.druk („c”);
wyświetlacz.setTextSize (1);
wyświetlacz.setCursor (0, 35);
wyświetlacz.Drukuj („wilgotność:”);
wyświetlacz.setTextSize (2);
wyświetlacz.setCursor (0, 45);
wyświetlacz.wydruku (h); /*drukuje procent wilgotności*/
wyświetlacz.druk („ %”);
wyświetlacz.wyświetlacz();

Na początku kodu dołączyliśmy biblioteki czujników OLED i DHT. Następny rozmiar ekranu OLED jest zdefiniowany w pikselach. Po tym typu czujnika DHT jest inicjowany. Jeśli używasz innego rodzaju DHT11, odpowiednio odrzuć nazwę czujnika w kodzie.

Następnie w kodzie zainicjowaliśmy czujnik DHT i OLED. OLED jest podłączony pod adresem 0x3c i2c. Adres I2C można sprawdzić za pomocą kodu w tym artykule.

Dwie zmienne pływakowe T I H będzie przechowywać odpowiednio wartości temperatury i wilgotności. Lasty w kodzie wszystkie wartości są wyświetlane na ekranie OLED za pomocą funkcji biblioteki OLED GFX.

6.3: Wyjście

Wyjście pokazuje wartości temperatury i wilgotności w czasie rzeczywistym wyświetlane na ekranie OLED:

Zakończyliśmy interfejs czujnika OLED i DHT11 z Arduino Nano Board.

Wniosek

Arduino nano można zintegrować z wieloma czujnikami. Ten artykuł obejmuje interfejs czujnika OLED i DHT11 z Arduino Nano. Za pomocą DHT11 mierzyliśmy temperaturę i wilgotność, które są wyświetlane na OLED. Za pomocą danego kodu dowolnego nano Arduino można zaprogramować do wyświetlania odczytów czujników na ekranie OLED.