加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

Arduino开源智能家居02《温湿传感器》什么样温湿度才适居

2014/07/15
7
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

DIY这前先科普一下:最宜人的室内温湿度是:

1、冬天温度为18至25℃,湿度为30%至80%;
2、夏天温度为23至28℃,湿度为30%至60%,在此范围内感到舒适的人占95%以上。
3、在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18℃,湿度应是40%至60%,此时人的精神状态好,思维最敏捷。

OK,今天就来教大家DIY《温湿传感器》,时时了解你家中的温湿度,看看是否合适居住吧!

看看我们需要的配件

1、zigbee开发板 30元
2、zigbee模块 45元
3、zigbee扩展板 15元
4、DHT11温湿传感器 8元

本帖隐藏的内容

一共是98元,时时监控你家中、室外、田地的温湿度,须与《网关》配合使用!
网关的两个下载器,都可以给它供电!切记:只能供3.3V否则烧!

第一步:组合开发板和扩展板,连接等一、DHT11温湿度接线

扩展板仿着面包板做的,记得DHT11的第2脚针要连P0.6。


连好后的效果,加入一个LED是为了方便查看是否正常(闪亮说明正常)。

二、插入到开发板上


注意:拿个东西隔离zigbee模块,如果压到上面的脚针可能会短路。

第二部份:为ZIGBEE模块刷代码。
一、插上SMARTRF04EB下载器(如果IAR 8.10不认的话,请看是否插正确/用笔戳RESET键)。


RESET重启键。

二、源代码解说

ZIGBEE模块源代码点这里下载:
https://pan.baidu.com/s/1nMd6Q

主要三个文件:SerialApp.c、DHT11.H、DHT11.C。(如果对源码结构不懂,请看这篇文章《Zigbee自组网
SerialApp.c是实现层,只要我们在这里调用相关的功能就可以。
DHT11.H、DHT11.C就是获取温湿度的类啦(通过小修改还可以用在其它单片机上哦)!

1、将DHT11.H、DHT11.C导入项目(这步源代码已经存在,可以不用操作)

然后直接“选择”再确定,就可以添加进来了!

2、在SerialApp.c引用DHT11.h。

添加:#include "DHT11.h"

3、设置获取温湿度间隔
#define INTERVAL 10000 //1000=1秒,获取温湿度间隔,建议大于10秒以上(采集越小耗能就越多)

4、在SerialApp_ProcessEvent启用:
osal_start_timerEx( SerialApp_TaskID, SERIALAPP_SAMPLE_EVT, INTERVAL); //定时采样数据(这里就是启动)

5、采集代码部份

[C] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

if ( events & SERIALAPP_SAMPLE_EVT )

{

uint8 *sendBuf="SERIALAPP_SAMPLE_EVTn";

HalUARTWrite(SERIAL_APP_PORT,sendBuf,osal_strlen(sendBuf));

osal_memset(SerialApp_TxBuf, 0, SERIAL_APP_TX_MAX);

//adc = GetAdc(); //设备自身湿度,可以不用

uint8 W[3]={0};//温度

uint8 S[3]={0};//湿度

DHT11_TEST();//获取温湿度

W[0]=wendu_shi+48;//转为字符

W[1]=wendu_ge+48;//转为字符

S[0]=shidu_shi+48;//转为字符

S[1]=shidu_ge+48;//转为字符

if(S[0]=='0' && S[1]=='0')

{

//如果获取不到则不处理

}

else

{

//将获取到的温湿度传到网关

uint8 SerialApp_Tx[SERIAL_APP_TX_MAX+1]={0};//声明发送字符串

sprintf(SerialApp_Tx, "{ck001002%s.%s}", S, W);//温湿度写入字符串 //%4.3fV DEVID, adc //%2d.%2d

HalUARTWrite(SERIAL_APP_PORT,SerialApp_Tx,osal_strlen(SerialApp_Tx));//在串口打印,方便我们自己调式

//使用无线发送到网关

SerialApp_TxAddr.addrMode =(afAddrMode_t) Addr16Bit;

SerialApp_TxAddr.addr.shortAddr = 0xFFFF;//0x0000

SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;

AF_DataRequest(&SerialApp_TxAddr, (endPointDesc_t *)&SerialApp_epDesc,

SERIALAPP_CLUSTERID1, osal_strlen(SerialApp_Tx), SerialApp_Tx, &SerialApp_MsgID, 0, AF_DEFAULT_RADIUS);

//发送完毕

}

HAL_TOGGLE_LED1();//点亮或关闭LED1 P1.0针脚

osal_start_timerEx( SerialApp_TaskID, SERIALAPP_SAMPLE_EVT, INTERVAL);//等待间隔时间后,再使用定时器运行SERIALAPP_SAMPLE_EVT事件!

return ( events ^ SERIALAPP_SAMPLE_EVT );

}

6、点击编译

上面完成后,看到有绿色的调试,按F5就刷代码成功了!

第三步:连接电脑串口调试一、插上CP2102 USB下载器

对应好再插入
DTR RX TX VCC CTS GND

二、电脑打开串口软件

三、手机打开https://m.znck007.com
在《智能创客手机控制端》里,家中环境-》家中温度,空气湿度,就可以看到当前的温湿度了!

那么这样,我们调试就成功了!

如果想让他单独运行,可以用CP2102再加上USB充电器供电(可为手机充电的)

切记:其它方式供电只能为v3.3,否则可能会烧坏zigbee模块!

  • sz1规格书、原理图.rar
  • 配件清单.jpg
  • Arduino开源智能家居02《温湿传感器》.pdf

相关推荐

电子产业图谱