int fanpin = 3; int touchpin = 7; unsigned long val; #include #include LiquidCrystal_I2C lcd(0x27, 16, 2); #include const int irReceivePin = 2; IRrecv irrecv(irReceivePin); decode_results results; #include #define DHT11_PIN 5 dht DHT; #define TrigPin 8 #define EchoPin 12 float distance; void setup() { pinMode(fanpin, OUTPUT); pinMode(touchpin, INPUT); Serial.begin(9600); irrecv.enableIRIn(); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Welcome to: "); lcd.setCursor(0, 1); lcd.print("NO.5 Mid School"); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { if (digitalRead(touchpin) == LOW) { digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); distance = (float(pulseIn(EchoPin, HIGH)) * 17 ) / 1000; lcd.clear(); lcd.setCursor(0, 0); lcd.print("Distance is:"); lcd.setCursor(0, 1); lcd.print(distance); lcd.setCursor(6, 1); lcd.print("cm"); } if (irrecv.decode(&results)) { Serial.println(results.value, HEX); delay(200); switch (results.value) { case 0XFFA25D: digitalWrite(fanpin, HIGH); break; case 0XFF629D: digitalWrite(fanpin, LOW); break; case 0XFFE21D: int chk = DHT.read11(DHT11_PIN); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Humidity:"); lcd.setCursor(10, 0); lcd.print(DHT.humidity, 1); lcd.setCursor(0, 1); lcd.print("Temperature:"); lcd.setCursor(12, 1); lcd.print(DHT.temperature, 1); break; default: break; } irrecv.resume(); } }