#define EMULATOR
#ifdef EMULATOR
#include "dht20stub.h"
DHT20stub DHT(&Wire1); // my stub dth20 library
#else
#include "dht20.h"
DHT20 DHT(&Wire1); // the original dht20 library
#endif
#define red 6
#define blue 5
#define green 4
void setup()
{
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(green, OUTPUT);
Serial.begin(115200);
Serial.println(__FILE__);
Serial.print("DHT20 LIBRARY VERSION: ");
Serial.println(DHT20_LIB_VERSION);
Serial.println();
Wire1.begin(7, 8); // select your pin numbers here
delay(2000);
Serial.println("Type,\tStatus,\tHumidity (%),\tTemperature (C)");
}
void loop()
{
// READ DATA
Serial.print("DHT20, \t");
int status = DHT.read();
switch (status)
{
case DHT20_OK:
Serial.print("OK,\t");
break;
case DHT20_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHT20_ERROR_CONNECT:
Serial.print("Connect error,\t");
break;
case DHT20_MISSING_BYTES:
Serial.print("Missing bytes,\t");
break;
case DHT20_ERROR_BYTES_ALL_ZERO:
Serial.print("All bytes read zero");
break;
case DHT20_ERROR_READ_TIMEOUT:
Serial.print("Read time out");
break;
case DHT20_ERROR_LASTREAD:
Serial.print("Error read too fast");
break;
default:
Serial.print("Unknown error,\t");
break;
}
// DISPLAY DATA, sensor has only one decimal.
float temp = DHT.getTemperature();
Serial.print(DHT.getHumidity(), 1);
Serial.print(",\t\t");
Serial.println(temp, 1);
if (temp > 22) {
digitalWrite(red, HIGH);
digitalWrite(blue, LOW);
digitalWrite(green, LOW);
}
else if (temp < 5) {
digitalWrite(blue, HIGH);
digitalWrite(green, LOW);
digitalWrite(red, LOW);
}
else {
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
digitalWrite(blue, LOW);
}
delay(2000);
}