#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2 // DHT22 সেন্সর পিন
#define DHTTYPE DHT22 // DHT22 সেন্সর টাইপ
#define HEATER_PIN 7 // হিটার কন্ট্রোল পিন
#define FAN_PIN 8 // ফ্যান কন্ট্রোল পিন
#define TEMP_MIN 30 // ন্যূনতম তাপমাত্রা (ডিগ্রি সেলসিয়াস)
#define TEMP_MAX 35 // সর্বোচ্চ তাপমাত্রা (ডিগ্রি সেলসিয়াস)
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 20, 4); // I2C ঠিকানা এবং LCD সাইজ (20x4)
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(); // LCD ইনিশিয়ালাইজ করুন
lcd.backlight(); // LCD ব্যাকলাইট চালু করুন
pinMode(HEATER_PIN, OUTPUT);
pinMode(FAN_PIN, OUTPUT);
digitalWrite(HEATER_PIN, LOW);
digitalWrite(FAN_PIN, LOW);
lcd.setCursor(0, 0);
lcd.print("Chicken Coop Temp");
lcd.setCursor(0, 1);
lcd.print("Control System");
delay(2000);
lcd.clear();
}
void loop() {
float temperature = dht.readTemperature(); // তাপমাত্রা পড়ুন
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
lcd.setCursor(0, 0);
lcd.print("Sensor Error!");
return;
}
// LCD তে তাপমাত্রা এবং স্ট্যাটাস দেখান
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
// তাপমাত্রা নিয়ন্ত্রণ
if (temperature < TEMP_MIN) {
digitalWrite(HEATER_PIN, HIGH); // হিটার চালু
digitalWrite(FAN_PIN, LOW); // ফ্যান বন্ধ
lcd.setCursor(0, 1);
lcd.print("Heater: ON ");
lcd.setCursor(0, 2);
lcd.print("Fan: OFF ");
} else if (temperature > TEMP_MAX) {
digitalWrite(HEATER_PIN, LOW); // হিটার বন্ধ
digitalWrite(FAN_PIN, HIGH); // ফ্যান চালু
lcd.setCursor(0, 1);
lcd.print("Heater: OFF ");
lcd.setCursor(0, 2);
lcd.print("Fan: ON ");
} else {
digitalWrite(HEATER_PIN, LOW); // হিটার বন্ধ
digitalWrite(FAN_PIN, LOW); // ফ্যান বন্ধ
lcd.setCursor(0, 1);
lcd.print("Heater: OFF ");
lcd.setCursor(0, 2);
lcd.print("Fan: OFF ");
}
lcd.setCursor(0, 3);
lcd.print("Status: Normal");
delay(2000); // প্রতি 2 সেকেন্ডে তাপমাত্রা চেক করুন
}