#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
#include <DHT22.h>
#define TEMP_PIN A0
#define BETA 3950.0
uint64_t tmr;
int pot_val;
float celsius;
const float GAMMA = 0.7;
const float RL10 = 50;
LiquidCrystal_I2C lcd (0x27, 20, 4);
RTC_DS1307 rtc;
void setup() {
pinMode(TEMP_PIN,INPUT);
rtc.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("LCD");
}
void loop() {
if(millis() - tmr >= 1000){
tmr = millis();
DateTime now = rtc.now();
lcd.clear();
lcd.print("temp:");
lcd.print(1.0 / (log(1.0 / (1023.0 / float(analogRead(TEMP_PIN)) - 1)) / BETA + 1.0 / 298.15) - 273.15);
lcd.write(223);
lcd.setCursor(12,0);
if(now.hour() > 9){
lcd.print(now.hour());
}
else{
lcd.print(0);
lcd.print(now.hour());
}
lcd.print(":");
if(now.minute() > 9){
lcd.print(now.minute());
}
else{
lcd.print(0);
lcd.print(now.minute());
}
int analogValue = analogRead(A1);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
lcd.setCursor(0,1);
lcd.print(lux);
lcd.print(" lux");
}
}