迅维网

查看: 2840|回复: 2
打印 上一主题 下一主题

diy zigbee模块制作温湿传感器

[复制链接]
跳转到指定楼层
1#
发表于 2015-12-19 11:37:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东聊城 来自 山东聊城

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Iemky 于 2015-12-19 11:37 编辑


diy zigbee模块制作温湿传感器


  闲来没事,自己总喜欢diy点小东西,之前做过的小灯、USB数据线等等,最近又做了个好东西,用zigbee模块制作温湿传感器,可以时时了解你家中的温湿度,制作方法简单。下面我给大家分享一下diy zigbee模块制作温湿传感器制作方法。希望动手能力强的朋友也来做做吧!

  diy zigbee模块制作温湿传感器需要的配件:



  diy zigbee模块制作温湿传感器方法/步骤:

  第一步:组合开发板和扩展板,连接等

  一、DHT11温湿度接线



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



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

  二、插入到开发板上





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

  第二部份:为ZIGBEE模块刷代码。

  一、插上SMARTRF04EB下载器(如果IAR 8.10不认的话,请看是否插正确/用笔戳RESET键)。







  RESET重启键。



2#
发表于 2015-12-19 11:43:13 | 只看该作者 来自: 山东聊城 来自 山东聊城
本帖最后由 Iemky 于 2015-12-19 11:51 编辑


diy zigbee模块制作温湿传感器



  二、源代码解说
  在网上下载ZIGBEE模块源代码。主要三个文件:SerialApp.c、DHT11.H、DHT11.C。

  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、采集代码部份

  if ( events & SERIALAPP_SAMPLE_EVT )
  {

  uint8 *sendBuf="SERIALAPP_SAMPLE_EVT\n";  
  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就刷代码成功了!



回复 支持 反对

使用道具 举报

3#
发表于 2015-12-19 11:54:43 | 只看该作者 来自: 山东聊城 来自 山东聊城
本帖最后由 Iemky 于 2015-12-19 11:56 编辑



diy zigbee模块制作温湿传感器



  diy zigbee模块制作温湿传感器方法/步骤:
  第三步:连接电脑串口调试

  一、插上CP2102 USB下载器



  对应好再插入

  DTR RX TX VCC CTS GND

  二、电脑打开串口软件



  三、手机打开控制端



  手机上就可以看到家里当那么这样,我们调试就成功了!

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





回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复