如何根据温度使用Arduino控制家用AC设备

假设您坐在房间里感觉很冷,并且希望加热器自动打开,然后在室温升高一段时间后关闭,那么这个项目可以帮助您根据温度自动控制家用电器。在这里,我们正在根据温度使用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, 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);
}

迎接4K视频盛宴,MHL3.0凶猛来袭
H1出货量约为6GWh 户用储能竞速升级
比小米MIX惊艳!这或许是最期待2款全面屏手机
北京“1+5”政策构建新业态新模式
FP7209-双色温补光棒
如何根据温度使用Arduino控制家用AC设备
63亿美元减记!东芝核电业务亏损严重 董事长引咎辞职
PowerPCB手工布线与自动布线的设计规则说明
亚马逊云科技re:Inforce 2023全球大会即将开启
量旋科技努力在超导量子技术上取得突破 明年或将发布的首台超导量子计算机
导电滑环维护的注意事项都有哪些
LED灯具设计关键分析
谷歌成立AI专项风投项目;百度发力自动驾驶,人工智能成新趋势
示波器的信号完整性意义是怎样的
美国持续对中国发展半导体产业祭出新限制
利用UC3907设计的均流电路
小米米家智能门锁正式开售 轻松解决小黑盒和假指纹
威盛电子发布嵌入式新模块,助力机器人的发展
保隆科技荣获中国智能电动汽车“核心零部件100强”
ups与eps有什么区别