- UID
- 373967
- 帖子
- 8812
- 主題
- 2609
- 精華
- 0
- 積分
- 993
- 楓幣
- 4446
- 威望
- 970
- 存款
- 30000
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 50
- 在線時間
- 452 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-10
|
所需零件:
Atmel ATmega8A-PU 微控制器
DHT11 溫濕度傳感器
16x2 LCD 液晶顯示器
10k 電位器
繼電器模組
雙極性電容(220uF)
電阻器(220歐姆、10K歐姆)
三極繼電器
DC 風扇
連結腳位:
DHT11 溫濕度傳感器:VCC 至 VCC、GND 至 GND、Data 至 PB0
16x2 LCD 液晶顯示器:VSS 至 GND、VDD 至 VCC、VO 至 10k 電位器、RS 至 PB1、RW 至 GND、E 至 PB2、D4 至 PB3、D5 至 PB4、D6 至 PB5、D7 至 PB6
繼電器模組:IN 至 PD2、VCC 至 VCC、GND 至 GND
三極繼電器:COM 至 GND、NO 至 DC 風扇、NC 至 繼電器模組的 NO
程式碼:
#include <dht.h>
#include <LiquidCrystal.h>
#define DHT_PIN 0
#define RELAY_PIN 2
#define FAN_PIN 3
#define TEMP_THRESHOLD 25.0
dht DHT;
LiquidCrystal lcd(1, 2, 3, 4, 5, 6);
void setup() {
pinMode(RELAY_PIN, OUTPUT);
pinMode(FAN_PIN, OUTPUT);
lcd.begin(16, 2);
}
void loop() {
float temp;
float hum;
int chk = DHT.read11(DHT_PIN);
temp = DHT.temperature;
hum = DHT.humidity;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp:");
lcd.print(temp);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humidity:");
lcd.print(hum);
lcd.print("%");
if (temp > TEMP_THRESHOLD) {
digitalWrite(RELAY_PIN, HIGH);
digitalWrite(FAN_PIN, HIGH);
lcd.setCursor(0, 1);
lcd.print("Fan is ON ");
} else {
digitalWrite(RELAY_PIN, LOW);
digitalWrite(FAN_PIN, LOW);
lcd.setCursor(0, 1);
lcd.print("Fan is OFF");
}
delay(2000);
} |
|