Arduino - Sensore di umidità
In questa sezione impareremo come interfacciare la nostra scheda Arduino con diversi sensori. Discuteremo i seguenti sensori:
- Sensore di umidità (DHT22)
- Sensore di temperatura (LM35)
- Sensore rilevatore d'acqua (Simple Water Trigger)
- SENSORE PIR
- SENSORE ULTRASONICO
- GPS
Sensore di umidità (DHT22)
Il DHT-22 (chiamato anche AM2302) è un sensore di uscita digitale, umidità relativa e temperatura. Utilizza un sensore di umidità capacitivo e un termistore per misurare l'aria circostante e invia un segnale digitale sul pin dati.
In questo esempio, imparerai come utilizzare questo sensore con Arduino UNO. La temperatura e l'umidità della stanza verranno stampate sul monitor seriale.
Il sensore DHT-22
Le connessioni sono semplici. Il primo pin a sinistra a 3-5 V di alimentazione, il secondo pin al pin di ingresso dati e il pin più a destra a terra.
Dettagli tecnici
Power - 3-5V
Max Current - 2,5 mA
Humidity - 0-100%, 2-5% di precisione
Temperature - da 40 a 80 ° C, precisione ± 0,5 ° C
Componenti richiesti
Avrai bisogno dei seguenti componenti:
- 1 × Breadboard
- 1 × Arduino Uno R3
- 1 × DHT22
- Resistenza 1 × 10K ohm
Procedura
Seguire lo schema del circuito e collegare i componenti sulla breadboard come mostrato nell'immagine sottostante.
Schizzo
Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.
Codice Arduino
// Example testing sketch for various DHT humidity/temperature sensors
#include "DHT.h"
#define DHTPIN 2 // what digital pin we're connected to
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000); // Wait a few seconds between measurements
float h = dht.readHumidity();
// Reading temperature or humidity takes about 250 milliseconds!
float t = dht.readTemperature();
// Read temperature as Celsius (the default)
float f = dht.readTemperature(true);
// Read temperature as Fahrenheit (isFahrenheit = true)
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print ("Humidity: ");
Serial.print (h);
Serial.print (" %\t");
Serial.print ("Temperature: ");
Serial.print (t);
Serial.print (" *C ");
Serial.print (f);
Serial.print (" *F\t");
Serial.print ("Heat index: ");
Serial.print (hic);
Serial.print (" *C ");
Serial.print (hif);
Serial.println (" *F");
}
Codice da notare
Il sensore DHT22 ha quattro terminali (V cc , DATA, NC, GND), che sono collegati alla scheda come segue:
- Pin DATA al pin numero 2 di Arduino
- V cc pin a 5 volt della scheda Arduino
- Pin GND alla massa della scheda Arduino
- Dobbiamo collegare una resistenza da 10k ohm (resistenza di pull up) tra il DATA e il pin V cc
Una volta completate le connessioni hardware, è necessario aggiungere la libreria DHT22 al file della libreria Arduino come descritto in precedenza.
Risultato
Vedrai la visualizzazione della temperatura e dell'umidità sul monitor della porta seriale che viene aggiornata ogni 2 secondi.