Giới thiệu sản phẩm

#include <DHT.h>              // Thư viện cảm biến DHT22
#include <Servo.h>            // Thư viện động cơ Servo SG90
#include <Wire.h>             // Thư viện giao tiếp I2C (có sẵn)
#include <LiquidCrystal_I2C.h> // Thư viện màn hình LCD I2C

// Cấu hình chân kết nối
const int DHTPIN = 2;       
const int DHTTYPE = DHT22; //DHT11 
const int SERVOPIN = 9;     

//Khởi tạo
DHT dht(DHTPIN, DHT22);   
Servo myServo;              
LiquidCrystal_I2C lcd(0x27, 16, 2); 

void setup() {
  Serial.begin(9600);       
  dht.begin();              
  myServo.attach(SERVOPIN); 
  
  // Khởi động màn hình LCD
  lcd.init();
  lcd.backlight(); // Bật đèn nền LCD
  
  // Hiển thị lời chào lúc khởi động
  lcd.setCursor(0, 0); // Đặt con trỏ tại Cột 0, Hàng 0
  lcd.print("He thong DHT22");
  lcd.setCursor(0, 1); // Đặt con trỏ tại Cột 0, Hàng 1
  lcd.print("Dang khoi dong..");
  
  myServo.write(0);         
  delay(2000); // Chờ 2 giây để ổn định hệ thống
  lcd.clear(); // Xóa màn hình
}

void loop() {
  // Chờ 2 giây giữa các lần đọc dữ liệu
  delay(2000); 

  float temperature = dht.readTemperature();

  // Kiểm tra lỗi cảm biến
  if (isnan(temperature)) {
    Serial.println("Loi doc DHT22!");
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Loi cam bien!");
    return;
  }

  // 1. In dữ liệu ra Serial Monitor để kiểm tra trên máy tính
  Serial.print("Nhiet do: ");
  Serial.print(temperature);
  Serial.println(" *C");

  // 2. Hiển thị nhiệt độ lên Hàng 1 của LCD
  lcd.setCursor(0, 0);
  lcd.print("Nhiet do: ");
  lcd.print(temperature, 1); // Lấy 1 chữ số thập phân (VD: 25.4)
  // Tạo ký tự độ C (xDF là mã Hex của dấu độ trên LCD)
  lcd.write(0xDF); 
  lcd.print("C  "); // Khoảng trắng dư để xóa ký tự thừa trước đó nếu có

  // 3. Logic điều khiển Motor SG90 và hiển thị trạng thái lên Hàng 2 của LCD
  lcd.setCursor(0, 1);
  if (temperature > 20.0) {
    myServo.write(90);  
    lcd.print("Servo: Mo (90)  ");
    Serial.println("Servo xoay 90 do.");
  } else {
    myServo.write(0);   
    lcd.print("Servo: Dong (0) ");
    Serial.println("Servo quay ve 0 do.");
  }
}

Hình ảnh sản phẩm
Hãy bình luận để nhặt 100 thóc nhé

Đăng nhập để tham gia bình luận

Thông tin tác giả

Địa vị cộng đồng: Nông dân

Sản phẩm liên quan

    Không có sản phẩm nào

Bạn muốn thử làm game không?