Salut les amis
J'ai reçu mon kit arduino avec différents modules et cables
Mon projet est de mesure et afficher en temps réel la température et taux d'humidité et piloter un relais sur lequel sera brancher un ventilateur
Pour l'instant, je gère l'affichage sur la console arduino en liaison série en attendant de recevoir mon afficheur LCD
En Logiciel, j'utilise:
- Arduino 1.6.3 pour le codage:
http://arduino.cc/en/Main/Software
- Fritzing 0.9.2 pour la schématisation:
http://fritzing.org/download
Pour mon montage, j'ai utilisé:
- Un Arduino Nano V3
- Un capteur T° & Hygro DHT11
- Une breadboard
- Des cables dupont
- Un relais 5V DC
- Un ventilateur 12V
- Un transfo 220-12V DC
- La librairie du DHT11:
DHT11.zip
Voici la schématisation simplifiée du montage
DHT11.jpg
Et le code source du programme (soyez indulgents, c'est mon premier
)
Code:
/*################################################################
Objet: Contrôle de ventilation par mesure de température et humidité
Auteur: J-Sky
Version: 1.0
Description:
* Lecture de la température en °C et humidité relative en %
* Affichage sur moniteur série
* pilotage relais de ventilation en fonction de l'humidité
Connections du capteur DHT11:
Pin 1: +5V Power supply (+5V)
Pin 2: DATA Serial data output
Pin 3: Non utilisé
Pin 4: GND Ground
Caractéristiques du capteur DHT11:
Alimentation : 5V
Consommation : 0.5 mA en nominal / 2.5 mA maximum
Etendue de mesure température : 0°C à 50°C ± 2°C
Etendue de mesure humidité : 20-90%RH ±5%RH
##################################################################*/
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 5
int relayPin = 6; //defini la variable relayPin comme la sortie digitale n°6
int temps = 5000;
void setup()
{
Serial.begin(115200);
Serial.println("Capteur de temperature et humidite by J-Sky");
delay(1000); // Delai d'initialisation du capteur
{
uint8_t chk = DHT11.read(DHT11PIN);
Serial.print("Statut du capteur: ");
switch (chk)
{
case 0: Serial.println("OK"); break;
case -1: Serial.println("Erreur de checksum"); break;
case -2: Serial.println("Temps d'attente depasse"); break;
case -3: Serial.println("The sensor is busy"); break;
default: Serial.println("Unknown error"); break;
}
}
}
void loop()
{
uint8_t chk = DHT11.read(DHT11PIN);
Serial.begin(115200);
pinMode(relayPin,OUTPUT); //Défini le relais comme une sortie
// Affichage température et humidité
Serial.print("Humidite (%): ");
Serial.println(DHT11.humidity, DEC);
Serial.print("Temperature (C): ");
Serial.println(DHT11.temperature, DEC);
// Pilotage du relais en fonction de la température et affichage état relais ON/OFF
if (DHT11.humidity >40) //Si humidité >40, le relais est activé
{digitalWrite(relayPin,HIGH);} //Ferme le relais (ON)
else
{digitalWrite(relayPin,LOW);} //Ouvre le relais (OFF)
if (digitalRead(relayPin)==HIGH)
{Serial.println ("Ventilateur en marche");}
else
{Serial.println ("Ventilateur arret");}
Serial.println(" ");
delay(temps);
}
La suite dans les prochaines semaines avec l'affichage sur LCD et fonctionnement autonome