“温控空调”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
Zhangfengfeng(讨论 | 贡献) (→设备) |
||
(未显示2个用户的5个中间版本) | |||
第20行: | 第20行: | ||
| [[Microduino-Temp&Hum/zh]]||1||温湿度传感器 | | [[Microduino-Temp&Hum/zh]]||1||温湿度传感器 | ||
|- | |- | ||
− | | [[ | + | | [[Sensor-IR Sensor/zh]]||1||红外发射传感器 |
|} | |} | ||
*其他设备 | *其他设备 | ||
**USB数据线 | **USB数据线 | ||
− | [[File:_temp_air.jpg|600px|center | + | [[File:_temp_air.jpg|600px|center]] |
==搭建硬件== | ==搭建硬件== | ||
*Setup 1:将红外发射传感器通过转接板接到Sensorhub的D6引脚上,温湿度传感器接到Sensorhub的IIC引脚上。 | *Setup 1:将红外发射传感器通过转接板接到Sensorhub的D6引脚上,温湿度传感器接到Sensorhub的IIC引脚上。 | ||
− | [[File:temp_ir_sensor.jpg|600px|center | + | [[File:temp_ir_sensor.jpg|600px|center]] |
**Setup 2:将所有模块叠堆,通过USB线连接到电脑。 | **Setup 2:将所有模块叠堆,通过USB线连接到电脑。 | ||
− | [[File: | + | [[File:CoreUSB1_Ble_Sensorhub.jpg|600px|center]] |
==软件调试== | ==软件调试== | ||
第60行: | 第60行: | ||
{ | { | ||
irsend.sendNEC(POWER_ON,32); | irsend.sendNEC(POWER_ON,32); | ||
− | + | // irsend.sendCode(0x00000000,16); | |
runTime = millis(); | runTime = millis(); | ||
} | } | ||
第66行: | 第66行: | ||
{ | { | ||
irsend.sendNEC(0xC1602680,32); | irsend.sendNEC(0xC1602680,32); | ||
− | + | // irsend.sendCode(0x00000000,16); | |
runTime = millis(); | runTime = millis(); | ||
} | } |
2017年5月31日 (三) 08:23的最新版本
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时,空调关闭,可以通过检测温度值来控制空调的其他功能。 视频 |