“温控空调”的版本间的差异
(→设备) |
(→搭建硬件) |
||
第30行: | 第30行: | ||
[[File:temp_ir_sensor.jpg|600px|center|thumb]] | [[File:temp_ir_sensor.jpg|600px|center|thumb]] | ||
**Setup 2:将所有模块叠堆,通过USB线连接到电脑。 | **Setup 2:将所有模块叠堆,通过USB线连接到电脑。 | ||
− | [[File:CoreUSB_Ble_Sensorhub.jpg|600px|center | + | [[File:CoreUSB_Ble_Sensorhub.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时,空调关闭,可以通过检测温度值来控制空调的其他功能。 视频 |