物联网短距离无线通信 课件 赵丽娜 项目10-19 WiFi协议栈程序分析 - WIFI家居智能安防系统_第1页
物联网短距离无线通信 课件 赵丽娜 项目10-19 WiFi协议栈程序分析 - WIFI家居智能安防系统_第2页
物联网短距离无线通信 课件 赵丽娜 项目10-19 WiFi协议栈程序分析 - WIFI家居智能安防系统_第3页
物联网短距离无线通信 课件 赵丽娜 项目10-19 WiFi协议栈程序分析 - WIFI家居智能安防系统_第4页
物联网短距离无线通信 课件 赵丽娜 项目10-19 WiFi协议栈程序分析 - WIFI家居智能安防系统_第5页
已阅读5页,还剩243页未读 继续免费阅读

下载本文档

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

文档简介

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

WiFi协议栈程序分析1.项目场景2.CC3200协议代码流程分析目录CONTENTS3.传感器应用接口分析4.项目实践项目场景项目场景

夏天的空调、冬天的暖气,总是能让你生活在冰火两重天的世界。智能家居中的环境温度的感知与智能控制是非常重要的一个领域,智能家居系统通过温湿度传感器感知环境数据,通过智能处理中心记录分析并做出相关设备联动操作。16:20

/3任务目标

某公司需研制一款基于WiFi网络的智能家居产品,这款智能家居产品能自动获取温度信息,并通过WiFi

AP将数据发送至指定的网络地址,从而实现家电的智能控制。目前该产品正处于测试阶段,为了解产品的稳定性需要对设备中的程序执行流程进行监控,以此掌握程序的动态执行过程。16:20

/4CC3200协议代码流程分析

WiFi协议具体流程图WIFI的协议栈是一个用于实现WIFI网络功能的完整系统。WIFI协议栈启动代码需要完成初始化硬件平台和软件架构所需的要的各个模块,为操作系统的运行做好准备工作,主要分为板载初始化,初始化系统时钟,初始化DMA,引脚复用配置,初始化各个硬件模块,初始化串口,启动simplelink设备,AT命令初始化,传感器初始化,连接WIFI设备,定时触发等十余部分。

WiFi协议栈-main()voidmain(){longlRetVal

=-1;//BoardInitializationBoardInit();

//板载初始化SysTickInit();

//初始化systick定时器//Initialize

the

uDMAUDMAInit();

//初始化DMA控制//Configure

the

pinmux

settings

for

the

peripherals

exercisedPinMuxConfig();

//引脚复用配置LEDInit();//LED初始化//Configuring

UARTInitTerm();//配置串口DisplayBanner(APPLICATION_NAME);

//打印应用名称InitializeAppVariables();//初始化应用}

WiFi协议栈-main()voidmain(

){lRetVal

=ConfigureSimpleLinkToDefaultState();

//配置simpleLink为默认状态(station)if(lRetVal

<0){//如果配置失败if

(DEVICE_NOT_IN_STATION_MODE

==lRetVal)LOOP_FOREVER();}

//无限循环lRetVal

=

sl_Start(0,0,0);

//启动simplelink设备if

(lRetVal

<0){//如果启动失败LOOP_FOREVER();}//无线循环ucfg_read();int

mode

=1;//0

trans,

1

at

modeint

at_ret

=0;macInit();ATCommandInit();ZXBeeInfInit();//获取网络配置#ifndef

CC3200_SerialsensorInit();//传感器初始化#endif}16:20

/7

WiFi协议栈-main()voidmain(

){while

(1){if

((IS_CONNECTED(g_ulStatus))

&&

(IS_IP_ACQUIRED(g_ulStatus)))

{if

(iSockID

<0){SocketInit();}

else

if

(at_ret

<=0){int

ret

=SocketCheck();if

(ret

>0)

{SocketRecvMessage(SockBuf,

ret);}}}

else

{static

char

s

=0;static

unsignedlong

led_tm

=0,

conn_tm=0;unsigned

longt

=UTUtilsGetSysTime();if

(t

-led_tm

>200){if

(s)LEDOff(1);else

LEDOn(1);s

=!s;16:20

/8led_tm

=t;}

WiFi协议栈-main()voidmain(

){if

(conn_tm==0||

t

-

conn_tm>60*1000){InitializeAppVariables();if

(strlen(cfg.ssid)

>0){WlanConnect();

//连接到WiFi设备}conn_tm=

t;}}if

(mode

==1){at_ret

=

at_check();}#ifndef

CC3200_SerialsensorLoop();#endif_SlNonOsMainLoopTask();}传感器应用接口分析

传感器应用接口函数函数名称函数说明sensorInit()传感器硬件初始化sensorLinkOn()节点入网成功操作函数sensorUpdate()传感器数据定时上报sensorControl()传感器/执行器控制函数sensorCheck()传感器预警监测及处理函数ZXBeeInfRecv()解析接收到的传感器控制命令函数sensorLoop()启动定时器触发事件智云框架是在应用接口和API接口上搭建起来的,通过合理调用这些接口,使WIFI项目的开发形成一套系统的开发逻辑。具体应用接口在sensor.c文件中实现,包括:传感器初始化、控制设备的操作、传感器数据的采集、报警信息的实时响应、系统参数的配置更新等,

智云传感器程序执行流程智云框架下WIFI无线节点示例程序基于WIFI协议栈框架开发,

智云传感器程序执行流程智云框架下BLE无线节点示例程序基于BLE协议栈框架开发项目实践项目实践

硬件功能设计16:20

/12项目实践

软件逻辑设计16:20

/13项目实践

软件逻辑设计16:20

/14项目实践

程序通信协议数据方向协议格式说明上行(节点往应用发送数据)temperature=XX表示采集的温度值X为0表示关闭继电器,1表示开启继电器。下行(应用往节点发送指令)cmd=X16:20

/15项目实践

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

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

Sensor

init!\r\n");//温度传感器初始化//初始化继电器代码relay_init();}//

继电器初始化16:20

/16项目实践

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

sensorUpdate(void){char

pData[32];char

*p

=

pData;//温度采集(0~40随机数)temperature

=(uint16)(rand()%40);//更新温度的值sprintf(p,

"temperature=%.1f",

temperature);sendMessage(p,strlen(p));DebugMsg("sensor->sensorUpdate():

temperature=%.1f\r\n",

temperature);}16:20

/17项目实践

循环定时触发void

sensorLoop(void){static

unsignedlong

ct_update

=0;if

(t4exp(ct_update))

{sensorUpdate();ct_update=

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

/18项目思考

WiFi协议栈的执行思路是怎样的?

WiFi协议栈的任务是如何排序的,依据是什么?

WiFi协议栈中一个用户任务下可以有多少个用户事件?16:20

/19谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十一ZigBee农业光照系统1.项目场景2.采集类程序逻辑分析目录CONTENTS3.采集类程序接口分析4.项目实践项目场景项目场景随着人们生活水平的不断提高,人们对优质生活环境的需求也越来越强烈,越来越需要清新的空气,越来越需要干净的水资源和碧蓝的天空。因此为了保证人们的生活质量就要对生活中到污染源加以检测和控制。因此针对于污染源的环境监测站部署变得尤为重要。但污染源通常分布在人烟稀少的地方,为了方便环境数据的采集和降低布线成本,就需要将传统的有线数据采集形式变更为基于无线传感网络的远程环境信息采形式,以实现环境数据的远程采集和管理。16:17

/3任务目标某科研单位需要进行远程环境数据监测,现需通过ZigBee网络建立一套远程环境监测站数据采集系统,该系统能够远程采集环境信息并被监测站通过接收机采集到,且能够通过xLabTools工具识别信息内容。16:17

/4采集类程序逻辑分析

采集类场景分析ZigBee无线网络由于其自组网、低功耗、低成本的特性,能够对户外大范围监控单元进行数据循环采集。现代化农业种植可以通过ZigBee物联网无线组网技术,实时地对农业生产现场的温湿度、光照、CO2浓度等参数进行数据采集,利用视频监控设备获取农作物的生长状况等信息,远程监控农业生产环境,同时将采集的参数和获取的信息进行数字化转换和汇总后,经传输网络实时上传到相关农业智能管理系统中,系统按照农作物生长的各项指标要求,精确地遥控农业设施自动开启或者关闭,实现智能化的农业生产,有效减少成本,提高农作物产量。ZigBee无线节点将采集的数据通过ZigBee网络将大片区域的传感器数据在协调器汇总,并为数据分析和处理提供数据支撑。ZigBee的远程数据采集有很多场景可以使用如:温室大棚温湿度信息、光照强度信息采集;城市低洼涵洞隧道内涝检测;桥梁震动信号采集;家居空气质量采集等。ZigBee无线网络的远程传感器数据采集使用场景众多,但要如何利用ZigBee无线网络实现远程传感器数据的采集程序设计呢?下面将对远程传感器数据采集程序逻辑进行分析。

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

数据采集程序流程16:17

/6

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

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

{sensorValue=?}X表示采集的传感器值16:17

/7采集类程序接口分析采集类应用接口分析

智传感器应用接口函数:函数名称函数说明sensorInit()硬件设备初始化sensoLinkOn()传感器入网成功后调用sensoUpdate()上传传感器实时数据ZXBeeUserProcess()解析接收到的下行控制命令MyEventProcess()用户事件处理sensorInit()函数下实现对用户对传感器设备的初始化和启动数据上报事件。sensorLinkOn()函数下用于处理当节点组网成功后需要执行的操作。sensorUpdate()函数下实现对传感器数据的更新和更新数据的打包上报。ZXBeeUserProcess()函数下处理接收到的数据,并执行数据携带的操作指令。MyEventProcess()函数下实现对用户定义事件的启动和处理。采集类应用接口分析

数据采集程序流程:

无线数据包收发函数:

无线数据包解析函数:函数名称函数说明ZXBeeInfSend()节点发送无线数据包给汇集节点ZXBeeInfRecv()处理节点收到无线数据包函数名称函数说明ZXBeeBegin()增加ZXBee通信协议的帧头“{”ZXBeeEnd()增加ZXBee通信协议的帧尾“}”,并返回封包后的数据包指针ZXBeeAdd()ZXBee通信协议的数据包中添加数据ZXBeeDecodePackage()对接收到的无线数据包进行解包采集类应用接口分析

农业光强系统图如下所示:农业光照系统是智慧农业应用中的一个子系统,主要实现对农作物生长环境中的光强进行定时监测,以便掌握植物生产环境的跟踪和追溯,为农作物后期数据分析提供依据。农业光照系统采用ZigBee无线传感网技术,通过部署光照传感器和ZigBee无线节点,将采集到的数据通过智能网关发送到物联网云平台,最终通过智慧农业应用系统进行光强数据的采集和数据展现。项目实践项目实践硬件功能设计

农业光强信息采集硬件框图设计。光照检测使用了外接传感器,外接传感器使用的是HB1750,通过IIC总线与CC2530

ZigBee芯片进行通信。16:17

/12项目实践

采集光强传感器通信协议数据方向协议格式说明上行(节点往应用发送数据){lightIntensity=X}X表示采集的光强值查

:{lightIntensity=X},X表示采集的光强值。下行(应用往节点发送指令){lightIntensity=?}项目实践

传感器初始化湿度传感器初始化代码如下: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:17

/14项目实践

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

sensorUpdate(void){char

pData[16];updateLightIntensity();ZXBeeBegin();//

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

"%.1f",

lightIntensity);ZXBeeAdd("lightIntensity",

p);p

=ZXBeeEnd();//智云数据帧格式包尾if

(p

!=NULL)

{ZXBeeInfSend(p,

strlen(p));printf("sensor->sensorUpdate():lightIntensity=%.1f\r\n",

lightIntensity);}16:17

/15项目实践

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

sensorUpdate(void){char

pData[16];updateLightIntensity();ZXBeeBegin();//

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

"%.1f",

lightIntensity);ZXBeeAdd("lightIntensity",

p);p

=ZXBeeEnd();//智云数据帧格式包尾if

(p

!=NULL)

{ZXBeeInfSend(p,

strlen(p));printf("sensor->sensorUpdate():lightIntensity=%.1f\r\n",

lightIntensity);}16:17

/16项目实践

自定义事件处理voidMyEventProcess(

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);}}项目实践

光强传感器驱动函数函数名称函数说明bh1750_init()光强传感器BH1750初始化bh1750_get_data()bh1750_read_nbyte()bh1750_send_byte()获取光强传感器BH1750实时光强数据连续读出光强传感器BH1750内部数据向光强传感器BH1750内部写入控制命令16:17

/18项目思考

ZigBee的数据上报场景有哪些?

ZigBee数据发送为何要定义数据协议?

ZigBee的数据发送使用了哪个接口函数?16:17

/19谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十二

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()步进电机传感器初始化forward()reversion()step()控制步进电机正转控制步进电机反转步进电机单步转动一次项目思考

ZigBee的远程控制场景有哪些?

ZigBee的远程控制的要点是什么?

ZigBee的数据收发使用了哪些接口函数?谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十三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()htu21d_read_reg()16:19

/17项目思考

BLE的数据上报场景有哪些?

BLE数据发送为何要定义数据协议?

BLE的数据发送使用了哪个接口函数?16:19

/18谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十四BLE家庭灯光控制系统1.项目场景2.控制类程序逻辑分析目录CONTENTS3.控制类程序接口分析4.项目实践项目场景项目场景随着科技的发展,以往的根据行为习惯布置开关控制照明不能充分体现使用者追求方便、舒适、灵活的要求,如今倡导“新电气时代

,其宗旨就是充分体现以人为本的设计理念,让控制方式更加符合人的行为模式,因此,在设计客厅环境灯光控制之前,应对住宅家庭成员的构成、各房间具体位置、具体功能、室内行为模式深入研究。智能技术已经开始进入住宅照明领域。通过智能照明系统实现对住宅照明光环境的合理控制。16:19

/3任务目标某小区业主希望实现客厅环境灯光远程控制,现需通过BLE网络建立一套客厅灯光控制系统,该系统能够通过移动端蓝牙工具实现对客厅环境灯的无线控制,在发送控制指令后系统能够对操作结果进行反馈。16:19

/4控制类程序逻辑分析

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

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

/5控制类程序逻辑分析

远程控制程序流程

远程控制程序流程一个完整的物联网综合系统,数据贯穿了从感知层到网络层到服务层最后到达应用层的各个部分。数据在这四个层之间层层传递。感知层用于产生有效数据,网络层需要对有效数据进行解析后向服务器发送数据,服务器需要对有效数据进行分解、分析、存储和调用,应用层需要从服务器获取经过分析的有用的节点数据。整个过程中数据都在被物联网的各个组织层进行分析识别。要实现数据在每一层能够被正确识别就需要整套物联网系统在构建之初建立一套完成的数据通信协议。通信协议(communicationsprotocol)是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。这种通信协议在控制节点中同样适用。在物联网系统中远程设备和控制节点分别处于通信的两端,要实现两者间的数据识别就需要指定通讯协议,通过指定同意的通信协议,远程设备发送的控制和查询指令才能够控制节点识别并执行。通过前面的分析可以了解到控制节点拥有两种操作逻辑事件,分别为:设备远程控制和设备状态查询。控制类程序逻辑分析

控制类协议设计1)每条数据以“{}”作为起始字符;3)数据上行格式参考:{value=12,status=1}4)数据下行查询命令参考:{value=?,status=?},程序返回:{value=12,status=1}2)“{}”内参数多个条目以“,”分隔;数据方向协议格式说明上行(节点往应用发送数据){ledStatus=X}X为其他值表示LED1、LED2关闭状态,X为1表示LED1打开状态,X为2表示LED2打开状态。下行(应用往节点发送指令){ledStatus=?}查询当前LED状态,返回:{ledStatus=X},X为其他值表示LED1、LED2关闭状态,X为1表示LED1打开状态,X为2表示LED3打开状态。下行(应用往节点发送指令){cmd=X}电机控制指令,X为其他值表示关闭LED1、LED2,X为1表示打开LED1,X为2表示打开LED2。控制类程序接口分析

控制类程序接口分析

控制类程序流程控制类程序接口分析

传感器应用接口函数函数名称函数说明sensorInit()硬件设备初始化sensoLinkOn()传感器入网成功后调用sensoUpdate()上传控制器实时数据sensorControl()控制器控制函数ZXBeeUserProcess()解析接收到的下行控制命令MyEventProcess()用户事件处理,启动定时器触发事件MY_REPORT_EVT在智云框架下要实现远程设备控制程序变得较为方便。程序中省略了无线节点组网和用户任务创建的繁琐过程,直接调用sensor_inti()函数可以实现节点传感器的初始化,使用ZXBeeUserProcess()函数实现指令的解析执行和反馈即可,使用sensorControl()函数下实现对控制设备的操作。通过以上函数即可实现远程设备的控制程序,无线节点的设备远程控制可通过蓝牙工具在Android端设备上发送指令实现。

传感器应用接口函数控制类程序接口分析

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

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

家庭灯光控制系统设计家庭灯光控制系统是智慧家庭应用中的一个子系统,主要实现对家庭灯光控制LED的远程控制,实现对家庭灯光的管理。家庭灯光控制系统采用BLE无线传感网技术,通过部署LED和BLE无线节点,通过与智能网关组网并连接到物联网云平台,最终通过智慧家庭应用系统中远程对LED的控制。项目实践项目实践16:19

/12项目实践

控制电机传感器通信协议数据方向协议格式说明X为其他值表示LED1、LED2关闭状态,X为1表示LED1打开状态,X为2表示LED2打开状态。上行(节点往应用发送数据)

{ledStatus=X}查询当前LED状态,返回:{

ledStatus=X},X为其他值表示LED1、LED2关闭状态,X为1表示LED1打开状态,X为2表示LED3打开状态。下行(应用往节点发送指令)

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

{cmd=X}电机控制指令,X为其他值表示关闭LED1、LED2,X为1表示打开LED1,X为2表示打开LED2。16:19

/13项目实践

传感器初始化LED初始化代码如下:voidsensorInit(void){//初始化LED代码led_init();//led灯初始化//启动定时器,触发传感器上报数据事件:MY_REPORT_EVTosal_start_timerEx(simpleBLEPeripheral_TaskID,

MY_REPORT_EVT,(uint16)((osal_rand()%10)

*1000));}16:19

/14项目实践

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

pData[16];char

*p

=

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

"%u",ledStatus);ZXBeeAdd("ledStatus",p);p

=ZXBeeEnd();if

(p

!=NULL)

{//

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

strlen(p));//

将需要上传的数据进行打包操作,并通过}}16:19

/15项目实践

LED传感器控制voidsensorControl(uint8

cmd){if(cmd

&0x02){//LED2灯控制位:bit1//开启LED2LED2

=ON;}else{LED2

=OFF;//关闭LED2}if(cmd

&0x01){//LED1灯控制位:bit0//

开启LED1LED1

=ON;}else{LED1

=OFF;//关闭LED1}ledStatus

=

cmd;}16:19

/16项目实践

自定义事件处理void

MyEventProcess(

uint16

event

){if

(event

&MY_REPORT_EVT)

{sensorUpdate();//传感器数据定时上报//启动定时器,触发事件:MY_REPORT_EVTosal_start_timerEx(simpleBLEPeripheral_TaskID,

MY_REPORT_EVT,

20*1000);}}16:19

/17项目实践

LED驱动函数函数名称led_init()函数说明LED初始化led_on

()led_off

()LED打开LED关闭16:19

/18项目思考

BLE的远程控制场景有哪些?

BLE的远程控制的要点是什么?

BLE的数据收发使用了哪些接口函数?16:19

/19谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十五

WiFi家居环境采集系统1.项目场景2.采集类程序逻辑分析目录CONTENTS3.采集类程序接口分析4.项目实践项目场景项目场景室内环境因子主要包括温度、湿度、光照度、可燃气体和PM2.5等监测。其中温度是人居室内环境的重要参数,温度的高低直接决策人居环境的舒适度,智能控制室内温度是智能家居发展的必然趋势。智能家居温度监测系统能将监测温度的变化情况同控制设备联动,是温度检测与控制集成的设备或装置。智能家居的室内温度智能检测与控制系统,由智能网关、温度检测模块和温度控制模块组成;其中智能网关包括网关数传单元和WiFi无线连接器;温度检测模块包括检测WiFi数传单元和温度传感器;温度控制模块包括控制WiFi数传单元和红外学习遥控器。16:20

/3任务目标某公司需研制一款基于WiFi网络的智能家居环境监测产品,这款智能家居产品能自动获取家居环境中温度信息,并该系统能够将采集到的家居上传到智能家居网关中心,且能够通过串口输出相关信息。。16:20

/4采集类程序逻辑分析采集类程序逻辑分析

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

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

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

/5采集类应用接口分析

采集类应用接口分析

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

()16:20

/6采集类应用接口分析

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

/7采集类应用接口分析函数名称函数说明ZXBeeInfSend()ZXBeeInfRecv()函数名称函数说明ZXBeeBegin()ZXBeeEnd()ZXBeeAdd()ZXBeeDecodePackage()16:20

/8采集类应用接口分析家居环境采集系统设计:16:20

/9项目实践项目实践

硬件功能设计16:20

/10项目实践

采集温度传感器通信协议数据方向协议格式说明上行(节点往应用发送数据){temperature=X}X表示采集的温度值查询温度值,返回:{temperature=X},X表示采集的温度值。下行(应用往节点发送指令){temperature=?}16:20

/11项目实践

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

sensorInit(void){//初始化传感器代码htu21d_init();//

温湿度传感器初始化}16:20

/12项目实践

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

sensorUpdate(void){char

pData[16];char

*p

=

pData;updateTemperature();ZXBeeBegin();//

智云数据帧格式包头//

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

"%.1f",

temperature);ZXBeeAdd("temperature",

p);p

=ZXBeeEnd();if

(p

!=NULL)

{ZXBeeInfSend(p,

strlen(p));}DebugMsg("sensor->sensorUpdate():

temperature=%.1f\r\n",

temperature);

;}16:20

/13项目实践

循环定时触发void

sensorLoop(void){static

unsignedlong

ct_update

=0;if

(t4exp(ct_update)){sensorUpdate();ct_update

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

/14项目实践

温度传感器驱动函数函数名称htu21d_init()函数说明温度传感器HTU21D初始化htu21d_get_data()htu21d_read_nbyte()获取温度传感器HTU21D实时光强数据连续读出温度传感器HTU21D内部数据16:20

/15项目思考

WiFi的数据上报场景有哪些?

WiFi数据发送为何要定义数据协议?

WiFi的数据发送使用了哪个接口函数?16:20

/16谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十六

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()继电器关relay_control()继电器控制16:20

/17项目思考

WiFi的远程控制场景有哪些?

WiFi的远程控制的要点是什么?

WiFi的数据收发使用了哪些接口函数?16:20

/18谢谢!中兴教育管理有限公司Thanks物联网短距离无线通信技术项目十七

Zigbee农业预警系统1.项目场景2.安防类程序逻辑分析目录CONTENTS3.安防类程序接口分析4.项目实践项目场景项目场景

农业物联网智能大棚是一套智能的,多功能的植物生长环境保障系统,该系统能够根据大棚内外的环境变化事实调节大棚内部的植物生长环境,整套系统涉及的硬件系统,软件系统众多,因此智能大棚是一套高价值的植物生长环境保障系统。正应为其高价值,因此需要为智能大棚系统提供一套安全保障措施,如消防安全、安防安全、以及大棚内部的环境调节超出了其能力极限时的报警等。因此大棚内的安全预警系统是智能大棚的重要组成部分。16:18

/3任务目标智慧大棚系统中的安全防护系统是保证大棚正常工作的重要环节,本节以大棚内光照强度检测预警系统为例学习在应用接口下的报警节点的程序开发,学习并掌握控制节点的操作逻辑和应用接口的使用。16:18

/4安防类程序逻辑分析

安防类场景分析ZigBee无线网络的使用过程中最为重要的功能之一就是能够实现对监测信息的预警,通过ZigBee无线节点将警报数据通过ZigBee网络将大片区域的传感器数据在协调器汇总,并为数据分析和处理提供数据支持。ZigBee节点的报警功能有很多场景可以使用如:家居非法人员闯入;大棚环境参数超过阈值;城市低洼涵洞隧道内涝预警;桥梁震动位移预警;车辆内人员滞留预警等。ZigBee无线网络的远程信息预警的使用场景众多,但要如何利用ZigBee无线网络实现远程信息预警程序设计呢?下面将对远程信息预警程序逻辑进行分析。

远程信息预警程序逻辑1)节点安全信息定时获取并上报;2)当节点监测到危险信息时系统能迅速上报危险信息;3)当危险信息解除时系统能够恢复正常;4)当监测到查询信息时节点能够响应指令并反馈安全信息。安防类程序逻辑分析

安防类程序流程:安防类程序逻辑分析

安防类协议设计:1)每条数据以“{}”作为起始字符;3)数据上行格式参考:{value=12,status=1}2)“{}”内参数多个条目以“,”分隔;数据方向协议格式说明{sensorValue=X}

X表示采集的传感器数值,Y表示安防报警{sensorStatus=Y}

状态上行(节点往应用发送数据)下行(应用往节点发送指令)1.

:{sensorValue=X},X表示采集的传感器数{sensorValue=?}

、值。{sensorStatus=?}2.

:{sensorStatus=Y},Y为1表示报警,Y为0表示正常16:18

/7安防类程序接口分析

传感器应用接口函数:传感器应用层程序在sensor.c文件中实现,控制类传感器接口包括控制器硬件初始化(sensorInit())、控制器节点

温馨提示

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

评论

0/150

提交评论