ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:20.27KB ,
资源ID:20555338      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20555338.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温湿度采集学习心得Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温湿度采集学习心得Word格式文档下载.docx

1、加关注错误!超链接引用无效。|错误!温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博|错误!豪醒的博客不只是一个人的旅程导航首页日志相册博友关于我zigbee学习心得2协议栈任务Fork-VFork一张图说明区别zigbee学习心得实例分析(温湿度采集及控制)20XX-08-0516:58:58|分类:zigbee|标签:cc2430zigbee温湿度cc2430|字号大中小订阅就像这样,先添加于温湿度传感器相关的.c和.h文件,还有串口相关的,c和.h也就是写好可以给另外的文件调用的函数了。我这里面只用到了voidwenshi_receive(

2、void);一个函数,然后将函数和其中所用到的两个变量Th,Rh,分别代表温度和湿度设为全局变量。先打开simplesensor.c这个小工程,用官方程序调试的时候可以看出,也就是不断地发数据到协调器,自然就要找到与发数据相关的函数:那其实发送之前要先与协调器绑定吧,好比打电话也要先拨通电话吧。找到与绑定相关的函数:voidzb_bindconfirm(uint16commandId,uint8status)if(status=Zb_success)/startreportingsensorvaluesmyApp_startReporting();else/continuetodiscover

3、acollectorosal_start_timerex(sapi_TaskID,mY_FInD_coLLecToR_eVT,mybindRetryDelay);直接点,若绑定成功,就会返回一个Zb_success的状态,此时方会调用myApp_startReporting();函数,否则就继续搜索节点。对于myApp_startReporting();:voidmyApp_startReporting(void)osal_start_timerex(sapi_TaskID,mY_RepoRT_Temp_eVT,myTempReportperiod);osal_start_timerex(sa

4、pi_TaskID,mY_RepoRT_bATT_eVT,mybatterycheckperiod);halLedset(hAL_LeD_1,hAL_LeD_moDe_on);直观地从函数看上去也就相当于添加一个周期性的任务;从上一篇文章讲过这个TaskID的问题,也就添加一个任务嘛,回到整个工程的主函数,看看怎么回事,这里面就不详细地列出来了,有需要的读者可以一探究竟。过程是这样的:主函数:Zsegintmain(void)/*系统初始化*/osal_init_system();osalInitTasks();/*任务初始化*/sApI_Init(taskID);/*用户自定义任务函数,他的

5、任务ID为taskID*/?/*其中的一个等式*/sapi_TaskID=task_id;也就是说可以通过osal_start_timerex添加一个周期性的任务,其周期为xxxperiod,比如片内温度采集:myTempReportperiod,电压测量mybatterycheckperiod,那xxxeVT,也就相当于一个任务Task里面一个独立的事件event了。那么我们也可以这么添加自己的事件:再看看xxxeVT和xxxperiod的定义:/Applicationosaleventidentifiers/bitmaskofevents(from0x0000to0x00FF)#defin

6、emY_sTART_eVT0x0001#definemY_RepoRT_Temp_eVT0x0002#definemY_RepoRT_bATT_eVT0x0004#definemY_FInD_coLLecToR_eVT0x0008自己跟着做:#definemY_RepoRT_wenDu_eVT0x0010#definemY_RepoRT_shIDu_eVT0x0020这里说一下为什么要这么做因为等下调用任务处理函数zb_handleosalevent();的时候判断语句是这种形式的:if(event/millisecondsstaticuint16myTempReportperiod=5000

7、;/milliseconds添加:staticuint16mywenDuReportperiod=6000;staticuint16myshIDuReportperiod=7000;这样子(这里的周期是毫秒级的,比如5000代表的就是5秒传一次mcu的温度)再回到刚才的myApp_startReporting(void)添加:osal_start_timerex(sapi_TaskID,mY_wenDu_bATT_eVT,mywenDuReportperiod);osal_start_timerex(sapi_TaskID,mY_shIDu_bATT_eVT,myshIDuReportperi

8、od);这样就添加好了自己读取温湿度信息的任务了,然后具体怎么实现这两个任务:接下来:而sensor.c里面有一个handle函数用于处理时间的:见介绍和实体:/*fnzb_handleosalevent*briefThezb_handleosaleventfunctioniscalledbytheoperating*systemwhenataskeventisset*paramevent-bitmaskcontainingtheeventsthathavebeenset*returnnone*/voidzb_handleosalevent(uint16event)uint8pData2;/用

9、于存放数据和分类信息的if(eventif(event函数set的事件么?!/ReadandreporttemperaturevaluepData0=Temp_RepoRT;/类型存放在pData0里面pData1=myApp_ReadTemperature();/读出来的温度值存到pData1,myApp_ReadTemperature();是读取温度值的函数zb_sendDataRequest(0xFFFe,sensoR_RepoRT_cmD_ID,2,pData,0,AF_AcK_ReQuesT,0);/发送出去/再设这样一个时间,无限循环-这里再说一下发送的过程,首先从刚才osal_s

10、tart_timerex();设一个发送温度值的系统事件,在一个myTempReportperiod的周期之后,通过zb_handleosalevent的调用,再通过if(eventpData1=myApp_Readbattery();先添加自己刚设的事件:/相当于添加一个可以让协调器识别你发过去的是什么的标签receive();/调用wenshi.c里面的全局函数receive();wenshi.c是我自己写的一个cpData1=Th;/代表温度篇二:显示下一条|关闭立即重新绑定新浪微博|关闭osal_start_timerex(sapi_TaskID,mY_RepoRT_Temp_eVT,

11、myTempRepo(:温湿度采集学习心得)rtperiod);osal_start_timerex(sapi_TaskID,mY_RepoRT_wenDu_eVT,mywenDuReportperiod);/回调这样子额,pData0=wenDu_RepoRT;,既然说这个是要让协调器识别的,那么协调器(simplecollectoreb.c)里面也要有相同的参数。#defineTemp_RepoRT0x01#definebATTeRY_RepoRT0x02#definewenDu_RepoRT0x04#defineshIDu_RepoRT0x08再分析回原来的事件处理部分:都有调用zb_s

12、endDataRequest();函数篇三:温度采集系统报告课程设计说明书题目:温度采集电路设计学生姓名:赵颖娜学号:20XX06090211院(系):电气与信息工程学院专业:网络工程132指导教师:周晓慧20XX年12月25日摘要本次课程设计主要是做一个温度测量系统,对于0-100摄氏度的环境温度或者给定温度要求能较为精确的测量(误差小于1摄氏度)并显示在数码管上,让人直观的看到。要想测量温度,就必须要一个温度测量仪器,而想要用电路实现功能就必须要把温度值转化为电信号量,因此我们选用Lm35作为温度感应电路的核心。Lm35可以将温度值转化为电压值,误差小于0.5,符合设计要求。由于输出电压值

13、过小,直接进行A/D转换会造成较大误差,因此将这个电压值进行放大,放大后经A/D转换器将连续的模拟电压值转化为数字信号量,经过AT28c16的存储接两个cD4511驱动两个共阴极的数码管用来显示两个数字,分别为十位和个位,读出的即为温度值。目录第一章技术指标1.1整体功能要求1第二章方案论证2.1方案比较12.2方案确定1第三章单元电路设计3.1Lm35电源电路13.2信号放大电路23.3A/D转换电路33.4数码显示电路33.5AT28c1633.6555多谐振荡器3第四章组装、调试4.1使用的主要仪器和仪表44.2调试电路的方法和技巧44.3测试的数据和波形并与计算结果比较分析54.4调试中出现的故障、原因及排除方法6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1