0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

科技观察员 来源:circuitdigest 作者:潘卡伊·卡特里 2022-11-23 16:51 次阅读

假设您坐在房间里感觉很冷,并且希望加热器自动打开,然后在室温升高一段时间后关闭,那么这个项目可以帮助您根据温度自动控制家用电器。在这里,我们正在根据温度使用Arduino控制家用AC设备。在这里,我们使用热敏电阻来读取温度。

在本教程中,我们将连接带有继电器的交流电器,并使用Arduino制作温控家庭自动化系统。它还在与电路连接的 16*2 LCD 显示屏上显示温度和设备状态。

所需材料

Arduino UNO

继电器 (5v)

16*2液晶显示屏

灯泡 (节能灯)

NTC热敏电阻 10k

连接线

电阻器(1k 和 10k 欧姆)

电位器 (10k)

电路图

pYYBAGN93w6AF96HAADLkQiTB_0934.png

这种基于温度的家庭自动化系统由各种组件组成,如Arduino板,LCD显示器,继电器和热敏电阻。工作主要取决于继电器和热敏电阻,随着温度升高,继电器将被打开,如果温度降至预设值以下,则继电器将被关闭。与继电器连接的家用电器也将相应地打开和关闭。在这里,我们使用CFL灯泡作为AC设备。整个触发过程和温度值设置由编程的Arduino板执行。它还为我们提供了有关每半秒的温度变化和LCD屏幕上的电器状态的详细信息

中继:

继电器是一种电磁开关,由小电流控制,用于打开和关闭相对较大的电流。这意味着通过施加小电流,我们可以打开继电器,从而允许更大的电流流动。继电器是使用小得多的直流电流控制交流(交流)设备的一个很好的例子。常用的继电器是单刀双掷(SPDT)继电器,它有五个端子如下:

poYBAGN93xCAZNY3AAApMLw0Zfk139.gif

当线圈没有施加电压时,COM(共)连接到NC(常闭触点)。当对线圈施加一些电压时,产生的电磁场会吸引电枢(连接到弹簧的杠杆),COM和NO(常开触点)被连接,从而允许更大的电流流动。继电器有多种额定值,这里我们使用 5V 工作电压继电器,允许 7A-250VAC 电流流动。

继电器通过使用由晶体管二极管和电阻组成的小型驱动器电路进行配置。晶体管用于放大电流,以便全电流(来自直流电源 – 9v 电池)可以流过线圈以使其完全通电。电阻用于为晶体管提供偏置。二极管用于防止晶体管关闭时的反向电流。每个电感线圈在突然关闭时都会产生相等且相反的电动势,这可能会对元件造成永久性损坏,因此必须使用二极管来防止反向电流。继电器模块在市场上很容易买到,其所有驱动器电路都在板上,或者您可以使用上述组件来创建它。这里我们使用了5V继电器模块

poYBAGN93xSAbNV5AABBp_h6x4w668.jpg

pYYBAGN93xaAXhCVAAArAvfftiE699.png

使用热敏电阻计算温度:

我们从分压器电路中得知:

poYBAGN93xmAYkLwAAAnOuQ4IuY898.png

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上。

poYBAGN93xuAaLiEAACf-uks90I313.jpg

当温度升高超过 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

    文章

    1122

    浏览量

    101411
  • 家用电器
    +关注

    关注

    2

    文章

    254

    浏览量

    29390
  • Arduino
    +关注

    关注

    187

    文章

    6456

    浏览量

    186490
收藏 人收藏

    评论

    相关推荐

    家用电的安全电压与安全温度

    谁知道家用电的安全电压与安全温度是多少啊 ,我想做一个控制家用电器的智能系统 ,利用温控传感器控制各个部件
    发表于 04-17 18:59

    基于家用电器中的无传感器AC电机控制

    速度电机驱动让制造商有机会使用更精密的控制程序,这将增强设备性能,提高总体能效。因此,配备了可变速度驱动和智能控制家用电器胜过了那些配备无控制
    发表于 10-31 17:21

    arduino控制温度/湿度的教程

    描述用arduino控制温度/湿度
    发表于 07-04 06:14

    利用AC5EC创建一个Arduino-Uno兼容板

    描述具有内置 512K EEPROM 和时钟 (AC5EC) 的 Arduino 克隆AC5EC板包含一个微控制器、两个 EEPROM 模块、一个时钟和日历模块、两个晶体振荡器以及几个
    发表于 07-07 06:39

    如何使用Arduino控制继电器模块蓝牙和红外遥控器控制家用电器

    描述Arduino控制继电器模块蓝牙和红外在这个 Arduino 项目中,我解释了如何使用 Arduino 控制继电器模块从智能手机蓝牙和红
    发表于 07-28 06:21

    使用Arduino和微控制器制作数字温度控制

    描述过零检测器和功率输出我的项目是关于使用 Arduino 或任何使用功率可控硅控制的微控制器制作数字温度控制。PCB
    发表于 08-26 07:50

    家用电器中的无传感器AC电机控制原理

    家用电器中的无传感器AC电机控制原理 全世界对水和能源保护,以及对新产品和服务的总体环保性的关注无疑影响着家用电器市场。实际监管标准和建议,无论是一国
    发表于 03-18 11:37 1101次阅读

    如何使用Arduino Manager从移动设备或平板电脑控制Arduino

    对于家庭自动化,Arduino的远程控制或监视,Arduino Manager可以完成所有工作。以下是使用它从移动设备或平板电脑控制
    的头像 发表于 12-05 08:44 4231次阅读

    Arduino温度传感器之继电器控制风扇

    一、介绍通过Arduino R3开放板读取LM35温度传感器参数,将参数转换成温度值,根据温度值开发板发出高电平,将继电器常开开关打开,使风
    发表于 12-03 20:51 14次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>温度</b>传感器之继电器<b class='flag-5'>控制</b>风扇

    arduino控制温度/湿度

    电子发烧友网站提供《用arduino控制温度/湿度.zip》资料免费下载
    发表于 07-06 09:08 0次下载
    用<b class='flag-5'>arduino</b><b class='flag-5'>控制</b><b class='flag-5'>温度</b>/湿度

    如何使用Amazon Echo dot控制家用电器

    Arduino UNO 和 ESP8266-01 Wi-Fi 模块将 Echo dot 扬声器与 AC 设备连接起来。在本教程之后,您将能够通过Alexa控制任何
    发表于 08-22 16:26 1550次阅读
    如何使用Amazon Echo dot<b class='flag-5'>控制</b><b class='flag-5'>家用</b>电器

    使用Arduino MKR1000构建温度传感设备

    电子发烧友网站提供《使用Arduino MKR1000构建温度传感设备.zip》资料免费下载
    发表于 12-14 11:42 0次下载
    使用<b class='flag-5'>Arduino</b> MKR1000构建<b class='flag-5'>温度</b>传感<b class='flag-5'>设备</b>

    使用arduino温度

    电子发烧友网站提供《使用arduino温度计.zip》资料免费下载
    发表于 02-07 14:10 0次下载
    使用<b class='flag-5'>arduino</b><b class='flag-5'>温度</b>计

    如何连接簧片开关来控制我们的家用设备

    电子发烧友网站提供《如何连接簧片开关来控制我们的家用设备.zip》资料免费下载
    发表于 02-08 15:13 0次下载
    如何连接簧片开关来<b class='flag-5'>控制</b>我们的<b class='flag-5'>家用</b><b class='flag-5'>设备</b>

    AC DC电源模块是否需要具有温度保护功能

    AC DC电源模块是一种常见的电力转换设备,可以将交流电转化为直流电。由于其应用广泛,例如家用电器、工业设备、通信设备等,其使用环境也非常复
    的头像 发表于 07-24 11:07 661次阅读