I. Latar Belakang
Dalam kehidupan sehari-hari, kipas angin merupakan benda yang sangat umum digunakan, pada saat siang hari maupun malam hari, apalagi ketika cuaca yang sangat panas dan juga digunakan untuk beberapa keperluan lainnya. Seperti yang kita ketahui dengan berkembangnya teknologi saat ini maka kami ingin membuat kipas angin otomatis yang memudahkan pengguna tanpa harus membawa kipas yang pada umumnya besar dan ribet.
II. Penjelasan Alat
A. Flow Chart
B. Skema
Penjelasan Skema diatas :
- Sensor ultrasonik untuk mengukur jarak suatu benda yang berada di hadapan sensor tersebut.
- WeMos D1 merupakan papan induk dari semua proses yang dilakukan.
- Dht22 adalah mengecek suhu keadaan sekitar
- Relay adalah sebagai pemutus atau penghubung aliran listrik pada rangkaian dengan kontrol berupa tegangan.
C. Spesifikasi dan Cara Kerja
a. WEMOS D1
b. Sensor Ultrasonik
c. Dht22
d. Relay
e. Adaptor
Cara Kerja :
Cara kerja Otomatic Fan apabila sensor mendeteksi objek dari jarak dan suhu yang telah ditentukan maka kipas angin akan hidup secara otomatis jika sesuai dengan jarak yang telat diseting pada mikrokontroler. Dan jika ada objek yang dideteksi oleh sensor ultrasonic jika suhu dibawah dari yang ditentukan maka kipas tidak dapat menyala, dikarenakan tidak sesuai dengan suhu .yang ditentukan.
D. Program Automatic Fan
#include <DHT.h>
#include <Ultrasonic.h>
#include <ESP8266WiFi.h>
#define DHTPIN D11 // Pin yang digunakan untuk menghubungkan
DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
#define echoPin D3
#define trigPin D7
#define relayPin D4
DHT dht(DHTPIN, DHTTYPE);
Ultrasonic ultrasonic(D7, D3); // Pin trigger dan echo untuk
HCSR04
void setup() {
// Inisialisasi serial untuk debugging
Serial.begin(9600);
dht.begin();
// Inisialisasi pin relay
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
// Baca nilai suhu dan kelembaban dari DHT22
float h = dht.readHumidity();
float t = dht.readTemperature();
// Baca nilai jarak dari HCSR04
float distance = ultrasonic.read();
//jarak
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
// Cek apakah jarak kurang dari 10 cm, jika ya maka aktifkan relay
// if (distance < 100) {
// digitalWrite(relayPin, LOW);
// } else {
// digitalWrite(relayPin, HIGH);
// }
if (t > 28.50){
if(distance<=100){
digitalWrite(relayPin, LOW); // relay aktif
} else { // selain itu maka
digitalWrite(relayPin, HIGH); // relay mati
}
}else{
digitalWrite(relayPin, HIGH);
}
// Cetak nilai suhu, kelembaban, dan jarak ke serial monitor
Serial.print("Suhu: ");
Serial.print(t);
Serial.print(" derajat Celcius, Kelembaban: ");
Serial.print(h);
Serial.print(" Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Tunggu selama 1 detik sebelum membaca nilai sensor kembali
delay(2000);
}
1 Komentar
Tes
BalasHapus