#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int val;
long duration; 
int d;
void setup()
{
  pinMode(13,OUTPUT);
  pinMode(2,INPUT);
  pinMode(4, OUTPUT); 
  pinMode(3, INPUT); 
  Serial.begin(9600); 
  lcd.init(); 
  lcd.backlight();
  delay(1000);
  val = analogRead(1);
  float mv = ( val/1024.0)*5000;
  float cel = mv/10;
  float farh = (cel*9)/5 + 32;
  lcd.setCursor(0,0);
  if (cel>=38)
  {
    lcd.print("COUTION ");
    lcd.print(cel);
    lcd.print("*C");
    lcd.setCursor(2,1);
    lcd.print("display OK");
  }
  else
  {
   lcd.print("temperature=");
   lcd.print(cel);
   lcd.print("*C");
   lcd.setCursor(2,1);
   lcd.print("display OK");
  }
  lcd.println();
}
void loop()
{
  digitalWrite(4, LOW);
  delayMicroseconds(2);
  digitalWrite(4, HIGH);
  delayMicroseconds(10);
  digitalWrite(4, LOW);
  duration = pulseIn(3, HIGH);
  d = duration * 0.034 / 2; 
  Serial.print("Distance: ");
  Serial.print(d);
  Serial.println(" cm");
  if (d<10)
  {
    digitalWrite(8, HIGH);
    digitalWrite(6, LOW);
  }
  else if (d<20&&d>=10)
  {
    digitalWrite(6, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(8, LOW);
  }
  else if(d<=30&&d>=20)
  {
    digitalWrite(5, HIGH);
    digitalWrite(6, LOW);
  }
  else
  {
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(8, LOW);
  }
  if (digitalRead(2)== HIGH)
  {
    digitalWrite(13,HIGH);
    lcd.setCursor(0,1);
    lcd.print("dispensing fog");
    delay(500);
    lcd.setCursor(0,1);
    lcd.print("              ");    
  }
  else 
  {
    digitalWrite(13,LOW);
    delay(10);
  }
}