PJ 2229
PJ 2229
PJ 2229
d’humidité
Matériel nécessaire :
- une carte Uno ou compatible
- un cordon USB B
- un jeu de cordons M/F
- un capteur de température et d’humidité ST052
Présentation du module :
Ce capteur de température et d'humidité basé sur le circuit DHT11 communique avec
un microcontrôleur type Arduino ou compatible via une sortie digitale.
Alimentation : 5 Vcc
Plage de mesure :
- température : 0 à 50 °C (± 2 °C)
- humidité : 20 à 90 %RH (± 5 % RH)
Connecteurs : 3 broches (Vcc, GND et Signal)
Dimensions : 23 x 17 mm
Connexion du capteur :
Page 1 de 4
Table de correspondance :
Exemple de programme:
L’exemple de code suivant (à copier dans l’IDE Arduino) et permet d’afficher la température
et l’humidité dans le moniteur série.
byte read_data()
{
byte i = 0;
byte data = 0;
for (i = 0; i < 8; i++) {
while (digitalRead(DHpin) == LOW); // wait for 50us
delayMicroseconds(30); // determine the duration of the high level to
// determine the data is '0 'or '1'
if (digitalRead(DHpin) == HIGH)
data |= (1 << (8 - i)); // high front and low in the post
while (digitalRead(DHpin) == HIGH); // data '1 ', wait for thenext one
// receiver
}
return data;
}
void start_test()
{
digitalWrite(DHpin, LOW); // bus down, send start signal
delay(30); // delay greater than 18ms, so DHT11 start signal can be
// detected
digitalWrite(DHpin, HIGH);
delayMicroseconds(40); // wait for DHT11 response
pinMode(DHpin, INPUT);
while(digitalRead(DHpin) == HIGH);
delayMicroseconds(80); // DHT11 response, pulled the bus 80us
if(digitalRead(DHpin) == LOW)
delayMicroseconds(80); // DHT11 80us after the bus pulled to start
// sending data
for(int i = 0; i < 5; i++) // receive temperature and humidity data, the
// parity bit is not considered
dat[i] = read_data();
pinMode(DHpin, OUTPUT);
digitalWrite(DHpin, HIGH); // send data once after releasing the bus,
// wait for the host to open the next Start signal
Page 2 de 4
void setup()
{
Serial.begin(9600);
pinMode(DHpin, OUTPUT);
}
void loop()
{
start_test();
Serial.print("Humdity = ");
Serial.print(dat[0], DEC); // display the humidity-bit integer;
Serial.print('.');
Serial.print(dat[1], DEC); // display the humidity decimal places;
Serial.println('%');
Serial.print("Temperature = ");
Serial.print(dat[2], DEC); // display the temperature of integer bits;
Serial.print('.');
Serial.print(dat[3], DEC); // display the temperature of decimal places;
Serial.println('C');
delay(500);
}
Page 3 de 4