Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I denna handledning kommer vi att prova DHT11 -sensorn med Arduino.
DHT11 kan användas för att mäta temperatur och luftfuktighet.
Nödvändiga komponenter:
- Arduino Nano
- DHT11 temperatur- och fuktighetssensor
- USB Mini
- Startkablar
Obligatoriskt bibliotek:
DHT -bibliotek
Steg 1: Anslut DHT11 till Arduino
Anslut DHT11 till Arduino med hjälp av bygelkablar.
Se bilden eller följ instruktionerna nedan.
DHT11 till Arduino
+ => + 5V
ut => D12
- => GND
Anslut sedan arduino till datorn med en mini -USB
Steg 2: Lägg till DHT -biblioteket
Bibliotekets DHT kan laddas ner här:
DHT11 -bibliotek.
För att lägga till ett bibliotek, se bilden ovan eller följ instruktionerna nedan:
Öppna Sketch ==> Inkludera bibliotek ==> lägg till. Zip -bibliotek
Hitta biblioteksfilen som du har laddat ner.
Om det lyckas stänger du Arduino och öppnar det igen.
Steg 3: Välj Arduino Board
Gå till Verktyg och justera arduino -kortet till bilden ovan.
Bräda "Arduino Nano"
Processor "ATmega328P (Old Bootloader)"
För en mer fullständig artikel kan du läsa om "Hur man använder Arduino Nano v.3" som jag gjorde tidigare.
Steg 4: Program
Inkludera denna kod för att läsa värdet från DHT11 -sensorn
// DHT -temperatur- och fuktighetssensor // Exempel på Unified Sensor Library // Skrivet av Tony DiCola för Adafruit Industries // Släppt under en MIT -licens.
// KREVER följande Arduino -bibliotek:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#omfatta
#inkludera #inkludera
#define DHTPIN 2 // Digital pin ansluten till DHT -sensorn
// Fjäder HUZZAH ESP8266 Obs: använd stiften 3, 4, 5, 12, 13 eller 14 - // Stift 15 kan fungera men DHT måste kopplas bort under programöverföring.
// Avmarkera den typ av sensor som används:
//#definiera DHTTYPE DHT11 // DHT 11#definiera DHTTYPE DHT22 // DHT 22 (AM2302) //#definiera DHTTYPE DHT21 // DHT 21 (AM2301)
// Se guiden för detaljer om sensorkablar och användning:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup () {
Serial.begin (9600); // Initiera enheten. dht.begin (); Serial.println (F ("DHTxx Unified Sensor Exempel")); // Skriv ut temperatursensor detaljer. sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println (F ("------------------------------------")); Serial.println (F ("Temperatursensor")); Serial.print (F ("Sensortyp:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (sensor.version); Serial.print (F ("Unikt ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maxvärde:")); Serial.print (sensor.max_value); Serial.println (F ("° C")); Serial.print (F ("Min. Värde:")); Serial.print (sensor.min_value); Serial.println (F ("° C")); Serial.print (F ("Upplösning:")); Serial.print (sensor.resolution); Serial.println (F ("° C")); Serial.println (F ("------------------------------------")); // Skriv ut detaljer om fuktighetssensor. dht.humidity (). getSensor (& sensor); Serial.println (F ("Fuktighetssensor")); Serial.print (F ("Sensortyp:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (sensor.version); Serial.print (F ("Unikt ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maxvärde:")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Min. Värde:")); Serial.print (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Upplösning:")); Serial.print (sensor.resolution); Serial.println (F ("%")); Serial.println (F ("------------------------------------")); // Ställ in fördröjning mellan sensoravläsningar baserat på sensordetaljer. delayMS = sensor.min_delay / 1000; }
void loop () {
// Fördröjning mellan mätningarna. fördröjning (delayMS); // Få temperaturhändelse och skriv ut dess värde. sensorer_event_t händelse; dht.temperature (). getEvent (& event); if (isnan (händelse.temperatur)) {Serial.println (F ("Fel vid läsning av temperatur!")); } annat {Serial.print (F ("Temperatur:")); Serial.print (händelse.temperatur); Serial.println (F ("° C")); } // Få fuktighetshändelse och skriv ut dess värde. dht.humidity (). getEvent (& event); if (isnan (event.relative_humidity)) {Serial.println (F ("Fel vid avläsning av luftfuktighet!")); } annat {Serial.print (F ("Luftfuktighet:")); Serial.print (händelse.relativ_fuktighet); Serial.println (F ("%")); }}
Eller ladda ner filen under skissen som jag har angett nedan.
Klicka sedan på uppladdning och vänta tills den är klar.
Steg 5: Resultat
För att se resultaten av temperatur- och luftfuktighetsmätningar, klicka på Serial Monitor. Resultaten visas där.
Om det lyckas kommer resultaten att se ut som figur 1
om sensorn inte är installerad kommer den att se ut som bild 2
tack för att du läste, om det finns frågor, skriv det bara i kommentarsfältet