#include <DHT.h>
#include <HX711.h>
#include <ESP32Servo.h> // Pastikan ini
// Definisikan pin
#define DHTPIN 18 // Pin DHT Sensor
#define DHTTYPE DHT22 // Tipe DHT (DHT11 atau DHT22)
#define PIRPIN 19 // Pin Sensor PIR
#define LOADCELL_DOUT_PIN 22 // Pin DOUT Load Cell
#define LOADCELL_SCK_PIN 23 // Pin SCK Load Cell
#define SERVOPIN 21 // Pin Servo Motor
DHT dht(DHTPIN, DHTTYPE);
HX711 scale;
Servo myServo; // Gunakan Servo jika ESP32Servo tidak dikenali
void setup() {
Serial.begin(115200);
dht.begin();
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
myServo.attach(SERVOPIN);
pinMode(PIRPIN, INPUT);
}
void loop() {
// Membaca data dari DHT
float h = dht.readHumidity();
float t = dht.readTemperature();
// Membaca berat pakan
float weight = scale.get_units(10); // Rata-rata dari 10 pembacaan
// Mendeteksi gerakan
int motion = digitalRead(PIRPIN);
// Logika pengeluaran pakan
if (motion == HIGH && weight < 5.0) { // Jika ada sapi dan berat pakan < 5 kg
myServo.write(90); // Buka servo
delay(1000); // Waktu buka servo
myServo.write(0); // Tutup servo
delay(1000);
}
// Menampilkan data
Serial.print("Suhu: ");
Serial.print(t);
Serial.print(" °C, Kelembapan: ");
Serial.print(h);
Serial.print(" %, Berat: ");
Serial.print(weight);
Serial.print(" kg, Gerakan: ");
Serial.println(motion ? "Ada" : "Tidak Ada");
delay(2000); // Delay 2 detik sebelum pembacaan berikutnya
}