#include "RTClib.h"
#include "DHT.h"
#define DHTPIN A2    
#define DHTTYPE DHT22 
DHT dht(DHTPIN, DHTTYPE);
RTC_DS1307 rtc;
int wait=2000;
bool font[10][8]=
{
{1,1,1,1,1,1,0,0},  //0
{0,1,1,0,0,0,0,0},  //1
{1,1,0,1,1,0,1,0},  //2
{1,1,1,1,0,0,1,0},  //3
{0,1,1,0,0,1,1,0},  //4
{1,0,1,1,0,1,1,0},  //5
{1,0,1,1,1,1,1,0},  //6
{1,1,1,0,0,0,0,0},  //7
{1,1,1,1,1,1,1,0},  //8
{1,1,1,1,0,1,1,0}   //9
};
float h = dht.readHumidity();
void setup() {
Serial.begin(9600);
dht.begin();delay(2000);
if (! rtc.begin()) {Serial.println("Couldn't find RTC"); Serial.flush();  abort();}
for (int i=2;i<14;i++){pinMode(i, OUTPUT);pinMode(A0, OUTPUT);pinMode(A1, OUTPUT);pinMode(A2, OUTPUT);}
clear();
}
void loop() {
displayTime();
}
void displayHumidity(){
float h = dht.readHumidity();
if (isnan(h)){
Serial.println("Failed to read from DHT sensor!");
return;
}
 Serial.print("Humidity\t ");
 Serial.println(h);
}
void dtime(){ 
  DateTime now = rtc.now();
   Serial.print(now.hour()/10%10);
   Serial.print(now.hour()%10);
   Serial.print(":");
   Serial.print(now.minute()/10%10);
   Serial.print(now.minute()%10);
   Serial.print(":");
   Serial.print(now.second()/10%10);
   Serial.println(now.second()%10);
}
   void displayTime() {
DateTime now = rtc.now();
displaydigit(2,now.hour()/10%10);clear();
displaydigit(3,now.hour()%10);clear();
displaydigit(4,now.minute()/10%10);clear();
displaydigit(5,now.minute()%10);clear();
displaydigit(A0,now.second()/10%10);clear();
displaydigit(A1,now.second()%10);clear();
}
void displayh(int x) {
displaydigit(2,x*100/1000);clear();
displaydigit(3,x*100/100%10);clear();
displaydigit(4,x*100/10%10);clear();
displaydigit(5,x*100%10);clear();
}
void display(int x) {
displaydigit(2,x/1000);clear();
displaydigit(3,x/100%10);clear();
displaydigit(4,x/10%10);clear();
displaydigit(5,x%10);clear();
}
void displaydigit(int digit,int num) {
digitalWrite(digit, LOW); // digit
for (int i=0;i<8;i++){
digitalWrite(i+6,font[num][i]); 
}
}
void clear() {
for (int i=2;i<6;i++){
digitalWrite(i, HIGH);
for (int i=6;i<14;i++){digitalWrite(i, LOW);}
}digitalWrite(A0, HIGH);digitalWrite(A1, HIGH);
}