//  Nama   :Muhammad Hamzamir
//  Nim    :2204005010001
//  Prodi  :D3 Teknik Listrik
//  Project:Kontrol Otomasi Servo Berdasarkan Suhu Menggunakan Arduino

#include <Servo.h> //Komponen Motor Servo
#include <DHT.h> // Komponen Sensor Suhu(DHT22)
#define DHTPIN 2 // Pin data sensor suhu
#define DHTTYPE DHT22 // Tipe sensor (DHT22)

DHT dht(DHTPIN, DHTTYPE);
Servo servo;

void setup() {
  dht.begin();
  servo.attach(9); // Menghubungkan servo ke pin 9
}

void loop() {
   float temperature = dht.readTemperature();// Membaca suhu dan kelembaban dari sensor
   if (!isnan(temperature))// Mengatur kecepatan servo berdasarkan suhu
{
    int servoSpeed = map(temperature, 20, 30, 75 , 100); // Contoh pemetaan suhu
    servo.write(0); // Menggerakkan servo ke posisi awal
    delay(1000);    // Waktu untuk memberikan waktu servo kembali ke posisi awal
    servo.write(90);// Menggerakkan servo ke posisi tengah
    delay(1000); // Waktu untuk memberikan waktu servo mencapai posisi tengah
    servo.write(180); // Menggerakkan servo ke posisi akhir/maxsimal
    delay(1000); // Waktu untuk memberikan waktu servo mencapai posisi akhir/maxsimal
    servo.write(90); // Menggerakkan servo kembali ke posisi tengah
    delay(500); // Waktu  untuk memberikan waktu servo kembali ke posisi tengah
    servo.write(0); // Menggerakkan servo ke posisi Awal
    delay(500); // Waktu untuk memberikan waktu servo kembali ke posisi Awal
    delay(servoSpeed); // Memberikan waktu tunda sesuai dengan kecepatan yang diatur  
  }
  }