Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest tutorial vom încerca senzorul DHT11 folosind Arduino.
DHT11 poate fi utilizat pentru a măsura temperatura și umiditatea.
Componente necesare:
- Arduino Nano
- Senzor de temperatură și umiditate DHT11
- USB Mini
- Cabluri jumper
Bibliotecă obligatorie:
Biblioteca DHT
Pasul 1: Conectați DHT11 la Arduino
Conectați DHT11 la Arduino folosind cabluri jumper.
Vedeți imaginea sau urmați instrucțiunile de mai jos.
DHT11 către Arduino
+ => + 5V
out => D12
- => GND
Apoi conectați arduino la computer utilizând un mini USB
Pasul 2: Adăugați biblioteca DHT
Biblioteca DHT poate fi descărcată aici:
Biblioteca DHT11.
Pentru a adăuga o bibliotecă, vedeți imaginea de mai sus sau urmați instrucțiunile de mai jos:
Deschideți schița ==> Includeți biblioteca ==> adăugați biblioteca. Zip
Găsiți fișierul de bibliotecă pe care l-ați descărcat.
Dacă are succes, închideți Arduino și deschideți-l din nou.
Pasul 3: Alegeți placa Arduino
Mergeți la Instrumente și reglați placa arduino la imaginea de mai sus.
Board "Arduino Nano"
Procesor „ATmega328P (Old Bootloader)”
Pentru un articol mai complet, puteți citi pe „Cum se folosește Arduino Nano v.3” pe care l-am făcut mai devreme.
Pasul 4: Program
Includeți acest cod pentru a citi valoarea din senzorul DHT11
// Senzor de temperatură și umiditate DHT // Exemplu de bibliotecă de senzori unificată // Scris de Tony DiCola pentru Adafruit Industries // Lansat sub licență MIT.
// NECESITĂ următoarele biblioteci Arduino:
// - Biblioteca senzorului DHT: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#include
#include #include
#define DHTPIN 2 // Pin digital conectat la senzorul DHT
// Feather HUZZAH ESP8266 notă: utilizați pinii 3, 4, 5, 12, 13 sau 14 - // Pinul 15 poate funcționa, dar DHT trebuie deconectat în timpul încărcării programului.
// Decomentați tipul de senzor utilizat:
// # define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) // # define DHTTYPE DHT21 // DHT 21 (AM2301)
// Consultați ghidul pentru detalii despre cablarea și utilizarea senzorului:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t delayMS;
configurare nulă () {
Serial.begin (9600); // Inițializați dispozitivul. dht.begin (); Serial.println (F ("Exemplu de senzor unificat DHTxx")); // Imprimați detaliile senzorului de temperatură. senzor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println (F ("------------------------------------")); Serial.println (F ("senzor de temperatură")); Serial.print (F ("Tip senzor:")); Serial.println (senzor.nume); Serial.print (F ("Driver Ver:")); Serial.println (senzor.versiune); Serial.print (F ("ID unic:")); Serial.println (sensor.sensor_id); Serial.print (F ("Valoare maximă")); Serial.print (sensor.max_value); Serial.println (F ("° C")); Serial.print (F ("Valoare min:")); Serial.print (sensor.min_value); Serial.println (F ("° C")); Serial.print (F ("Rezoluție:")); Serial.print (senzor.rezoluție); Serial.println (F ("° C")); Serial.println (F ("------------------------------------")); // Imprimați detaliile senzorului de umiditate. dht.humidity (). getSensor (& senzor); Serial.println (F ("senzor de umiditate")); Serial.print (F ("Tip senzor:")); Serial.println (sensor.name); Serial.print (F ("Driver Ver:")); Serial.println (senzor.versiune); Serial.print (F ("ID unic:")); Serial.println (sensor.sensor_id); Serial.print (F ("Valoare maximă")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Valoare min:")); Serial.print (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Rezoluție:")); Serial.print (senzor.rezoluție); Serial.println (F ("%")); Serial.println (F ("------------------------------------")); // Setați întârzierea între citirile senzorului pe baza detaliilor senzorului. delayMS = sensor.min_delay / 1000; }
bucla nulă () {
// Întârziere între măsurători. întârziere (delayMS); // Obțineți un eveniment de temperatură și imprimați valoarea acestuia. senzori_eveniment_t eveniment; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println (F ("Eroare la citirea temperaturii!")); } else {Serial.print (F ("Temperatura:")); Serial.print (event.temperature); Serial.println (F ("° C")); } // Obțineți evenimentul de umiditate și imprimați valoarea acestuia. dht.humidity (). getEvent (& event); if (isnan (event.relative_humidity)) {Serial.println (F ("Eroare la citirea umidității!")); } else {Serial.print (F ("Umiditate:")); Serial.print (event.relative_humidity); Serial.println (F ("%")); }}
Sau descărcați fișierul de sub schița pe care am furnizat-o mai jos.
Apoi faceți clic pe încărcare și așteptați să se termine.
Pasul 5: Rezultat
Pentru a vedea rezultatele măsurătorilor de temperatură și umiditate, faceți clic pe Serial Monitor. Rezultatele vor fi afișate acolo.
Dacă va avea succes, rezultatele vor arăta ca în Figura 1
dacă senzorul nu este instalat, va arăta ca imaginea 2
vă mulțumesc pentru lectură, dacă există întrebări, scrieți-l doar în coloana de comentarii