1
2
3
4#include "DHT.h"
5
6#define DHTPIN 2
7
8#define DHTTYPE DHT22
9
10DHT dht(DHTPIN, DHTTYPE);
11
12void setup() {
13 Serial.begin(9600);
14 Serial.println("Reading DHT22 data!");
15 dht.begin();
16 pinMode(12, OUTPUT);
17 pinMode(11, OUTPUT);
18}
19
20void loop() {
21
22
23 float hum1 = dht.readHumidity();
24
25 float temp1 = dht.readTemperature();
26
27
28
29 if (isnan(hum1) || isnan(temp1)) {
30 digitalWrite(11, HIGH);
31 digitalWrite(12, LOW);
32 Serial.println("Error in reading sensor data!");
33 while (isnan(hum1) || isnan(temp1)) {
34 hum1 = dht.readHumidity();
35 temp1 = dht.readTemperature();
36 }
37 }
38 else {
39 digitalWrite(11, LOW);
40 digitalWrite(12, HIGH);
41 }
42
43
44 delay(3000);
45 float hum2 = dht.readHumidity();
46 float temp2 = dht.readTemperature();
47
48
49 float hic = dht.computeHeatIndex(temp1, hum1, false);
50 Serial.print("Humidity: ");
51 Serial.print(round)(hum1 + hum2) / 2));
52 Serial.print(" % ");
53 Serial.print("Temperature: ");
54 Serial.print((temp1 + temp2) / 2);
55 Serial.print(" *C ");
56 Serial.print("Heat index: ");
57 Serial.print(round(hic));
58 Serial.println(" *C ");
59}
60