1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#include <TM1637Display.h>
#include <DHT.h>
#include <Wire.h>
#define DHTPIN 7
#define CLK 2
#define DIO 3
#define DHTTYPE DHT22 // DHT 22
// PIN connectée au D7 de l'Arduino
TM1637Display display(CLK, DIO);
DHT dht(DHTPIN, DHTTYPE); // Initialisation Sensor DHT pour un Arduino 16mhz
// Create degree Celsius symbol:
const uint8_t degre[] = {
SEG_A | SEG_B | SEG_F | SEG_G // Circle
};
const uint8_t point[] = {
SEG_DP // Point
};
void setup() {
display.setBrightness(7);
Wire.begin();
dht.begin();
Serial.begin(9600);
delay(1500); // Delay to let the system boot
}
void displayTemp()
{ // La lecture de la température ou de l'humidité prend entre
// +/- 250 millisecondes et 2 secondes.
// Ce sensor est très lent
float h = dht.readHumidity(); // Lecture du taux d'humidité sur le sensor
float t = dht.readTemperature(); // Lecture de la température en Celsius
float f = dht.readTemperature(true); // Lecture de la température en Fahrenheit
if (isnan(h) || isnan(t) || isnan(f))
{ // Vérification que toutes les données ont bien été lue
Serial.println("La lecture du données DHT a échoué ! "); // Affichage d'un message dans le moniteur série
return;
}
// Calcul de la température ressentie en se basant sur la température
// en Fahrenheit et le taux d'humidité.
float hi = dht.computeHeatIndex(f, h); // Affichage sur moniteur série
Serial.print("Hum: "); // Taux d'humidité
Serial.print(h);
Serial.print(" %\t"); // en %
Serial.print("Temperature: "); // Température
Serial.print(t);
Serial.print("°C "); // en °Celsius
Serial.print(f);
Serial.print(" *F\t"); // en °Fahrenheit
Serial.print("Temp ressentie: "); // Température ressentie
Serial.print(hi);
Serial.println(" *F"); // en °Fahrenheit
display.clear();
display.showNumberDecEx(t*10,(0x80 >> 3),false,3);
display.setSegments(degre,1,3);
delay(2000); // On garde l'affichage pendant 2 secondes pour permettre la lecture
}
void loop() {
displayTemp();
delay(1000);
} |