Termometru cu ceas și data – Sandu Ilie Cristian
crystisandu3@gmail.com
Componente necesare :
-I2C 16x2 LCD
-DHT11 Temperature and humidity sensor
-MH -Real-Time-Clock Modules - 2
-Arduino UNO
pin component -> pin placa
RTC
VCC -> 5V
GND -> GND
CLK -> /6
DAT -> 7
RST -> 8
SENZOR TEMPERATURA
DATA -> 4
VCC -> 3,3V
GND -> GND
DISPLAY
GND -> GND
VCC -> 5V
SDA -> A4
SCL -> A5
//--------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>
#include <virtuabotixRTC.h>
dht DHT;
#define DHT11_PIN 4
int tmp;
int hum;
LiquidCrystal_I2C lcd (0x27, 2 ,1,0,4,5,6,7,3,POSITIVE);
virtuabotixRTC myRTC(6, 7, 8);
byte temp[] = {
B00100,
B01010,
B01010,
B01110,
B01110,
B11111,
B11111,
B01110
};
byte humi[] = {
B00100,
B00100,
B01010,
B01010,
B10001,
B10001,
B10001,
B01110
};
void setup(){
lcd.begin(16,2);
lcd.createChar(0, temp);
lcd.createChar(1, humi);
lcd.clear ();
pinMode(4,INPUT);
Serial.begin(9600);
}
void loop()
{
int d = DHT.read11(DHT11_PIN);
myRTC.updateTime();
lcd.setCursor ( 0, 0 );// prima linie
lcd.print(char(0));
lcd.print(DHT.temperature);
lcd.print("C");
lcd.print(" ");
lcd.print(char(1));
lcd.print(DHT.humidity);
lcd.print("%");
lcd.setCursor ( 0, 1 );// a doua linie
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(" ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
delay(1000);
}
//--------------------------------