Ympäristöolosuhteiden, kuten lämpötilan ja kosteuden, seuranta on välttämätöntä erilaisille sovelluksille, kodin automaatiosta kasvihuonekaasujen hallintaan. Monipuolisella Arduino -alustalla ja antureilla, kuten DHT11 tai DHT22, luotettavan lämpötilan ja kosteudenäytön luominen on sekä edullinen että suoraviivainen. Tässä oppaassa opimme sinut tarvittavien komponenttien, asennusprosessin ja koodauksen, joka vaaditaan näytön herättämiseksi elämään.
Komponentit, joita tarvitset
- Arduino uno
- DHT11- tai DHT22 -anturi
- 10k ohmin vastus
- Leipälevy- ja hyppyjohdot
- LCD -näyttö (valinnainen)
- USB -kaapeli
DHT11/DHT22 -anturien ymmärtäminen
DHT11 ja DHT22 ovat suosittuja antureita lämpötilan ja kosteuden mittaamiseksi. DHT11 on kustannustehokas ja sopiva perussovelluksiin, ja se tarjoaa lämpötila-alueen 0-50 ° C ± 2 ° C: n tarkkuus- ja kosteusalueella 20-80% ± 5%: n tarkkuudella. Toisaalta DHT22 tarjoaa laajemman lämpötila-alueen -40-80 ° C ± 0,5 ° C: n tarkkuus- ja kosteusalueella 0-100% ± 2-5%: n tarkkuudella, mikä tekee siitä ihanteellisen vaativille projekteille.
Anturin johdotus Arduinoon
Follow these steps to connect your DHT sensor to the Arduino:
- Virtayhteydet: Connect the VCC pin of the DHT sensor to the 5V pin on the Arduino and the GND pin to the ground (GND).
- Data Pin: Connect the data pin of the DHT sensor to a digital input pin on the Arduino (commonly pin 2).
- Pull-Up Resistor: Place a 10k Ohm resistor between the VCC and data pin to ensure stable data transmission.
- LCD -näyttö (valinnainen): Jos käytät LCD: tä, kytke se asianmukaisiin Arduino -nastaihin lukemien näyttämiseksi.
Arduino -ohjelmointi
Lukemme DHT -anturin tietoja, käytämme DHT.h
Kirjasto, joka yksinkertaistaa prosessia. Alla on näytekoodin katkelma, joka pääsee alkuun:
// 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");
}
Selitys koodista:
- Se
DHT.h
Kirjasto on mukana helpottamassa viestintää anturin kanssa. - Määrittelemme datan PIN- ja anturityypin käyttämällä
#define
. - Siinä
setup()
Toiminto, alustamme sarjaviestinnän ja DHT -anturin. - Se
loop()
Function lukee kosteuden ja lämpötilan kahden sekunnin välein ja tulostaa ne sarjamonitorille.
Tietojen näyttäminen
Käyttäjäystävällisemmän asennuksen avulla voit näyttää LCD: n lukemat. Muokkaa koodia lähettääksesi tietoja LCD: lle sarjamittarin sijasta. Varmista, että sinulla on asianmukainen LCD -kirjasto asennettuna ja määritä nastat vastaavasti.
Näytekoodi LCD -näytölle:
// 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(" %");
}
Asetusten testaaminen
Kun olet lähettänyt koodin Arduinoon, avaa sarjamonitori (jos käytät sarjan lähtöä) tai tarkkaile LCD -näyttöä. Sinun pitäisi nähdä reaaliaikaiset lämpötilan ja kosteuden lukemat. Varmista, että yhteydet ovat turvallisia ja anturi toimii oikein. Jos kohtaat ongelmia, tarkista johdotus ja tarkista, että oikea anturityyppi on määritelty koodissasi.
Parannukset ja seuraavat vaiheet
Nyt kun sinulla on peruslämpötila- ja kosteusmonitori, harkitse seuraavia parannuksia:
- Tietojen kirjaaminen: Kytke Arduino SD -korttimoduuliin tietojen kirjaamiseksi ajan myötä analysoitavaksi.
- Langaton valvonta: Käytä moduuleja, kuten ESP8266 tai Bluetooth, lähettääksesi tietoja älypuhelimiin tai pilvipalveluihin.
- Hälytykset: Toteuta kynnyspohjaiset hälytykset käyttämällä LED-laitteita tai summereita ilmoittamaan sinulle äärimmäisistä olosuhteista.
- Useita antureita: Laajenna asennustasi sisällyttämään lisäanturit parametreille, kuten ilmanlaatu tai valon voimakkuus.
Johtopäätös
Lämpötila- ja kosteusmonitorin rakentaminen DHT11/DHT22: lla ja Arduino on erinomainen projekti aloittelijoille ja harrastajille. Se tarjoaa käytännön kokemuksen anturien integroinnista, tietojenkäsittelystä ja näyttötekniikoista. Olipa henkilökohtainen käyttöön tai perustana monimutkaisemmille järjestelmille, tämä projekti esittelee Arduino -ekosysteemin voimaa ja joustavuutta. Hyvää rakennus!