物联网短距离无线通信 课件 16-WiFi家居智能饮水机系统_第1页
物联网短距离无线通信 课件 16-WiFi家居智能饮水机系统_第2页
物联网短距离无线通信 课件 16-WiFi家居智能饮水机系统_第3页
物联网短距离无线通信 课件 16-WiFi家居智能饮水机系统_第4页
物联网短距离无线通信 课件 16-WiFi家居智能饮水机系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网短距离无线通信技术项目十六

WiFi家居智能饮水机系统1.项目场景2.控制类程序逻辑分析目录CONTENTS3.控制类程序接口分析4.项目实践项目场景项目场景饮水机存在于现代每个家庭生活中,但是目前大部分的饮水机功能仅限于烧水功能,对现代人来说,功能还是不完善或者说存在一定的缺陷。而且饮水机一直烧水,容易出现“千滚水“,对人体不好。这时就需我们能控制饮水机的烧水,在需要喝热水时,遥控控制饮水机开始烧水,等过去时就可以喝上刚烧热的新鲜的水,可以有效避免能源浪费,“千滚水”等问题。16:20

/3任务目标智能家居系统中对家居调节设备节点的控制是保证家居正常工作的重要环节,本节以家居饮水机控制系统为例学习在应用接口下的控制节点的程序开发,学习并掌握控制节点的操作逻辑和应用接口的使用。16:20

/4控制类程序逻辑分析

控制类节点逻辑事件WIFI无线网络的使用过程中最为重要的功能之一就是能够实现远程设备控制。很多时候为了实际需要,需要对远程的电器设备进行控制,此时就需要用户通过发送控制指令,指令经由协调器发送至控制控制节点,控制节点通过处理相关的指令信息并执行指令内容,通过控制并反馈控制结果。WIFI的远程设备控制有很多场景可以使用如:室内窗帘控制、家居环境灯光控制;无人飞行器控制;鱼缸投食控制;花草自动浇水控制等。WIFI无线网络的远程设备控制使用场景众多,但要如何利用WIFI无线网络实现远程传感器数据的采集程序设计呢?下面将对远程设备控制程序逻辑进行分析。

控制类节点逻辑事件1)远程设备对节点发送控制指令,节点实时响应并执行操作;2)远程节点发送查询指令后,节点实时响应并反馈设备状态;3)控制节点设备工作状态的实时上报;控制类程序逻辑分析

控制类协议设计1)每条数据以“{}”作为起始字符;3)数据上行格式参考:{value=12,status=1}4)数据下行查询命令参考:{value=?,status=?},程序返回:{value=12,status=1}2)“{}”内参数多个条目以“,”分隔;数据方向协议格式说明上行(节点往应用发送数据){switchStatus=X}上传设备状态,X表示控制器状态值下行(应用往节点发送指令){switchStatus=?}查询控制器状态值,返回:{switchStatus=X},X表示控制器状态值。下行(应用往节点发送指令){cmd=X}发送控制指令,X表示控制指令,节点根据设置进行相关控制器硬件操作。控制类程序接口分析

传感器应用接口函数传感器应用层程序在sensor.c文件中实现,控制类传感器接口包括包括控制器硬件初始化(sensorInit())、控制器节点入网调用(sensoLinkOn())、控制器状态上报(sensoUpdate())、控制器控制(sensorControl())、处理下行的用户命令(ZXBeeUserProcess())、定时循环触发(sensorLoop())。函数名称函数说明sensorInit()硬件设备初始化sensoLinkOn()传感器入网成功后调用sensoUpdate()上传控制器实时数据sensorControl()控制器控制函数ZXBeeUserProcess()解析接收到的下行控制命令sensorLoop()循环定时触发

控制类程序流程远程设备控制功能依附于无线传感网络之上,在无线传感网络建立完成后,才能够进行无线节点所携带的传感器的初始化。初始化完成后需要初始化系统用户应用的系统任务,接着等待远程应用发送控制指令,当节点接收到控制指令时,通过约定的数据协议对数据内容进行解包,解包完成后根据指令信息对相应的传感器设备进行控制,待控制结束后将反馈指令通过数据协议打包返送给远程服务器,用户接收到反馈指令后知晓远程控制指令执行完成。

无线数据包收发函数无线数据的收发处理:在zxbee-inf.c文件中实现,包括BLE无线数据的收/发处理函数。函数名称函数说明ZXBeeInfSend()节点发送无线数据包给汇集节点ZXBeeInfRecv()处理节点收到无线数据包

无线数据包解析函数针对特定的通信协议,需要对无线数据包进行封包、解包操作,无线数据的封包/解包相关函数在zxbee.c文件中实现,封包函数:ZXBeeBegin()、ZXBeeAdd(char*tag,char*val)、ZXBeeEnd(void),解包函数:ZXBeeDecodePackage(char*pkg,intlen)。函数名称函数说明ZXBeeBegin()增加ZXBee通信协议的帧头“{”ZXBeeEnd()增加ZXBee通信协议的帧尾“}”,并返回封包后的数据包指针ZXBeeAdd()ZXBee通信协议的数据包中添加数据ZXBeeDecodePackage()对接收到的无线数据包进行解包控制类程序接口分析

家居智能饮水机系统设计家居智能饮水机系统是智慧家居应用中的一个子系统,主要实现对智能饮水机的远程控制。家居智能饮水机系统采用WIFI无线传感网技术,通过部署继电器和WIFI无线节点,通过与智能网关组网并连接到物联网云平台,最终通过家居智能饮水机系统中远程对饮水机的控制。

项目实践项目实践16:20

/11项目实践

控制继电器通信协议数据方向协议格式说明饮水机(继电器)状态0:关闭,1:打开上行(节点往应用发送数据){switchStatus=X}查询当前继电器状态

,返回:{switchStatus

=X},X为0:关闭,1:打开下行(应用往节点发送指令)下行(应用往节点发送指令){switchStatus=?}{cmd=X}继电器控制指令,X为0:关闭,1:打开16:20

/12项目实践

传感器初始化继电器初始化代码如下:voidsensorInit(void){//初始化传感器代码relay_init();}16:20

/13项目实践

传感器主动上报传感器数据voidsensorUpdate(void){char

pData[16];char

*p

=

pData;ZXBeeBegin();sprintf(p,

"%u",

switchStatus);ZXBeeAdd("switchStatus",p);p

=ZXBeeEnd();//

上报控制编码//智云数据帧格式包尾if

(p

!=NULL)

{ZXBeeInfSend(p,

strlen(p));并通过zb_SendDataRequest()发送到协调器}//

将需要上传的数据进行打包操作,}16:20

/14项目实践

继电器控制voidsensorControl(uint8

cmd){relay_control(cmd);}16:20

/15项目实践

循环定时触发voidsensorLoop(void){static

unsignedlong

ct_update=0;if

(t4exp(ct_update))

{sensorUpdate();ct_update=

t4ms()+20*1000;}}16:20

/16项目实践

继电器驱动函数函数名称relay_init()函数说明继电器初始化relay_on()继电器开relay_off()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论