- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ZigBee网络的智能家居实验解决方案 -.docx
温湿度协调器C#上位机任务解决方案数据流程图: 收集上传 下发指令 广播消息 广播消息 点播上传 点播上传 点播消息 点播 告诉协调 发送 器已完成 相应动作继电器光敏值 LED灯块协议栈常用函数功能参数分析HalLedBlink(uint8leds,uint8numBlinks,uint8percent,uint16 period)LED闪烁LED几,闪烁次数,占空比,周期。SerialApp_OTAData(afAddrType_t*txaddr,uint8ID,void *p,uint8 len)协调器,终端发送无线消息接收方地址,簇ID,数据,数据长度。osal_set_event(uint8task_id, uint16 event_flag )建立一个事件8位task_ID,16位的事件osal_start_timerEx(uint8taskID, uint16event_id,uint16timeout_value )开启一个定时器8位task_ID,16位的事件ID,定时周期SerialApp_ProcessMSGCmd(afIncomingMSGPacket_t *pkt )协调器,终端接收无线消息afIncomingMSGPacket_t *pkt 空中无线消息HalUARTWrite(uint8port, uint8 *buf, uint16 len)协调器将数据写到上位机UARTport串口号,buf数据,数据长度HalUARTRead(uint8port, uint8 *buf, uint16 len)协调器读取上位机的数据串口号,数据,数据长度 HalLedSet (uint8 leds, uint8 mode)LED状态LED几,LED亮、灭。SerialApp_ProcessEvent( uint8 task_id, UINT16 events )事件处理函数8位task_id, 16位事件SerialApp_CallBack(uint8 port, uint8 event)回调函数,读取上位机数据在这个函数下进行串口号,8位层事件通信协议:功能通信协议发送方接收方备注温湿度数据上传s(上发) w(温湿度) data[1]-data[8](字符形式) 校验 t(结束符)温湿度模块上位机温湿度值存储data[1]~data[8]中例如:温度21.21℃ 湿度60.00%则datadata[1]-data[8]字符形式)光照上传s(上发) g(温湿度) data[1]-data[8](字符形式) 校验 t(结束符)光照模块上位机光照值存储于data[1]-data[4]中例如:光照值1200 则data[1]-data[4]=1200(字符形式)LED灯控制x(下发) l(LED灯) data[1]-data[8](字符形式) 校验 t(结束符)上位机LED模块LED灯状态存储data[1]-data[4]中LED灯状态:1点亮 0熄灭例如:4个LED灯全亮则data[1]-data[4]=1111(字符形式LED灯控制回复s(上发) l(LED灯) data[1]-data[8](字符形式) 校验 t(结束符)LED模块上位机LED模块回复消息,当LED模块控制成功时,给上位机回复此条消息继电器控制x(下发) j(继电器) data[1]-data[8](字符形式) 校验 t(结束符) 上位机继电器模块继电器状态存储于data[1]-data[2]中,继电器状态:1吸合 0断开例如:继电器1吸合 继电器2断开则data[1]-data[2]=10(字符形式)继电器控制回复s(上发) j(继电器) data[1]-data[8](字符形式) 校验 t(结束符)继电器模块上位机继电器模块回复消息,当继电器模块控制成功时,给上位机回复此条消息校验校验=(data[1]+data[2]+data[3]+data[4]+data[5]+data[6]+data[7]+data[8])%256光敏模块 功能:采集光敏值装填在data[]中,上发给协调器,协调器通过串口将数据写到上位机。原理图: 代码修改: 1. 配置P0.0外设(设置ADC模式),方向为输入 。2. 加入灯语,入网成功,红灯常量,绿灯闪5下 。3. 单步调试:打断点, 全速运行。 B.PhotoResult上右键,Add to Watch。. C.查看光敏值 4. 读取光敏值,装填到数组中Pho[5]中,调用显示屏显示函数显示,c语言中运算符 ”/” 和 ”%”分别代表取整,和取余运算。Pho[4]=0x00;为结束标志。列如:Pho
文档评论(0)