#include <TinyWireM.h>
#include <Tiny4kOLED.h>
#include <dht.h>
#include <TinyDebug.h>
#define DHT22_InputPort PB1
//const int DHT22_InputPort = 1; // Using physical pin D1 (PB1)
//DHT22 dht22(DHT22_InputPort);
dht DHT;
const unsigned char img_Celcius[] PROGMEM = {
0B00000111,
0B00000101,
0B00000111,
0B00000000,
0B00000000,
0B00000000,
0B00000000,
0B00000000,
};
void splash() {
oled.clear();
oled.setCursor(23, 1);
oled.print(F("By"));
oled.setCursor(17, 2);
oled.print(F("Edwin"));
oled.setCursor(8, 3);
oled.print(F("van Eijk"));
delay(3000);
}
void prepareDisplay() {
//unsigned int i, k;
//unsigned char ch[5];
oled.clear();
oled.begin();
oled.setCursor(0, 0); //Title
oled.print(F("Measuring"));
oled.setCursor(0, 1); //Temp
oled.print(F("T="));
oled.setCursor(57, 1);
oled.print(F("C"));
oled.setCursor(0, 2); //Humidity
oled.print(F("H="));
oled.setCursor(57, 2);
oled.print(F("%"));
oled.setCursor(0, 3); //Battery
oled.print(F("B="));
oled.setCursor(57, 3);
oled.print(F("%"));
//oled.bitmap(105, 4, 110, 7, img_thermometer);
//oled.setCursor(57, 4);
//oled.print(F("24.0C"));
//oled.setCursor(57, 5);
//oled.print(F("40.0%"));
//oled.bitmap(10, 5, 17, 2, img_Celcius);
oled.bitmap(54, 1, 57, 2, img_Celcius);
}
float getTemperature() {
return DHT.temperature;
}
float getHumidity() {
return DHT.humidity;
}
void setup() {
// Set input port of DHT22
pinMode(DHT22_InputPort, INPUT); // Use internal resistor
// Set Screensize of OLED
oled.begin(64, 32, sizeof(tiny4koled_init_64x32br), tiny4koled_init_64x32br);
// Two fonts are supplied with this library, FONT8X16 and FONT6X8
oled.setFont(FONT6X8);
// Turn on OLED
oled.on();
// Start Splash Screen
splash();
delay(500);
}
void loop() {
DHT.read22(DHT22_InputPort);
oled.clear();
prepareDisplay();
float t = getTemperature();
float h = getHumidity();
// Serial.println("Line 130");
//float t=20;
Debug.print("Temp:");
Debug.println(DHT.temperature);
//oled.clear();
oled.setCursor(16, 1); //Temp
oled.print(t);
oled.setCursor(16, 2); //humidity
oled.print(h);
delay(1000);
}