#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define LDR A0
#define NTC A1
#define RED 7
#define YELLOW 6
#define GREEN 5
void setup() {
Serial.begin(9600);
pinMode(LDR, INPUT);
pinMode(NTC, INPUT);
pinMode(RED, OUTPUT);
pinMode(YELLOW, OUTPUT);
pinMode(GREEN, OUTPUT);
lcd.init();
lcd.backlight();
}
int ldr_val;
int lux;
int ntc_val;
int temp;
void all_led_off() {
digitalWrite(RED, 0);
digitalWrite(YELLOW, 0);
digitalWrite(GREEN, 0);
}
void lcd_print(int column, int line, String text) {
lcd.setCursor(column, line);
lcd.print(text);
}
void loop() {
ldr_val = analogRead(LDR);
ntc_val = analogRead(NTC);
lux = map(ldr_val, 8, 1015, 100, 0);
temp = map(ntc_val, 953, 115, -24, 80);
Serial.print("Light = ");
Serial.print(lux);
Serial.print(" %");
Serial.print(", Temp = ");
Serial.println(temp);
all_led_off();
if (lux > 66) {
digitalWrite(RED, 1);
}
else if (lux <= 33) {
digitalWrite(GREEN, 1);
}
else {
digitalWrite(YELLOW, 1);
}
lcd.clear();
lcd_print(0, 0, "Light");
lcd_print(6, 0, String(lux));
lcd_print(9, 0, "%");
lcd_print(0, 1, "Temp");
lcd_print(6, 1, String(temp));
lcd_print(9, 1, "C");
delay(2000);
}