//Nama : Mohammad Hisyam Mirza
//NIM : 20200130014
//jika suhu mencapai 30 derajat C lampu 1 menyala 5 detik setelah itu padam,
//jika suhu kurang dari 29 derajat lampu menyala selama 4 detik,
//setelah itu lampu padam, apabila jarak mecapai 45 cm lampu 2 menyala selama 3.5 detik
//setelah itu mati,
//UNTUK SENSOR SUHU
#include "DHT.h"
#define DHTPIN 3
#define DHTTYPE DHT22 // (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
//UNTUK SENSOR JARAK
// defines pins numbers
const int trigPin = 5;
const int echoPin = 7;
const int ledPin1 = 13;
const int ledPin2 = 4;
// defines variables
long duration;
int distance;
int safetyDistance;
void setup() {
pinMode(13, OUTPUT);
pinMode(4, OUTPUT);
dht.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
}
void loop() {
//UNTUK SENSOR SUHU
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
//check if any reads failed and exit early (to try again).
if (temperature >=30){
digitalWrite(13, HIGH);
digitalWrite(4, HIGH);
delay(5000);
digitalWrite(13, LOW);
digitalWrite(4, LOW);
}
else{
digitalWrite(13, LOW);
digitalWrite(4, LOW);
}
if (temperature <29){
digitalWrite(13, HIGH);
delay(4000);
digitalWrite(13, LOW);
}
else{
digitalWrite(13, LOW);
digitalWrite(4, LOW);
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperature);
Serial.print(F("°C"));
// Wait a few second between measurements.
delay(3000);
//UNTUK SENSOR JARAK
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= ((duration*0.05/2)+1);
safetyDistance = distance;
if (safetyDistance >= 45){
digitalWrite(ledPin2, HIGH);
delay(3500);
}
else{
digitalWrite(ledPin2, LOW);
}
Serial.print(" ");
Serial.print(distance, 1);
Serial.println("cm ");
delay(1000);
}