#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <DHT.h>
#include <DHT_U.h>
#define dhtSensor 6
#define temp 9
DHT dhtS(dhtSensor, DHT22);
void setup() {
pinMode(temp, INPUT);
pinMode(dhtSensor, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Starting");
delay(400);
lcd.setCursor(0,0);
lcd.print("Booting:");
for (int i = 0; i <= 100; i++){
lcd.setCursor(8,0);
if (i<100) lcd.print(" "); //print a space if the percentage is < 100
if (i<10) lcd.print(" "); //print a space if the percentage is < 10
lcd.print(i);
lcd.print("%");
delay(5); //change the delay to change how fast the boot up screen changes
}
lcd.setCursor(0,0);
lcd.print("Done....");
lcd.clear();
delay(100);
}
void displaySensor(float temp1, float temp2, float temp3, float temp4, float rh) {
char buffer[6];
// Print temp1
lcd.setCursor(0, 0);
lcd.printstr("T1:");
lcd.setCursor(3, 0);
dtostrf(temp1, 4, 1, buffer);
lcd.print(buffer);
lcd.setCursor(8, 0);
lcd.print('C');
// Print temp2
lcd.setCursor(11, 0);
lcd.printstr("T2:");
dtostrf(temp2, 4, 1, buffer);
lcd.print(buffer);
lcd.setCursor(19, 0);
lcd.print("C");
// Print temp3
lcd.setCursor(0, 1);
lcd.printstr("T3:");
lcd.setCursor(3, 1);
dtostrf(temp3, 4, 1, buffer);
lcd.print(buffer);
lcd.setCursor(8, 1);
lcd.print('C');
// Print temp4
lcd.setCursor(11, 1);
lcd.printstr("T4:");
dtostrf(temp4, 4, 1, buffer);
lcd.print(buffer);
lcd.setCursor(19, 1);
lcd.print("C");
// Print temp4
lcd.setCursor(0, 2);
lcd.printstr("RH:");
lcd.setCursor(3, 2);
dtostrf(rh, 4, 1, buffer);
lcd.print(buffer);
}
void loop() {
float temp1 = random(0, 3000) / 10.0; // Random float between 0.0 and 29.9
float temp2 = random(30, 10000) / 10.0; // Random float between 3.0 and 99.9
displaySensor(temp1, temp2, dhtS.readTemperature(), analogRead(temp), analogRead(temp));
delay(2000);
}