Du nouveau pour mon DHT22

On l’a vu la dernière fois, pour mon premier article sur mon projet arduino, on sait comment prendre la température avec une sonde DHT22, ainsi que le taux d’humidité, on sait l’afficher sur un écran LCD, et on sait que la sonde DHT22 est performante.

Alors pour améliorer cette petite centrale, il faut récupérer des PIN (pour pouvoir connecter d’autres sonde de température, ou des boutons, ou toute sorte de capteur). Une idée serait de passer sur une carte arduino supérieure (par exemple la méga ?), ou bien de rechercher à diminuer le nombre de PIN utilisés sur la carte arduino uno, étant donné que cette dernière est, je pense, la plus simple et la mieux documentée sur le web.

Après quelques recherche, ke me suis touné vers un petit composant : le 74HC595 8 Bit Shift Register.

Vous trouverez toute une doc vraiment bien faite sur zem.fr. Je vous invite à la consulter (ici).

De plus, toujours sur zem.fr, j’ai découvert un article expliquant comment relié l’écran LCD en n’utilisant que 3 PIN. Il y a la librairie modifiée, c’est très simple à utiliser.

Voici donc mon montage et le code correspondant :

Deuxieme essai DHT22_bb

 
 

 
 

 

 
 

 

 

 

#include [DHT.h] //Librairie pour le capteur DHT — !!! remplacer [ ] par sup et inf
#include [ShiftLCD.h] //librairie SHIFTlcd modifié par ZEM.fr — !!! remplacer [ ] par sup et inf
ShiftLCD lcd(2, 4, 3);

#define DHTPIN 8 //Pin auquel est connecté le capteur DHT

//#define DHTTYPE DHT11 //Si vous utiliser le DHT 11
#define DHTTYPE DHT22 //Si vous utiliser le DHT 22 (AM2302)
//#define DHTTYPE DHT21 //Si vous utiliser le DHT 21 (AM2301)

const int intTimePause = 5000; //Par défaut on actualise les valeures toutes les 5 secondes

float fltHumidity; //Pourcentage d’humidité mesuré
float fltTemperature; //Température mesurée en Celsius

DHT dht(DHTPIN, DHTTYPE); //On initialise le capteur DHT

void setup()
{
lcd.begin(16, 2); //On indique le nombre de colonnes et de lignes de l’écran
lcd.clear(); //On efface tout ce qui se trouve sur l’écran
lcd.print(« Salut Jul & Raf »); //petit test pour vérifier que tout marche
lcd.setCursor(0,1); //on passe à la ligne suivante
lcd.print(« Pret a mesurer ? »); // on finit d’écrire
delay(5000);
}

void loop()
{
fltHumidity = dht.readHumidity(); //On lit le pourcentage d’humidité
fltTemperature = dht.readTemperature(); //On lit la température en degrés Celsuis
if (isnan(fltTemperature) || isnan(fltHumidity)) //Si les valeures retournées ne sont pas des nombres :
{
lcd.setCursor(0, 1); //Positionnement du curseur
lcd.print(DHTTYPE); //On affiche le type de capteur
lcd.setCursor(5, 1);
lcd.print( » illisible »); //On affiche l’erreur
}
else
{
//mise en forme et affichage des informations sur l’écran LCD
lcd.setCursor(0, 0); //Positionnement du curseur
lcd.print(« Degres : « );
lcd.setCursor(9, 0);
lcd.print(fltTemperature); //Affichage de la température
lcd.setCursor(13, 0);
lcd.print((char)223); //Affiche le caractère ° (degrés)
lcd.setCursor(14, 0);
lcd.print(« C »); //En degrés Celsuis
lcd.setCursor(0, 1);
lcd.print(« Humidite : « );
lcd.setCursor(11, 1);
lcd.print(fltHumidity); //Affichage de l’humidité
lcd.setCursor(15, 1);
lcd.print(« % »);
}
delay(intTimePause); //On actualise les informations toutes les x millisecondes.
}

 

Deuxieme essai DHT22

Source :

74HC595 8 Bit Shift Register

Connecter un LCD HD44780 sur un Arduino avec seulement 3 pins