Monitoring omgevingscondities zoals temperatuur en vochtigheid is essentieel voor verschillende toepassingen, van thuisautomatisering tot broeikasbeheer. Met het veelzijdige Arduino -platform en sensoren zoals de DHT11 of DHT22, is het creëren van een betrouwbare temperatuur- en vochtigheidsmonitor zowel betaalbaar als eenvoudig. In deze gids leiden we u door de benodigde componenten, het setup -proces en de codering die nodig is om uw monitor tot leven te brengen.
Componenten die je nodig hebt
- Arduino Uno
- DHT11 of DHT22 -sensor
- Weerstand van 10k ohm
- Breadboard en jumper draden
- LCD -display (optioneel)
- USB -kabel
Inzicht in de DHT11/DHT22 -sensoren
De DHT11 en DHT22 zijn populaire sensoren voor het meten van temperatuur en vochtigheid. De DHT11 is kosteneffectief en geschikt voor basistoepassingen en biedt een temperatuurbereik van 0-50 ° C met ± 2 ° C nauwkeurigheid en vochtbereik van 20-80% met ± 5% nauwkeurigheid. De DHT22 daarentegen biedt een breder temperatuurbereik van -40 tot 80 ° C met ± 0,5 ° C nauwkeurigheid en vochtbereik van 0-100% met ± 2-5% nauwkeurigheid, waardoor het ideaal is voor meer veeleisende projecten.
De sensor bedraden naar Arduino
Volg deze stappen om uw DHT -sensor aan te sluiten op de Arduino:
- Stroomverbindingen: Sluit de VCC -pin van de DHT -sensor aan op de 5V -pin op de Arduino en de GND -pin op de grond (GND).
- Gegevenspin: Sluit de gegevenspen van de DHT -sensor aan op een digitale invoerpen op de Arduino (meestal pin 2).
- Pull-up weerstand: Plaats een 10K ohmweerstand tussen de VCC en de datapin om stabiele gegevensoverdracht te garanderen.
- LCD -display (optioneel): Als u een LCD gebruikt, sluit u deze aan op de juiste Arduino -pinnen voor het weergeven van de metingen.
De Arduino programmeren
Om gegevens van de DHT -sensor te lezen, gebruiken we de DHT.h
bibliotheek, die het proces vereenvoudigt. Hieronder vindt u een voorbeeldcodefragment om u op weg te helpen:
// 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");
}
Verklaring van de code:
- De
DHT.h
Bibliotheek is opgenomen om de communicatie met de sensor te vergemakkelijken. - We definiëren de gegevenspen en het sensortype met behulp van
#define
. - In de
setup()
Functie, initialiseren we seriële communicatie en de DHT -sensor. - De
loop()
Functie leest de vochtigheid en temperatuur om de twee seconden en drukt ze af naar de seriële monitor.
De gegevens weergeven
Voor een meer gebruiksvriendelijke opstelling kunt u de metingen weergeven op een LCD- Wijzig de code om gegevens naar de LCD te verzenden in plaats van de seriële monitor. Zorg ervoor dat u de juiste LCD -bibliotheek hebt geïnstalleerd en configureer de pins dienovereenkomstig.
Voorbeeldcode voor LCD -weergave:
// 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(" %");
}
Uw opstelling testen
Na het uploaden van de code naar uw Arduino, opent u de seriële monitor (bij gebruik van seriële uitvoer) of observeer het LCD -display. Je zou realtime temperatuur- en vochtigheidslezingen moeten zien. Zorg ervoor dat uw verbindingen veilig zijn en dat de sensor correct functioneert. Als u problemen ondervindt, controleert u de bedrading dubbel en controleert u of het juiste sensortype in uw code is gedefinieerd.
Verbeteringen en volgende stappen
Nu u een basistemperatuur- en vochtigheidsmonitor heeft, overweeg dan de volgende verbeteringen:
- Gegevensregistratie: Sluit uw Arduino aan op een SD -kaartmodule om gegevens in de loop van de tijd te loggen voor analyse.
- Draadloze monitoring: Gebruik modules zoals ESP8266 of Bluetooth om gegevens naar uw smartphone of cloudservices te verzenden.
- Waarschuwingen: Implementeer op drempelgebaseerde meldingen met behulp van LED's of buzzers om u op de hoogte te stellen van extreme omstandigheden.
- Meerdere sensoren: Vouw uw setup uit met extra sensoren voor parameters zoals luchtkwaliteit of lichtintensiteit.
Conclusie
Het bouwen van een temperatuur- en vochtigheidsmonitor met de DHT11/DHT22 en Arduino is een uitstekend project voor zowel beginners als enthousiastelingen. Het biedt praktische ervaring met sensorintegratie, gegevensverwerking en weergavetechnieken. Of het nu gaat om persoonlijk gebruik of als basis voor complexere systemen, dit project toont de kracht en flexibiliteit van het Arduino -ecosysteem. Gelukkig gebouw!