#define echoPin 5 // Echo Pin
#define trigPin 6 // Trigger Pin
///DHT
#include "DHT.h"
#define DHTPIN 8 //ขาdata ต่อ ขา8
#define DHTTYPE DHT22 //กำหนดค่าตามชนิดDHTที่ใช้งาน
DHT dht(DHTPIN, DHTTYPE);
///DHT
int maximumRange = 400; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(7, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration / 58.2;
if(distance >= 1 && distance <= 30){
Serial.print("หยุด! ระยะ: ");
Serial.print(distance);
digitalWrite(7, HIGH);
Serial.print("\n");
/////////////////////////////////////////DHT
float h = dht.readHumidity(); //ความชื้น
float t = dht.readTemperature(); //+273.15 เปลี่ยนจาก องศา C เป็น K
float f = dht.readTemperature(true);
Serial.print("ความชื้นภายนอก: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("อุณหภูมิภายนอก: ");
Serial.print(t);
Serial.println(" C ");
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
OCR1A = 12499;
Serial.println("DHT.humidity = OK");
PORTB = 0xFF; // set PORTB = 1111 1111
/////////////////////////////////////////DHT
}
if(distance >= 31 && distance <= 100){
Serial.print("เตรียมหยุด! ระยะ: ");
Serial.print(distance);
digitalWrite(7, HIGH);
delay(250);
digitalWrite(7, LOW);
Serial.print("\n");
/////////////////////////////////////////DHT
float h = dht.readHumidity(); //ความชื้น
float t = dht.readTemperature(); //+273.15 เปลี่ยนจาก องศา C เป็น K
float f = dht.readTemperature(true);
Serial.print("ความชื้นภายนอก: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("อุณหภูมิภายนอก: ");
Serial.print(t);
Serial.println(" C ");
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
OCR1A = 12499;
Serial.println("DHT.humidity = OK");
PORTB = 0xFF; // set PORTB = 1111 1111
/////////////////////////////////////////DHT
}
if(distance >= 101 && distance <= 400){
Serial.print("ถอยรถได้! ระยะ: ");
Serial.print(distance);
digitalWrite(7, HIGH);
delay(500);
digitalWrite(7, LOW);
Serial.print("\n");
/////////////////////////////////////////DHT
float h = dht.readHumidity(); //ความชื้น
float t = dht.readTemperature(); //+273.15 เปลี่ยนจาก องศา C เป็น K
float f = dht.readTemperature(true);
Serial.print("ความชื้นภายนอก: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("อุณหภูมิภายนอก: ");
Serial.print(t);
Serial.println(" C ");
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
OCR1A = 12499;
Serial.println("DHT.humidity = OK");
PORTB = 0xFF; // set PORTB = 1111 1111
/////////////////////////////////////////DHT
}
}
///เซนเซอร์ไฟกระพริบเตือนเมื่อถอยรถ
//เมื่อระยะ1-30
//ไฟจะเปิดค้างแล้วแจ้งเตือนให้หยุด
//เมื่อระยะ31-100
//จะกระพริบแบบ4ครั้งต่อวินาทีแล้วแจ้งเตือนว่าเตรียมหยุดรถ
//เมื่อระยะ101-400
//จะกระพริบแบบ2ครั้งต่อวินาทีแล้วแจ้งเตือนว่าถอยรถได้
//DHTจะแสดงค่าความชื้นและอุณหภูมิภายนอกรถ