物联网短距离无线通信 课件 13-BLE家庭湿度采集系统_第1页
物联网短距离无线通信 课件 13-BLE家庭湿度采集系统_第2页
物联网短距离无线通信 课件 13-BLE家庭湿度采集系统_第3页
物联网短距离无线通信 课件 13-BLE家庭湿度采集系统_第4页
物联网短距离无线通信 课件 13-BLE家庭湿度采集系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

物联网短距离无线通信技术项目十三BLE家庭湿度采集系统1.项目场景2.采集类程序逻辑分析目录CONTENTS3.采集类程序接口分析4.项目实践项目场景项目场景

据生理学家研究,夏天,室内相对湿度过大时,会抑制人体散热,使人感到十分闷热、烦躁。冬天,室内相对湿度大时,则会加速热传导,使人觉得阴冷,抑郁。室内相对湿度过低时,因上呼吸道黏膜的水分大量流失,人会感到口干舌燥,并易患感冒。现在设计一款室内湿度检测设备,用于检测室内湿度状况,提醒室内人员。16:19

/3任务目标某家庭要生产一款室内湿度检测设备,该设备使用DHTU21D湿度传感器对室内湿度进行采集,微处理器把采集的数据信息通过串口进行输出。16:19

/4采集类程序逻辑分析

采集类场景分析BLE无线网络的使用过程中最为重要的功能之一就是能够实现远程的数据传输,通过BLE无线节点将采集的数据通过BLE网络将大片区域的传感器数据在BLE主机汇总,并为数据分析和处理提供数据支持。BLE的远程数据采集有很多场景可以使用如:运动手环运动量采集、光照强度信息采集;无人机运动数据采集;3D运动捕捉;家居空气质量采集等。BLE无线网络的远程传感器数据采集使用场景众多,但要如何利用BLE无线网络实现远程传感器数据的采集程序设计呢?下面将对远程传感器数据采集程序逻辑进行分析。

远程传感器数据采集程序逻辑1)定时器循环事件:定时查询当前传感器数值;2)根据软件设计逻辑来决定传感器数值是否上报;3)根据软件设计逻辑来控制传感器上报时间间隔;4)能够接收到远程的查询指令反馈最新的传感器数值。16:19

/5

数据采集程序流程16:19

/6采集类程序逻辑分析

采集类协议设计1)每条数据以“{}”作为起始字符;2)“{}”内参数多个条目以“,”分隔;3)数据上行格式参考:{value=12,status=1}4)数据下行查询命令参考:{value=?,status=?},程序返回:{value=12,status=1}数据方向协议格式说明上行(节点往应用发送数据)

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

{sensorValue=?}X表示采集的传感器值查询传感器值,返回:{sensorValue=X},X表示采集的传感器值。16:19

/7采集类应用接口分析

智传感器应用接口函数:函数名称函数说明sensorInit()sensoLinkOn()sensoUpdate()ZXBeeUserProcess()MyEventProcess()16:19

/8采集类应用接口分析

数据采集程序流程:16:19

/9采集类应用接口分析

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

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

采集类应用接口分析家庭湿度采集系统图如下所示:16:19

/11项目实践项目实践

硬件功能设计16:19

/12项目实践

采集湿度传感器通信协议数据方向协议格式说明X表示采集的湿度上行(节点往应用发送数据)

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

{humidity=?}值查询湿度值,返回:{humidity=X},X表示采集的湿度值。16:19

/13项目实践

传感器初始化湿度传感器初始化代码如下:void

sensorInit(void){printf("sensor->sensorInit():

Sensor

init!\r\n");//光强传感器初始化P0SEL

&=~0xC0;P0DIR

|=0xC0;//

配置管脚为通用IO模式//

配置控制管脚为输入模式//启动定时器,触发传感器上报数据事件:MY_REPORT_EVTosal_start_timerEx(sapi_TaskID,

MY_REPORT_EVT,

(uint16)((osal_rand()%10)

*1000));}16:19

/14项目实践

传感器主动上报传感器数据void

sensorUpdate(void){char

pData[16];char

*p

=

pData;updateHumidity();ZXBeeBegin();//

智云数据帧格式包头sprintf(p,

"%.1f",

humidity);ZXBeeAdd("humidity",

p);p

=ZXBeeEnd();if

(p

!=NULL)

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

strlen(p));

//将需要上传的数据进行打包,并通过zb_SendDataRequest()发送到网关}printf("sensor->sensorUpdate():humidity=%.1f\r\n",

humidity);}16:19

/15项目实践

自定义事件处理voidMyEventProcess(

uint16

event

){if

(event

&MY_REPORT_EVT)

{sensorUpdate();//

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

MY_REPORT_EVT,

20*1000);}}16:19

/16项目实践

湿度传感器驱动函数函数名称函数说明htu21d_init()湿度传感器HTU21D初始化获取湿度传感器HTU21D实时光强数据读出湿度传感器HTU21D内部数据htu21d_get_data()htu2

温馨提示

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

评论

0/150

提交评论