物联网短距离无线通信 课件 12-ZigBee农业遮阳系统_第1页
物联网短距离无线通信 课件 12-ZigBee农业遮阳系统_第2页
物联网短距离无线通信 课件 12-ZigBee农业遮阳系统_第3页
物联网短距离无线通信 课件 12-ZigBee农业遮阳系统_第4页
物联网短距离无线通信 课件 12-ZigBee农业遮阳系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

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

ZigBee农业遮阳系统1.项目场景2.控制类程序逻辑分析目录CONTENTS3.控制类程序接口分析4.项目实践项目场景项目场景随着信息技术在农业中的推广应用,

物联网技术为农业智能和远程管理构建了新的模式。这种技术综合了ZigBee无线网络技术,实现了生产设备的远程控制和农业管理的自动化、智能化控制。通过运用物联网的温室大棚智能化控制系统,将物联网与移动网络以及Internet结合起来,实现对温室大棚的智能感知与远程控制,对推进现代智能农业的发展有着重要的实践价值和推广意义。16:17

/3任务目标某大棚为实现日光调节的远程操作,现需通过ZigBee网络建立一套远程大棚遮阳板控制系统,该系统能够通过xLabTools工具实现对大棚遮阳板的远程控制,在发送控制指令后系统能够对操作结果进行反馈,返回结果显示在xLabTools工具上。16:17

/4控制类程序逻辑分析

控制类场景分析ZigBee无线网络的使用过程中最为重要的功能之一就是能够实现远程设备控制。很多时候为了实际需要,需要对远程的电器设备进行控制,此时就需要用户通过发送控制指令,指令经由协调器发送至控制节点,控制节点通过处理相关的指令信息并执行指令内容,通过控制并反馈控制结果。ZigBee的远程设备控制有很多场景可以使用如:温室大棚遮阳板控制、家居环境灯光控制;城市排涝电机控制;路障控制;厂房换气扇控制等。ZigBee无线网络的远程设备控制使用场景众多,但要如何利用ZigBee无线网络实现远程传感器数据的采集程序设计呢?下面将对远程设备控制程序逻辑进行分析。

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

远程控制程序流程控制类程序逻辑分析

控制类协议设计1)每条数据以“{}”作为起始字符;3)数据上行格式参考:{value=12,status=1}控制类程序逻辑分析

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

控制类程序流程

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

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

农业遮阳系统设计农业遮阳系统是智慧农业应用中的一个子系统,主要实现对农业大棚遮阳电机的远程控制,实现对农业大棚遮阳、遮雨、避风等系统的管理。农业遮阳系统采用ZigBee无线传感网技术,通过部署遮阳电机传感器和ZigBee无线节点,通过与智能网关组网并连接到物联网云平台,最终通过智慧农业应用系统中远程对遮阳电机的控制。项目实践16:18

/12项目实践

控制电机传感器通信协议数据方向协议格式说明X为1表示电机正转状态,X为0表示电机上行(节点往应用发送数据)

{motorStatus=X}下行(应用往节点发送指令)

{motorStatus=?}下行(应用往节点发送指令)

{cmd=X}反转状态查

:{motorStatus=X},X为1表示电机正转状态,X为0表示电机反转状态电机控制指令,X为1表示控制电机正转,X为0表示控制电机反转16:18

/13项目实践

传感器初始化电机传感器初始化代码如下:void

sensorInit(void){//初始化遮阳电机代码stepmotor_init();//遮阳电机初始化//启动定时器,触发传感器上报数据事件:MY_REPORT_EVTosal_start_timerEx(sapi_TaskID,MY_REPORT_EVT,

(uint16)((osal_rand()%10)

*

1000));}16:18

/14项目实践

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

pData[16];char

*p

=

pData;ZXBeeBegin();//智云数据帧格式包头sprintf(p,

"%u",motorStatus);ZXBeeAdd("motorStatus",

p);p

=ZXBeeEnd();if

(p

!=NULL)

{//

智云数据帧格式包尾ZXBeeInfSend(p,

strlen(p));//

将需要上传的数据进行打包操作,并通过zb_SendDataRequest()发送到协调器}}16:18

/15项目实践

电机传感器控制voidsensorControl(uint8

cmd){//根据cmd参数处理对应的控制程序if(cmd

==

1){if(motorStatus

!=1)

{motorStatus=1;forward(5000);//

遮阳电机正转//遮阳电机反转}}else

if(cmd

==

0){if(motorStatus!=0)

{motorStatus=0;reversion(5000);}}}项目实践

自定义事件处理void

MyEventProcess(

uint16

event

){if

(event

&MY_REPORT_EVT)

{printf("sensor->MyEventProcess():MY_REPORT_EVT

trigger!\r\n");sensorUpdate();//

传感器数据定时上报//启动定时器,触发事件:MY_REPORT_EVTosal_start_timerEx(sapi_TaskID,MY_REPORT_EVT,

20*1000);}}项目实践

电机驱动函数函数名称函数说明stepmotor_init()步进电机传感器初始化forwa

温馨提示

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

评论

0/150

提交评论