“温控空调”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
(→设备) |
||
第24行: | 第24行: | ||
*其他设备 | *其他设备 | ||
**USB数据线 | **USB数据线 | ||
− | [[File:_temp_air.jpg|600px|center | + | [[File:_temp_air.jpg|600px|center]] |
==搭建硬件== | ==搭建硬件== |
2015年11月19日 (四) 08:40的版本
Language | English |
---|
目的监测环境温度来控制空调工作,当温度升高到一定温度时启动空调,当温度下降到一定温度时关闭空调。 原理利用温湿度传感器AM2321检测室温,然后红外发射传感器通过匹配编码控制空调的启动和停止。 设备
搭建硬件
软件调试
#include <Wire.h>
#include <AM2321.h>
#include <IRremote.h>
IRsend irsend;
AM2321 am2321;
#define POWER_ON 0xC1602680
#define TEMP_MAX 30
#define TEMP_MIN 25
float temp = 0; //
unsigned long runTime = 0;
void setup()
{
}
void loop() {
am2321.read();
temp = am2321.temperature/10.0;
if(millis()>runTime+180000)
{
if(temp > TEMP_MAX)
{
irsend.sendNEC(POWER_ON,32);
irsend.sendCode(0x00000000,16);
runTime = millis();
}
else if(temp <TEMP_MIN)
{
irsend.sendNEC(0xC1602680,32);
irsend.sendCode(0x00000000,16);
runTime = millis();
}
}
delay(1000);
}
IRsend irsend; //红外发射
AM2321 am2321; //温湿度传感器AM2321
#define POWER_ON 0xC1602680 //空调开关机编码
float temp = 0; //温度值
unsigned long runTime = 0; //空调开关机时间
am2321.read(); //获得当前温度值
temp = am2321.temperature/10.0;
if(millis()>runTime+180000) //控制空调间隔时间大于180s
{
if(temp > 30) //温度大于30度,开启空调
{
irsend.sendNEC(0xC1602680,32);
irsend.sendCode(0x00000000,16);
runTime = millis();
}
else if(temp <25) //温度小于30度,关闭空调
{
irsend.sendNEC(0xC1602680,32);
irsend.sendCode(0x00000000,16);
runTime = millis();
}
}
delay(1000);
结果当温度大于30度时,空调启动,温度小与25时,空调关闭,可以通过检测温度值来控制空调的其他功能。 视频 |