#include <Adafruit_LiquidCrystal.h>
#include "DHT.h"
Adafruit_LiquidCrystal lcd(0);
const char* sta;
DHT dht(6, DHT11);
int trigPin = 12;
int echoPin = 13;
long duration;
long distance;
int sensePin = A1; //This is the Arduino Pin that will read the sensor output
int sensorInput; //The variable we will use to store the sensor input
double temp; //The variable we will use to store temperature in degrees.
double humi;
int ledPin = 11;
int analogPin = A0;
int val = 0;
int btpin;
int ultrasonic;
int temp1;
int humi1;
int light;
int bt;
int btval = 0;
int Val;
int readUltrasonicDistance()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW); //ใช้งานขา trig
duration = pulseIn(echoPin, HIGH); //อ่านค่าของ echo
distance = (duration/2) / 29.1; //คำนวณเป็น centimeters
Serial.print(distance);
Serial.println(" cm");
if (distance <= 250)
{
digitalWrite(10, HIGH);
}
else
{
digitalWrite(10, LOW);
}
}
int tempreader()
{
temp = dht.readTemperature();
Serial.print("Current Temperature: ");
Serial.println(temp);
return temp;
}
int humireader()
{
humi = dht.readHumidity();
Serial.print("Current Humidity: ");
Serial.println(humi);
return humi;
}
int ldrreader()
{
val = analogRead(analogPin);
Serial.print("val = ");
Serial.println(val);
if (val < 500) {
digitalWrite(ledPin, HIGH);
Serial.println("LED ON");
Serial.println();
}
else {
digitalWrite(ledPin, LOW);
Serial.println("LED OFF");
Serial.println();
}
delay(100);
}
int botton()
{
btpin = digitalRead(9);
btval = btval + btpin;
Val = btval%2;
if (Val == 0){
digitalWrite(7, HIGH); // Pin 7 used to control something
}
else
{
digitalWrite(7, LOW);
}
}
void setup() {
lcd.begin(16, 2);
pinMode(echoPin, INPUT); //สั่งให้ขา echo ใช้งานเป็น input
pinMode(trigPin, OUTPUT); //สั่งให้ขา trig ใช้งานเป็น output
pinMode(10, OUTPUT);
pinMode(analogPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(9, INPUT);
pinMode(7, OUTPUT);
dht.begin();
}
void loop()
{
readUltrasonicDistance();
temp1 = tempreader();
humi1 = humireader();
ldrreader();
botton();
Serial.begin(9600);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("temp = ");
lcd.print(temp1);
lcd.print(" c");
delay(10);
lcd.setCursor(0, 1);
lcd.print("humi = ");
lcd.print(humi1);
lcd.print(" %");
delay(600);
}