A környezeti feltételek, például a hőmérséklet és a páratartalom figyelemmel kísérése elengedhetetlen a különféle alkalmazásokhoz, az otthoni automatizálástól az üvegházhatású menedzsmentig. A sokoldalú Arduino platformon és olyan érzékelőkkel, mint a DHT11 vagy a DHT22, a megbízható hőmérséklet és páratartalom -monitor létrehozása megfizethető és egyszerű. Ebben az útmutatóban átmegyünk a szükséges összetevőkön, a beállítási folyamaton és a monitor életre keltéséhez szükséges kódoláson.
Az összetevőkre szükséged lesz
- Arduino Uno
- DHT11 vagy DHT22 érzékelő
- 10K ohm ellenállás
- Kenyérlemez és jumper vezetékek
- LCD kijelző (opcionális)
- USB -kábel
A DHT11/DHT22 érzékelők megértése
A DHT11 és a DHT22 népszerű érzékelők a hőmérséklet és a páratartalom mérésére. A DHT11 költséghatékony és alapvető alkalmazásokhoz alkalmas, 0-50 ° C hőmérsékleti tartományt kínálva, ± 2 ° C-os pontossággal és páratartalommal, 20-80% ± 5% -os pontossággal. A DHT22 viszont szélesebb hőmérsékleti tartományt biztosít -40–80 ° C, ± 0,5 ° C-os pontossággal és páratartalom 0-100% -kal, ± 2-5% -os pontossággal, így ideálisan igényesebb projektekhez.
Az érzékelő vezetéke Arduino -ba
Follow these steps to connect your DHT sensor to the Arduino:
- Teljesítménycsatlakozások: Connect the VCC pin of the DHT sensor to the 5V pin on the Arduino and the GND pin to the ground (GND).
- Adat PIN: Csatlakoztassa a DHT -érzékelő adatcsapját az Arduino digitális bemeneti csapjához (általában 2. érintkező).
- Pull-up ellenállás: Helyezzen egy 10K ohm ellenállást a VCC és az adatcsap között a stabil adatátvitel biztosítása érdekében.
- LCD kijelző (opcionális): Ha LCD -t használ, csatlakoztassa azt a megfelelő Arduino csapokhoz a leolvasások megjelenítéséhez.
Az Arduino programozása
A DHT érzékelő adatainak olvasásához a DHT.h
könyvtár, amely egyszerűsíti a folyamatot. Az alábbiakban egy minta kódrészlet található az induláshoz:
// Include the DHT library
#include <DHT.h>
// Define the sensor type and the pin it's connected to
#define DHTPIN 2
#define DHTTYPE DHT22 // Change to DHT11 if you're using that model
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start serial communication
Serial.begin(9600);
// Initialize the DHT sensor
dht.begin();
}
void loop() {
// Wait a few seconds between measurements
delay(2000);
// Read humidity and temperature
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if any reads failed
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the results to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}
A kód magyarázata:
- A
DHT.h
A könyvtárat tartalmazza az érzékelővel való kommunikáció megkönnyítése érdekében. - Az adatcsapot és az érzékelő típusát definiáljuk
#define
. - A
setup()
Funkció, inicializáljuk a soros kommunikációt és a DHT érzékelőt. - A
loop()
A funkció két másodpercenként leolvassa a páratartalmat és a hőmérsékletet, és kinyomtatja azokat a soros monitorra.
Az adatok megjelenítése
A felhasználóbarátabb beállításokhoz megjelenítheti az LCD leolvasásait. Módosítsa a kódot, hogy adatokat küldjön az LCD -nek a soros monitor helyett. Győződjön meg arról, hogy a megfelelő LCD könyvtár telepítve van -e, és ennek megfelelően konfigurálja a csapokat.
Mintakód az LCD megjelenítéséhez:
// Include necessary libraries
#include <DHT.h>
#include <LiquidCrystal.h>
// Define sensor and LCD pins
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Initialize the LCD (adjust pin numbers as needed)
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
void setup() {
// Start serial communication
Serial.begin(9600);
dht.begin();
// Initialize the LCD
lcd.begin(16, 2);
lcd.print("Temp & Humidity");
}
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.print("Sensor Error");
return;
}
// Display on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}
A beállítás tesztelése
Miután feltöltötte a kódot az Arduino -ba, nyissa meg a soros monitort (ha soros kimenetet használ), vagy figyelje meg az LCD kijelzőt. Látnia kell a valós idejű hőmérsékletet és a páratartalom leolvasását. Győződjön meg arról, hogy a csatlakozások biztonságosak, és az érzékelő helyesen működik. Ha problémákkal találkozik, ellenőrizze duplán a vezetékeket, és ellenőrizze, hogy a helyes érzékelő típus meghatározható-e a kódban.
Fejlesztések és a következő lépések
Most, hogy van alapvető hőmérsékleti és páratartalom -monitorod, vegye figyelembe a következő fejlesztéseket:
- Adatnaplózás: Csatlakoztassa az Arduino -t egy SD -kártya modulhoz, hogy idővel naplózza az adatokat.
- Vezeték nélküli megfigyelés: Használjon olyan modulokat, mint az ESP8266 vagy a Bluetooth, hogy adatokat küldjön okostelefonjára vagy felhőalapú szolgáltatásaira.
- Riasztások: Végezzen el küszöb alapú riasztásokat LED-ek vagy hangjelzők segítségével, hogy értesítse Önt a szélsőséges feltételekről.
- Több érzékelő: Bővítse be a beállítást, hogy további érzékelőket tartalmazzon olyan paraméterekhez, mint a levegőminőség vagy a fényintenzitás.
Következtetés
A hőmérsékleti és páratartalom -monitor felépítése a DHT11/DHT22 és az Arduino segítségével kiváló projekt a kezdőknek és a rajongóknak egyaránt. Gyakorlati tapasztalatokat nyújt az érzékelő integrációjával, az adatfeldolgozással és a megjelenítési technikákkal. Akár személyes használatra, akár bonyolultabb rendszerek alapjául, ez a projekt bemutatja az Arduino ökoszisztéma erejét és rugalmasságát. Boldog épület!