Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
U ovom ćemo vodiču isprobati DHT11 senzor pomoću Arduina.
DHT11 se može koristiti za mjerenje temperature i vlažnosti.
Potrebne komponente:
- Arduino Nano
- DHT11 Senzor temperature i vlažnosti
- USB Mini
- Premosni kablovi
Potrebna biblioteka:
Biblioteka DHT
Korak 1: Povežite DHT11 na Arduino
Spojite DHT11 na Arduino pomoću kratkospojnih kabela.
Pogledajte sliku ili slijedite upute u nastavku.
DHT11 na Arduino
+ => + 5V
out => D12
- => GND
Zatim povežite arduino s računarom pomoću mini USB -a
Korak 2: Dodajte DHT biblioteku
Biblioteku DHT možete preuzeti ovdje:
Biblioteka DHT11.
Za dodavanje biblioteke pogledajte gornju sliku ili slijedite donje upute:
Otvorite Sketch ==> Include Library ==> add. Zip Library
Pronađite datoteku biblioteke koju ste preuzeli.
Ako uspije, zatvorite Arduino i ponovo ga otvorite.
Korak 3: Odaberite Arduino ploču
Idite na Tools i podesite arduino ploču na gornju sliku.
Ploča "Arduino Nano"
Procesor "ATmega328P (stari pokretač za pokretanje)"
Za potpuniji članak možete pročitati "Kako koristiti Arduino Nano v.3" koji sam napravio ranije.
Korak 4: Program
Uključite ovaj kôd za očitavanje vrijednosti sa senzora DHT11
// DHT osjetnik temperature i vlažnosti // Primjer jedinstvene biblioteke senzora // Napisao Tony DiCola za Adafruit Industries // Objavljeno pod licencom MIT -a.
// ZAHTJEVA sljedeće Arduino biblioteke:
// - Biblioteka DHT senzora: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#include
#include #include
#define DHTPIN 2 // Digitalni pin spojen na DHT senzor
// Perje HUZZAH ESP8266 napomena: koristite pinove 3, 4, 5, 12, 13 ili 14 - // Pin 15 može raditi, ali DHT mora biti isključen tokom učitavanja programa.
// Raskomentirajte tip senzora koji se koristi:
//#definiraj DHTTYPE DHT11 // DHT 11 #definiraj DHTTYPE DHT22 // DHT 22 (AM2302) //#definiraj DHTTYPE DHT21 // DHT 21 (AM2301)
// Pogledajte vodič za detalje o ožičenju i upotrebi senzora:
//
DHT_Unified dht (DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup () {
Serial.begin (9600); // Inicijalizacija uređaja. dht.begin (); Serial.println (F ("Primjer jedinstvenog senzora DHTxx -a")); // Ispis detalja senzora temperature. sensor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println (F ("------------------------------------")); Serial.println (F ("Senzor temperature")); Serial.print (F ("Tip senzora:")); Serial.println (ime senzora); Serial.print (F ("Verzija upravljačkog programa:")); Serial.println (sensor.version); Serial.print (F ("Jedinstveni ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maksimalna vrijednost:")); Serial.print (sensor.max_value); Serial.println (F ("° C")); Serial.print (F ("Minimalna vrijednost:")); Serial.print (sensor.min_value); Serial.println (F ("° C")); Serial.print (F ("Rezolucija:")); Serial.print (senzorsko razrješenje); Serial.println (F ("° C")); Serial.println (F ("------------------------------------")); // Ispis detalja senzora vlažnosti. dht.humidity (). getSensor (& senzor); Serial.println (F ("Senzor vlažnosti")); Serial.print (F ("Tip senzora:")); Serial.println (ime senzora); Serial.print (F ("Verzija upravljačkog programa:")); Serial.println (sensor.version); Serial.print (F ("Jedinstveni ID:")); Serial.println (sensor.sensor_id); Serial.print (F ("Maksimalna vrijednost:")); Serial.print (sensor.max_value); Serial.println (F ("%")); Serial.print (F ("Minimalna vrijednost:")); Serial.print (sensor.min_value); Serial.println (F ("%")); Serial.print (F ("Rezolucija:")); Serial.print (senzorsko razrješenje); Serial.println (F ("%")); Serial.println (F ("------------------------------------")); // Podesite kašnjenje između očitanja senzora na osnovu detalja senzora. delayMS = sensor.min_delay / 1000; }
void loop () {{100} {101}
// Kašnjenje između mjerenja. kašnjenje (delayMS); // Dobijanje temperaturnog događaja i ispis njegove vrijednosti. sensors_event_t događaj; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println (F ("Greška pri očitavanju temperature!")); } else {Serial.print (F ("Temperatura:")); Serial.print (event.temperature); Serial.println (F ("° C")); } // Dobijte događaj vlažnosti i ispišite njegovu vrijednost. dht.humidity (). getEvent (& event); if (isnan (event.relative_humidity)) {Serial.println (F ("Greška pri očitavanju vlažnosti!")); } else {Serial.print (F ("Vlažnost:")); Serial.print (event.relative_humidity); Serial.println (F ("%")); }}
Ili preuzmite datoteku ispod skice koju sam naveo u nastavku.
Zatim kliknite na upload i sačekajte da se završi.
Korak 5: Rezultat
Da biste vidjeli rezultate mjerenja temperature i vlažnosti, kliknite Serijski monitor. Tamo će se prikazati rezultati.
Ako rezultati budu uspješni, izgledat će kao na slici 1
ako senzor nije instaliran, izgledat će kao slika 2
hvala vam na čitanju, ako postoje pitanja, samo ih napišite u kolonu za komentare