一、工具
1、Arduino UNO
DIY智能温湿度计之升级篇2、DHT11温湿度传感器
3、HC-05蓝牙模块
4、Android手机
5、蓝牙串口助手
6、红色LED和绿色LED
DIY智能温湿度计之升级篇7、蜂鸣器
DIY智能温湿度计之升级篇二、接线
1、蜂鸣器正极接引脚8,负极接arduino的GND
2、红色LED和绿色LED正极分别接引脚13和12,负极接arduino的GND(正极为LED较长引脚一端)
3、DHT11的out、VCC、GND分别接arduino的引脚4、5V、GND
4、hc-05的VCC、GND、RXD、TXD分别接arduino的5V、GND、TXD、RXD
三、编程
1、功能
可以通过蓝牙模块将数据传递到手机APP的同时系统可以自行工作,若温度大于一定值红灯亮,蜂鸣器报警;若温度小于一定值绿灯亮,蜂鸣器报警。
2代码
#include<dht.h>
dht DHT;
int buzzer=8;//设置控制蜂鸣器的数字IO脚
int rled = 13;//设置红色LED的数字IO脚
int gled = 12;//设置绿色LED的数字IO脚
#define DHT11_PIN 4//定义dht11输出端的数字IO脚
void setup()
{
Serial.begin(9600);
//设置数字IO脚模式
pinMode(buzzer,OUTPUT);
pinMode(rled, OUTPUT);
pinMode(gled, OUTPUT);
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
int t=DHT.temperature;// t为此时温度值
// Serial.println(t);//用于调试
// 当温度大于20摄氏度时红灯亮,蜂鸣器报警(温度值可以自行设定)
if(t>20){
digitalWrite(rled, HIGH); //
delay(1000);
fmq();
delay(1000);
}
// 当温度小于18摄氏度时红灯亮,蜂鸣器报警(温度值可以自行设定)
else if(t<18){
digitalWrite(gled, HIGH); //
delay(1000);
fmq();
delay(1000);
}
//正常情况下两个LED灯都不亮
else{
digitalWrite(rled, LOW);
digitalWrite(gled, LOW);
}
//蓝牙控制
char val;
val = Serial.read();
if(val!=-1)
{
switch(val)
{
case 'T':
wsd();
delay(50);
break;
}
}
}
void wsd()
{
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
Serial.print(DHT.humidity,1);
Serial.print(",\t");
Serial.println(DHT.temperature,1);
}
void fmq()
{
unsigned char i;//定义变量
for(i=0;i<80;i++)//辒出一个频率的声音
{
digitalWrite(buzzer,HIGH);//发声音
delay(1);//延时1ms
digitalWrite(buzzer,LOW);//不发声音
delay(1);//延时ms
}
}
四、总结
不知不觉已经更新三期了,从一开始的单纯获取传感器消息到最后不断完善整个系统,智能温湿度计也越来越智能,当然它还有很多的提升空间,比如可以发送短信提醒,通过网络实现远程控制等等。
当然,系统还有很多不足之处:不美观、没有使用面包板接线有点乱、程序没有引入中断不同功能之前可能会产生冲突等等。
总的来说,整个系统有可取之处也有不足之处,但是在这里智能温湿度计模块的内容就不继续更新了,感兴趣的朋友可以自己上手一块Arduino继续完善。
其实文章的重点不在于简简单单介绍整个智能温湿度计系统,而是希望更多的人了解并走进Arduino的世界。
欢迎大家加入开源硬件的世界。同时也欢迎大家关注我的下个系列文章《手把手教你打造智能寝室》
网友评论