假設您坐在房間里感覺很冷,并且希望加熱器自動打開,然后在室溫升高一段時間后關閉,那么這個項目可以幫助您根據溫度自動控制家用電器。在這里,我們正在根據溫度使用Arduino控制家用AC設備。在這里,我們使用熱敏電阻來讀取溫度。
在本教程中,我們將連接帶有繼電器的交流電器,并使用Arduino制作溫控家庭自動化系統。它還在與電路連接的 16*2 LCD 顯示屏上顯示溫度和設備狀態。
所需材料
Arduino UNO
繼電器 (5v)
16*2液晶顯示屏
燈泡 (節能燈)
NTC熱敏電阻 10k
連接線
電阻器(1k 和 10k 歐姆)
電位器 (10k)
電路圖
這種基于溫度的家庭自動化系統由各種組件組成,如Arduino板,LCD顯示器,繼電器和熱敏電阻。工作主要取決于繼電器和熱敏電阻,隨著溫度升高,繼電器將被打開,如果溫度降至預設值以下,則繼電器將被關閉。與繼電器連接的家用電器也將相應地打開和關閉。在這里,我們使用CFL燈泡作為AC設備。整個觸發過程和溫度值設置由編程的Arduino板執行。它還為我們提供了有關每半秒的溫度變化和LCD屏幕上的電器狀態的詳細信息。
中繼:
繼電器是一種電磁開關,由小電流控制,用于打開和關閉相對較大的電流。這意味著通過施加小電流,我們可以打開繼電器,從而允許更大的電流流動。繼電器是使用小得多的直流電流控制交流(交流)設備的一個很好的例子。常用的繼電器是單刀雙擲(SPDT)繼電器,它有五個端子如下:
當線圈沒有施加電壓時,COM(共)連接到NC(常閉觸點)。當對線圈施加一些電壓時,產生的電磁場會吸引電樞(連接到彈簧的杠桿),COM和NO(常開觸點)被連接,從而允許更大的電流流動。繼電器有多種額定值,這里我們使用 5V 工作電壓繼電器,允許 7A-250VAC 電流流動。
繼電器通過使用由晶體管、二極管和電阻組成的小型驅動器電路進行配置。晶體管用于放大電流,以便全電流(來自直流電源 – 9v 電池)可以流過線圈以使其完全通電。電阻用于為晶體管提供偏置。二極管用于防止晶體管關閉時的反向電流。每個電感線圈在突然關閉時都會產生相等且相反的電動勢,這可能會對元件造成永久性損壞,因此必須使用二極管來防止反向電流。繼電器模塊在市場上很容易買到,其所有驅動器電路都在板上,或者您可以使用上述組件來創建它。這里我們使用了5V繼電器模塊
使用熱敏電阻計算溫度:
我們從分壓器電路中得知:
Vout= (Vin * Rt) / (R + Rt)
因此,Rt 的值將是:
Rt = R (Vin/Vout) – 1
這里Rt將是熱敏電阻(Rt)的電阻,R將是10k歐姆電阻。
該公式用于根據輸出電壓Vo的測量值計算熱敏電阻電阻。我們可以從 Arduino 引腳 A0 處的 ADC 值中獲取電壓輸出的值,如下所示的 Arduino 代碼。
根據熱敏電阻電阻計算溫度
在數學上,熱敏電阻電阻只能借助斯坦-哈特方程計算。
T = 1 / (A + B*ln(Rt) + C*ln (Rt)3 )
其中,A、B 和 C 是常數,Rt 是熱敏電阻電阻,ln 表示對數。
項目中使用的熱敏電阻的常量值為 A = 1.009249522×10?3,B= 2.378405444×10?4,C= 2.019202697×10?7.這些常數值可以通過輸入熱敏電阻在三種不同溫度下的三個電阻值從計算器中獲得。您可以直接從熱敏電阻的數據表中獲取這些常數值,也可以獲得不同溫度下的三個電阻值,并使用給定的計算器獲取常數值。
因此,為了計算溫度,我們只需要熱敏電阻電阻的值。從上面給出的計算中獲得 Rt 的值后,將值放入斯坦-哈特方程中,我們將得到以開爾文為單位的溫度值。由于輸出電壓的微小變化會導致溫度變化。
Arduino 代碼
本文末尾給出了此溫控家用電器的完整Arduino代碼。在這里,我們已經解釋了其中的幾個部分。
為了執行數學運算,我們使用頭文件“#include ”,LCD頭文件是“#include ”,“#define繼電器8”用于分配繼電器的輸入引腳。我們必須使用代碼分配LCD的引腳。
#include
#include "LiquidCrystal.h"
#define RELAY 8
LiquidCrystal lcd(6,7,5,4,3,2); // these are in format like LCD(Rs, EN, D4, D5, D6, D7)
為了在啟動時設置繼電器(作為輸出)和LCD,我們必須在void設置部分編寫代碼
Void setup(){
lcd.begin(16,2);
lcd.clear();
pinMode(RELAY, OUTPUT);
}
為了使用熱敏電阻的電阻通過斯坦-哈特方程計算溫度,我們在代碼中執行一些簡單的數學方程,如上面的計算中所述:
float a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07;
float T, logRt, Tf, Tc;
float Thermistor(int Vo) {
logRt = log(10000.0*((1024.0/Vo-1)));
T = (1.0 / (a + b*logRt + c* logRt * logRt * logRt)); // We get the temperature value in Kelvin from this Stein-Hart equation
Tc = T - 273.15; // Convert Kelvin to Celsius
Tf = (Tc * 1.8) + 32.0; // Convert Kelvin to Fahrenheit
return T;
}
在下面的代碼中,功能熱敏電阻從Arduino的模擬引腳讀取值,并通過執行數學運算來打印溫度值
lcd.print((Thermistor(analogRead(0))));
該值由熱敏電阻函數獲取,然后開始打印計算
float Thermistor(int Vo)
我們必須根據溫度編寫打開和關閉燈的條件的代碼,因為我們設置了溫度值,例如如果溫度升高超過 28 攝氏度,燈將打開,如果燈保持關閉。因此,每當溫度高于 28 度時,我們需要使繼電器引腳 (PIN 8) 變高以使繼電器模塊打開。當溫度低于 28 度時,我們需要將繼電器引腳調低以關閉繼電器模塊。
if (Tc > 28) digitalWrite(RELAY, HIGH),lcd.setCursor(0,1),lcd.print("Light status:ON "),delay(500); else
if (Tc < 28) digitalWrite(RELAY, LOW),lcd.setCursor(0,1),lcd.print("Light status:OFF"),delay(500); ?
溫控家庭自動化系統工作原理:
要為 Arduino 供電,您可以通過 USB 將其供電到筆記本電腦或連接 12v 適配器。LCD與Arduino接口以顯示溫度值,熱敏電阻和繼電器根據電路圖連接。模擬引腳(A0)用于每時每刻檢查熱敏電阻引腳的電壓,在通過Arduino代碼使用Stein-Hart方程進行計算后,我們能夠獲得溫度并將其以攝氏度和華氏度顯示在LCD上。
當溫度升高超過 28 攝氏度時,Arduino 通過使引腳 8 升高(繼電器模塊連接的位置)使繼電器模塊打開,當溫度低于 28 度時,Arduino 通過使引腳低關閉繼電器模塊。CFL燈泡也將根據繼電器模塊打開和關閉。
#include
#include "LiquidCrystal.h"
#define RELAY 8
LiquidCrystal lcd(6,7,5,4,3,2);
float A = 1.009249522e-03, B = 2.378405444e-04, C = 2.019202697e-07;
float T,logRt,Tf,Tc;
float Thermistor(int Vo) {
logRt = log(10000.0*((1024.0/Vo-1)));
T = (1.0 / (A + B*logRt + C*logRt*logRt*logRt)); // We get the temperature value in Kelvin from this Stein-Hart equation
Tc = T - 273.15; // Convert Kelvin to Celcius
Tf = (T * 1.8) + 32.0; // Convert Kelvin to Fahrenheit
return T;
}
void setup() {
lcd.begin(16,2);
lcd.clear();
pinMode(RELAY, OUTPUT);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Temperature:");
lcd.print(int(Thermistor(analogRead(0))));
lcd.print("C ");
delay(500); // wait 0.5 seconds before sampling temperature again
if (Tc > 28) digitalWrite(RELAY, HIGH),lcd.setCursor(0,1),lcd.print("Light status:ON "),delay(500);
else if (Tc < 28) digitalWrite(RELAY, LOW),lcd.setCursor(0,1),lcd.print("Light status:OFF"),delay(500);?
}
-
熱敏電阻
+關注
關注
14文章
1180瀏覽量
101764 -
家用電器
+關注
關注
2文章
267瀏覽量
29566 -
Arduino
+關注
關注
188文章
6477瀏覽量
188060
發布評論請先 登錄
相關推薦
基于家用電器中的無傳感器AC電機控制
利用AC5EC創建一個Arduino-Uno兼容板
如何使用Arduino控制繼電器模塊藍牙和紅外遙控器控制家用電器
家用電器中的無傳感器AC電機控制原理
如何使用Arduino Manager從移動設備或平板電腦控制Arduino
Arduino溫度傳感器之繼電器控制風扇
![<b class='flag-5'>Arduino</b><b class='flag-5'>溫度</b>傳感器之繼電器<b class='flag-5'>控制</b>風扇](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用Amazon Echo dot控制家用電器
![如何使用Amazon Echo dot<b class='flag-5'>控制</b><b class='flag-5'>家用</b>電器](https://file.elecfans.com/web2/M00/64/17/pYYBAGMDPOiAUh3zAAMYO8FdPHY671.png)
評論