Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tym samouczku wypróbujemy czujnik DHT11 za pomocą Arduino.
DHT11 może być używany do pomiaru temperatury i wilgotności.
Wymagane składniki:
- Arduino Nano
- Czujnik temperatury i wilgotności DHT11
- Mini USB
- Kable rozruchowe
Wymagana biblioteka:
Biblioteka DHT
Krok 1: Podłącz DHT11 do Arduino
Podłącz DHT11 do Arduino za pomocą zworek.
Zobacz zdjęcie lub postępuj zgodnie z instrukcjami poniżej.
DHT11 na Arduino
+ => +5V
out => D12
- => GND
Następnie podłącz arduino do komputera za pomocą mini USB
Krok 2: Dodaj bibliotekę DHT
Bibliotekę DHT można pobrać tutaj:
Biblioteka DHT11.
Aby dodać bibliotekę, zobacz obrazek powyżej lub postępuj zgodnie z instrukcją poniżej:
Otwórz szkic ==> Dołącz bibliotekę ==> dodaj. Zip Library
Znajdź pobrany plik biblioteki.
Jeśli się powiedzie, zamknij Arduino i otwórz go ponownie.
Krok 3: Wybierz płytkę Arduino
Przejdź do Narzędzia i dopasuj płytkę arduino do powyższego obrazka.
Płytka "Arduino Nano"
Procesor "ATmega328P (stary bootloader)"
Aby uzyskać pełniejszy artykuł, możesz przeczytać „Jak korzystać z Arduino Nano v.3”, który zrobiłem wcześniej.
Krok 4: Program
Dołącz ten kod, aby odczytać wartość z czujnika DHT11
// Czujnik temperatury i wilgotności DHT// Przykład zunifikowanej biblioteki czujników // Napisany przez Tony'ego DiColę dla Adafruit Industries // Wydany na licencji MIT.
// WYMAGA następujących bibliotek Arduino:
// - Biblioteka czujników DHT: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#włączać
#włącz #włącz
#define DHTPIN 2 // Cyfrowy pin podłączony do czujnika DHT
// Feather HUZZAH ESP8266 Uwaga: użyj pinów 3, 4, 5, 12, 13 lub 14 -- // Pin 15 może działać, ale DHT musi być odłączony podczas ładowania programu.
// Odkomentuj typ używanego czujnika:
//#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Zobacz przewodnik, aby uzyskać szczegółowe informacje na temat okablowania i użytkowania czujnika:
//
DHT_Ujednolicony dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
pusta konfiguracja () {
Serial.początek(9600); // Zainicjuj urządzenie. dht.początek(); Serial.println(F("Przykład ujednoliconego czujnika DHTxx")); // Wydrukuj szczegóły czujnika temperatury. czujnik_t czujnik; dht.temperatura().getSensor(&czujnik); Serial.println(F("-------------------------------------")); Serial.println(F("Czujnik temperatury")); Serial.print (F("Typ czujnika: ")); Serial.println(nazwa.czujnika); Serial.print (F("Wersja sterownika: ")); Serial.println(wersja.czujnika); Serial.print (F("Unikalny identyfikator: ")); Serial.println(sensor.sensor_id); Serial.print (F("Wartość maksymalna: ")); Serial.print(sensor.max_value); Serial.println(F("°C")); Serial.print (F("Wartość minimalna: ")); Serial.print(czujnik.min_value); Serial.println(F("°C")); Serial.print (F("Rozdzielczość: ")); druk.seryjny(rozdzielczość.czujnika); Serial.println(F("°C")); Serial.println(F("-------------------------------------")); // Drukuj szczegóły czujnika wilgotności. dht.wilgotność().getSensor(&czujnik); Serial.println(F("Czujnik wilgotności")); Serial.print (F("Typ czujnika: ")); Serial.println(nazwa.czujnika); Serial.print (F("Wersja sterownika: ")); Serial.println(wersja.czujnika); Serial.print (F("Unikalny identyfikator: ")); Serial.println(sensor.sensor_id); Serial.print (F("Wartość maksymalna: ")); Serial.print(sensor.max_value); Serial.println(F("%")); Serial.print (F("Wartość minimalna: ")); Serial.print(czujnik.min_value); Serial.println(F("%")); Serial.print (F("Rozdzielczość: ")); druk.seryjny(rozdzielczość.czujnika); Serial.println(F("%")); Serial.println(F("-------------------------------------")); // Ustaw opóźnienie między odczytami czujnika na podstawie szczegółów czujnika. delayMS = czujnik.min_delay / 1000; }
pusta pętla () {
// Opóźnienie między pomiarami. opóźnienie (opóźnienieMS); // Pobierz zdarzenie temperatury i wydrukuj jego wartość. sensor_event_t zdarzenie; dht.temperatura().getEvent(&event); if (isnan(event.temperature)) { Serial.println(F("Błąd odczytu temperatury!")); } else { Serial.print(F("Temperatura: ")); druk.seryjny(temperatura.zdarzenia); Serial.println(F("°C")); } // Pobierz zdarzenie wilgotności i wydrukuj jego wartość. dht.wilgotność().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println(F("Błąd odczytu wilgotności!")); } else { Serial.print(F("Wilgotność: ")); Serial.print(event.relative_humidity); Serial.println(F("%")); } }
Lub pobierz plik poniżej szkicu, który udostępniłem poniżej.
Następnie kliknij prześlij i poczekaj, aż się zakończy.
Krok 5: Wynik
Aby zobaczyć wyniki pomiarów temperatury i wilgotności, kliknij Serial Monitor. Wyniki zostaną tam wyświetlone.
Jeśli się powiedzie, wyniki będą wyglądać jak na rysunku 1
jeśli czujnik nie jest zainstalowany, będzie wyglądał jak na obrazku 2
dziękuję za przeczytanie, jeśli są pytania po prostu napisz to w kolumnie komentarzy