




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高校物联网信息平台物联网网络体系实验指导书(IOT-L02-01)广州飞瑞敖电子科技有限公司2目录目录2实验一 感知层认知实验5一、实验目的5二、实验内容5三、实验设备5四、实验原理5五、实验步骤5六、实验报告要求9实验二 网络层传输实验11一、实验目的11二、实验内容11三、实验设备11四、实验原理11五、实验步骤12六、实验报告要求16实验三 感知层设备无线数传通信实验17一、实验目的17二、实验内容17三、实验设备17四、实验原理17五、实验步骤19六、实验报告要求21实验四 感知层设备WiFi通信实验22一、实验目的22二、实验内容22三、实验设备22四、实验原理22五、实验步骤23六、实验报告要求25实验五 无线数传转WiFi数据网关实验26一、实验目的26二、实验内容26三、实验设备26四、实验原理26五、实验步骤27六、实验报告要求28实验六 应用层环境监测报警系统程序设计实验130一、实验目的30二、实验内容30三、实验设备30四、实验原理30五、实验步骤32六、实验报告要求34实验七 应用层环境监测报警系统程序设计实验235一、实验目的35二、实验内容35三、实验设备35四、实验原理35五、实验步骤36六、实验报告要求37实验八 应用层环境监测报警系统程序设计实验338一、实验目的38二、实验内容38三、实验设备38四、实验原理38五、实验步骤39六、实验报告要求42实验九 应用层公交收费系统程序设计实验143一、实验目的43二、实验内容43三、实验设备43四、实验原理43五、实验步骤44六、实验报告要求46实验十 应用层公交收费系统程序设计实验247一、实验目的47二、实验内容47三、实验设备47四、实验原理47五、实验步骤48六、实验报告要求52实验十一 应用层公交收费系统程序设计实验353一、实验目的53二、实验内容53三、实验设备53四、实验原理53五、实验步骤54六、实验报告要求58实验十二 RFID标签控制传感器程序设计实验59一、实验目的59二、实验内容59三、实验设备59四、实验原理59五、实验步骤60六、实验报告要求61实验一 感知层认知实验一、实验目的1、初步了解不同的感知层设备的传统有线数据采集方法,建立对感知层设备的直观认识。2、了解如何读取感知层采集的数据。二、实验内容1、通过高频RFID读卡器感应射频卡信息,并将数据上传给PC。2、读取温湿度传感器的温湿度值。三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:串口大师(ComMaster.exe)(所有软件均位于配套光盘 .物联网网络体系实验箱应用程序 目录下)四、实验原理感知层是物联网的皮肤和五官用于识别物体、采集信息。感知层包括二维码标签和识读器、RFID标签和读写器、摄像头、GPS、传感器、M2M终端、传感器网关等,主要功能是识别物体、采集信息,与人体结构中皮肤和五官的作用类似。 五、实验步骤本实验箱的感知层设备为:高频RFID读卡器、温湿度传感器以及PLC。1、用实验箱配套的USB转公串口线接入PC机的USB口和实验箱的高频RFID读卡器串口接口,打开“我的电脑”-“设备管理器”-“端口”,查看该USB转串口设备对应的端口号,如图1,端口号为(COM4);注(1),如果是第一次使用USB转公串口线的话,需要在PC机上安装相应的驱动程序,驱动程序是配套光盘的 .物联网网络体系实验箱应用程序PL-2303 Driver Installer.exe。图1 查看USB转串口的端口号2、打开“串口大师”,选择正确的串口端口号(本例为COM4),设置波特率为9600,数据位为8,校验位为NO,停止位为1,点击“打开串口”,指示按键变红色,如图2所示;图2 打开串口大师(ComMaster)3、使用高频标签在高频RFID读卡器上方刷一次卡,读卡器会有“滴”声读卡提示音,此时观察“串口大师”的“数据接收区”,会出现读到的高频标签的卡号信息,如图3所示;图3 高频RFID读卡器通过串口上传读卡信息4、点击“串口大师”上的“关闭串口”按键,并清空“数据接收区”,断开高频读卡器电源以及读卡器串口和USB转串口的连接线;5、利用USB转公串口线连接PC机和实验箱上的温湿度传感器模块;6、打开“串口大师”,选择USB转换出来的串口端口号,设置波特率为9600,数据位为8,校验位为NO,停止位为1,点击“打开串口”,指示按键变红色;7、在“串口大师”的“数据发送区”输入读取指令“HC01”,并点击发送,观察“数据接收区”返回的数值,该数值即为温湿度传感器在接收到读取指令时的温湿度值,如图4所示;图4 温湿度传感器通过串口上传温湿度数据8、使用Modbus协议读取温湿度传感器数据。知识点:Modbus协议Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。有兴趣的同学可以去查看翻阅更多资料,这里先做试验,然后从试验结果中学习知识。利用USB转串口线连接PC机和温湿度传感器相连。Modbus协议规定此时的上位机读取数据的指令是十六进制的00 03 00 00 00 00 02 C5 DA而数据返回的格式是00 03 00 04 T_Hi T_Lo RH_Hi RH_Lo CRC0 CRC1具体协议内容请参考附件中的的串口温湿度传感器文档。在串口大师上发送第一组字符串,注意勾选左侧的16进制发送,和上方的16进制显示如图5所示,既可以返回按照Modbus协议规定的温湿度数据。图5 Modbus协议读取温湿度数据在此次实验中,读取的数据是 01 03 04 00 fa 02 08 da a4,根据刚才所介绍的方法,T_Hi(温度高八位)是 00T_Lo(温度低八位)是 fa根据公式计算 Temp=(T_Hi*256+T_Lo)/10=(0*256+0xfa)/10=250/10=25同理RH_Hi(湿度高八位)是 02RH_Lo(湿度低八位)是 08根据公式计算 RH=(RH_Hi*256+RH_Lo)/10=(2*256+0x08)/10=520/10=52%同学们可以比较通过ACSII(HC01)字符串得到的数据和通过Modbus协议得到数据之间的区别。六、实验报告要求1、记录实验结果。2、画出高频RFID读卡器读卡上传数据的流程图。3、画出温湿度传感器采集并上传数据的流程图。实验二 网络层传输实验一、实验目的1、了解网络层传输设备的重要参数和配置方法2、了解网络层如何传输数据二、实验内容1、配置WiFi设备服务器并接入无线局域网2、配置无线数传模块并传输数据三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 2台软件:串口大师(ComMaster.exe)无线数传模块配置工具(Rf-Magic42t.exe)四、实验原理1、物联网-网络层采用互联网中成熟的传输技术,其特点在于传输内容并不复杂的物品感知和控制信息及属性信息数据。网络层要解决的技术问题是要建立一种统一的数据传输协议(如:TCP/IP协议、MODBUS-RTU协议等),使物品的感知和控制信息与不同物联网管理平台信息交换。2、PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地址并报告是否收到所希望的ICMP回声应答,该命令体现了网络层的传输。3、无线数据传输通信拓扑图图1 无线数据传输通信拓扑图五、实验步骤本实验箱的网络层设备为:2个无线数传模块以及WiFi设备服务器。5.1、WiFi设备服务器网络传输1、实验箱左上角为WiFi设备服务器模块,在它下方的标签上记录了该模块接入的无线网络的SSID,该无线网络的密码,本模块的IP地址和开放的数据PORT号。2、给WiFi设备服务器上电;3、将PC机连入与WiFi设备服务器相同的SSID,设置PC机的无线IP地址和WiFi设备服务器为同一网段,打开命令提示符,尝试PING WiFi设备服务器的地址,本例中假设WiFi设备服务器的IP地址是192.168.0.5,如可以PING通,如图2所示,则说明无线网络是连通的;图2 PC机与WiFi设备服务器通讯5.2、无线数传模块的配置和管理利用USB转公串口线将PC机的USB口和实验箱内的无线数传模块底板上的RS232接口相连。注(1),如果是第一次使用USB转公串口线的话,需要在PC机上安装相应的驱动程序,驱动程序是配套光盘的 .物联网网络体系实验箱软件PL-2303 Driver Installer.exe。注(2),如果所使用的PC机上带有串口(一般情况下是公头)的话,可以直接使用公母直连串口线连接PC机和无线数传模块底板,但是在我们的方案中USB转公头串口线是默认的配置。PC机正确连接USB转公头串口线后,可以在 我的电脑-设备管理器-端口(Com和LPT) 中看到相关的硬件信息,如图3所示,此时我们使用了PC机上的COM3端口,根据不同情况此COM号会不同,请同学们确定自己的COM号。图3,找到了USB转串口设备打开配套光盘 .物联网网络体系实验箱软件RF-Magic42.exe 软件,给无线数传模块上电(一定要先打开软件再上电!),此时在软件的下端会有Found Device!的字样出现,说明我们的软件已经找到了设备,如图4所示,图4 RF-Magic42软件点击软件上的 Read R键,可以获得此时无线数传模块的默认配置,如图5所示:图5,无线数传模块的默认配置无线数传模块的默认配置为:串口端(Series Parameters),9600-8-N-1,RS232协议射频端(RF Parameters),波特率9600,射频频道433MHz。特别注意:请不要修改串口端的参数,以及射频端的波特率,但是一定要在老师的指导下,修改射频频道。因为默认情况下,一个实验室内的所有实验箱上的所有无线数块都工作在同一个射频频道上,这样在接下来的数据传输实验中会发生数据混传的情况,也就是说一个实验箱上无线数传模块发送的数据会被另外一个实验箱上的无线数传模块接收,从而导致无法正常进行实验。射频频道参数的有效值范围是 433MHz-478MHz,步进为1MHz。请在老师的指导下,为不同的实验箱分配不同的射频频道。但是同时要保持同一个实验箱上的两个无线数传模块工作在同一个射频频道上!5.3无线数传自组网的传输(一对一)1、如图1,利用实验箱配套的USB转公串口线分别连接两个无线数传模块和两台PC机,为无线数传模块上电;2、打开两台PC机上的“串口大师”,设置波特率为9600,数据位为8,校验位为NO,停止位为1,点击“打开串口”,指示按键变红色;注意:如果出现“串口被占用”的错误,重新插拔一下串口线即可。3、在PC1上串口大师的数据发送区输入“123456”,然后点击“发送”,观察PC2上串口大师的数据接收区能否收到字符串,在PC2上串口大师的数据发送区输入“abcdef”,点击“发送”,观察PC1上串口大师的数据接收区能否收到字符串,如图6; PC1的串口大师 PC2的串口大师图6 无线数据传输通信六、实验报告要求1、记录改变不同参数对应的实验结果。实验三 感知层设备无线数传通信实验一、实验目的1、了解串行接口、串口通信标准及连接方式2、了解无线数传模块结构3、了解无线数据传输通信过程二、实验内容1、学习配置和管理无线数传模块2、学会RS232、TTL等串口的连接3、验证数据的无线半双工通信三、实验设备硬件: 1、PC机 2台2、物联网网络体系实验箱 1套软件:1、串口大师(ComMaster.exe) 四、实验原理4.1、数据传送方式图1 数据传送方式分类图4.2、串口通信协议-RS-232标准RS-232(ANSI/EIA-232标准,RS:recommended Standard,推荐标准 )是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信,RS-232串口通信最远距离是50英尺(约15米)。 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。 图2 RS232串行DB9接头表1 RS232管脚说明4.3、RS232串口通信接线方法(三线制) 图3 RS232串口通信接线方法4.4、无线数传模块无线数传模块(RF Wireless Data Transceiver Module),无线数据传输广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。 无线数传模块结构框图如图所示:图4无线数传模块结构框图工作原理:通过MCU控制射频收发芯片RF-IC的寄存器来实现无线数据的发送和接收。五、实验步骤根据网络层传输实验所述,在做次实验室请将不同实验箱上的无线数传模块的射频工作频道调为不同的值。5.1、利用无线数传模块读取温湿度传感器数据利用实验箱配套的“公公交叉串口线”,将实验箱内的一个无线数传模块和温湿度传感器模块相连接,另一个无线数传模块通过USB转公串口线和PC机相连接,在PC机上打开ComMaster软件,设置波特率为9600-8-N-1,在发送区内发送数据HC01,观察接收区内是否有数据返回,如图5所示:图5,读取温湿度传感器数据温湿度传感器的正确数据返回格式是 H:xx:RH,C:yy.zz,表明现在的湿度是xx%,温度是摄氏yy.zz度。5.2、利用无线数传模块读取高频读卡器数据利用实验箱配套的“公公交叉串口线”,将实验箱内的一个无线数传模块和高频读卡器模块相连接,另一个无线数传模块通过USB转公串口线和PC机相连接,在PC机上打开ComMaster软件,设置波特率为9600-8-N-1,将实验箱配套的RFID卡靠近读卡器进行读卡操作,观察ComMaster的接收区是否能够收到一个十位数的数据信息,如图6所示:图6,成功收到了RFID卡的信息5.3 利用无线数传模块控制PLC使用实验箱中配套的三根公公交叉线中最长的一根(注意:必须是这根)连接PLC和一个无线数传模块。利用USB转串口线连接PC机和另一个无线数传模块。根据附件 实验箱1_V.01_ModBus格式测试命令.txt文档中的介绍,我们可以在PC机上给出相应指令,来通过PLC控制流水灯,LED,蜂鸣器等外围设备。六、实验报告要求1、记录实验结果。2、写出无线数据传输的流程。实验四 感知层设备WiFi通信实验一、实验目的1、了解WiFi设备服务器的工作原理、结构2、掌握WiFi设备服务器的管理与配置方法二、实验内容学会WiFi设备服务器的管理与配置方法三、实验设备硬件:1、PC机 1台2、物联网网络体系实验箱 1套软件:1、ComMaster 2、TCP/UDP调试软件 (所有软件均位于配套光盘 .物联网实验室物联网网络体系实验箱应用软件件)四、实验原理4.1、基本概念WiFi设备服务器是基于Uart接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户串口RS-232,RS485数据到无线网络之间的转换;通过WiFi设备服务器,传统的串口设备也能轻松接入无线网络。4.2、WiFi设备服务器主要功能1、基于自组网的无线网络(Adhoc):Adhoc也称为自组网,是仅由两个及以上无线终端组成,网络中不存在AP,这种类型的网络是一种松散的结构,网络中所有的 STA 都可以直接通信。 2.、基于 AP 组建的基础无线网络(Infra):Infra也称为基础网,是由 AP 创建,众多无线终端加入所组成的无线网络,这种类型的网络的特点是 AP 是整个网络的中心,网络中所有的通信都通过 AP 来转发完成。3、灵活的参数配置:1)基于串口连接,使用配置管理程序;2)基于串口连接,使用 Windows 下的超级终端程序;3)基于网络连接,使用 IE 浏览器进行web配置;4)基于无线连接,使用配置管理程序; 4、安全机制:本模块支持多种无线网络加密方式,能充分保证用户数据的安全传输,包括:WEP64/WEP128/ TKIP/CCMP(AES) WEP/WPA-PSK/WPA2-PSK。 5、支持通过指定信道号的方式来进行快速联网。五、实验步骤5.1、利用WiFi设备服务器读取高频RFID读卡器数据实验将WiFi设备服务器和高频读卡器通过实验箱配套的“公公交叉串口线”相连,在PC机(需保证PC机可以PING通WiFi设备服务器)上打开TCP/UDP调试软件,点击“创建连接”,输入WiFi设备服务器的IP地址和数据端口,如图1所示,点击“创建”,图1,创建TCP连接进入如图2所示界面,点击“连接”,如果此后显示的是“断开连接”的话,证明连接成功,进行刷卡操作,看一下在数据返回区是否能够收到RFID卡的数据,如果收到,证明实验成功,如图3所示。此时WiFi设备服务器从串口接收到了RFID读卡器传来的数据,然后它又将此数据通过WiFi无线网络传输到了PC机的应用程序上,证明了WiFi设备服务器的功能和作用,反之亦然,我们也可以从PC机上发送数据给WiFi设备服务器,然后由它将数据转发给接入它的串口设备,此实验可以通过将WiFi设备服务器和温湿度传感器相连来完成,将此实验留给同学们自己尝试。图2图3,成功接收到了数据。5.2 利用WiFi设备服务器读取温湿度传感器数据根据前几个实验所学知识,利用WiFi设备服务器读取温湿度传感器数据。5.3 利用WiFi设备服务器控制PLC根据前几个实验所学知识,利用WiFi设备服务器控制PLC,其中必须注意连接WiFi设备服务器和PLC的公公串口线,必须是实验箱配套公公串口线中最长的那一根。六、实验报告要求1、试用IE浏览器对WiFi设备服务器进行WEB配置。实验五 无线数传转WiFi数据网关实验一、实验目的1、了解无线数传/WiFi数据网关的构成2、了解无线数传/WiFi数据网关的数据传输过程二、实验内容1、搭建无线数传/WiFi数据网关及组网2、验证数据通过无线数传/WiFi数据网关在两种无线网络中传输三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:1、TCP&UDP测试工具 2、串口大师 四、实验原理4.1、无线数传/WiFi数据网关简介 通过前两个实验,我们分别学习了无线数传模块和WiFi设备服务器的工作原理和用途,在实际生产生活当中,IP地址是相对的稀缺资源,为每个设备配置一个WiFi设备服务器的话会导致IP地址匮乏,并且价格昂贵,而无线数传模块价格低廉并且也不受到IP地址的限制,但是无线数传使用的433M频率没有WiFi这么普及,所以如果能够将两者结合起来,是一个相当完美的方案,于是无线数传转WiFi网关便孕育而生了。4.2、无线数传/WiFi数据网关的构成无线数传/WiFi数据网关是由无线数传模块与WiFi设备服务器的数据口对接组成,主要作用是为433M无线网络与WiFi无线网络建立连接,也称为中间件。4.3、无线数传/WiFi数据网关组网图1短距离无线/WiFi数据网关组网拓扑图五、实验步骤1、确认WiFi设备服务器和两个无线数传模块均为前两个实验中使用的默认配置参数。WiFi设备服务器默认配置参数:IP地址192.168.0.*PORT4001串口9600-8-N-1确认可以通过PC机PING通WiFi设备服务器的IP地址无线数传模块的默认配置参数:射频频道不同实验箱上的均不同,同一实验箱上的必须相同串口9600-8-N-12、将WiFi设备服务器和无线数传模块1通过“公公交叉串口线”相连,将温湿度传感器模块和无线数传模块2通过“公公交叉串口线“相连。3、为所有设备上电;4、打开“TCP&UDP测试工具”,根据WiFi设备服务器的IP地址和端口号建立一个客户端连接,点击“连接”;在数据发送区发送指令“HC01”,观察是否有正确的温湿度传感器数据返回。5、将无线数传模块2通过“公公交叉串口线”和高频读卡器模块相连接,进行读卡操作,观察PC机的TCP/UDP测试工具上是否有正确的数据返回。如图2,所示:图2无线数传转WiFi网关正常工作6,原理分析此时温湿度传感器和高频读卡器采集到的数据首先通过串口传递给了无线数传模块2,无线数传模块2又将数据通过(433MHz-478MHz)射频信号传递给了无线数传模块1,无线数传模块1将数据通过串口线传递给了WiFi设备服务器,最终WiFi设备服务器通过WiFi网络信号将数据传递给了PC机上的应用程序。7,PLC的控制。根据之前实验学习到的东西,利用无线数传转WiFi网关控制PLC,需注意需要使用最长的一根公公交叉串口线连接无线数传模块和PLC。六、实验报告要求1、记录实验结果。2、画出数据传输的流程图。实验六 应用层环境监测报警系统程序设计实验1一、实验目的1、编写物联网应用层应用程序来实现环境监测报警功能二、实验内容1、硬件链路连接2、软件程序设计三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:TCP&UDP调试工具四、实验原理通过之前的几个实验,学生已经直观的接触学习和了解了物联网中多种典型的感知层数据采集设备(高频RFID读卡器、温湿度传感器和PLC)和多种典型的网络层传输方式(有线传输、433MHz无线传输、WiFi传输,433MHz+WiFi混合传输。)从本实验开始,我们终于来到了物联网应用开发的核心部分-物联网应用层应用程序的设计和开发中。和以往的人机交互应用程序不同,在物联网应用层程序开发中,数据交换双方均为各种感知层设备,这也就是所谓的M2M(Machine to Machine),应用程序相当于两个设备之间的通信桥梁和纽带,它一般以服务器程序的形式坐落于中央服务器上,所以相对于人机交换的应用程序,物联网中的应用层程序看重的更多的是稳定性,实时性和安全性。本实验将要设计的程序示意图如下:图1 环境监测报警系统流程图五、实验步骤5.1、硬件连接和测试1、按照图2所示,连接实验箱的各个硬件部分图2 实验箱硬件连接示意图2、利用之前实验学到的知识,通过TCP&UDP软件测试是否能够读到正确的温湿度数据和控制PLC。5.2、软件程序程序由于笔者的能力所限,在本实验中给出的实例源码均是基于Linux操作系统的C语言开发,学生可以在领会程序的设计目的后,使用自己擅长的编程语言和编程环境进行相应的程序开发。以下给出关键代码,该程序实例源码位于配套光盘的.物联网实验室物联网网络体系实验箱源码EXP6 目录下。编写程序是需要注意以下几点:1,使用多进程(线程)的方式分别从socket中读和写数据。2,通过与WiFi设备服务器相连接的无线数传模块发送的数据是以广播形式发送的,也就是说在编程的时候,你想要给PLC发送一条指令,其实温湿度传感器也可以收到这条指令。在这个项目中,无法指令接收对象。3,向温湿度传感器发送了读取指令后,温湿度传感器会返回现在的温湿度。向PLC发送了控制指令后PLC如果正确执行的话,会返回这条控制指令的原文。4,一定要结合 .物联网实验室物联网网络体系实验箱附件 中的两个文档 串口温湿度传感器和实验箱1_V.01_Modbus格式测试命令进行实验,理解文档中所描述的协议内容。5.3、示例源码测试在Linux环境下测试示例源码时,请确保Linux主机和WiFi设备服务器位于同一无线网络中,运行$gcc Environment1.c o Environment1 编译源码,运行$./Environment1启动程序,PLC的数码管上开始显示现在室内的温度值,如果该值大于30,蜂鸣器开始报警。在源码中有详细的注释解析,学生可以通过实验,使用自己擅长的编程语言来完成该实验。六、实验报告要求实验七 应用层环境监测报警系统程序设计实验2一、实验目的1、完善环境监测报警系统二、实验内容2.1、利用命令行参数的方法传递参数2.2、利用配置文件的方法传递参数三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:TCP&UDP调试工具四、实验原理再上一个实验中,我们虽然完成了环境检测报警系统的初步功能设计,但是它从一个可以稳定高效运行的物联网应用层软件的角度来说,还是实在太简陋。最主要的一个问题无法动态设置参数。里面用到的WiFi设备服务器的IP地址,端口号,读取温湿度传感器的周期等参数都是在程序源码中写死的,无法改变,在本实验中,将交给学生两种动态设置这些参数的方法,分别是通过命令行参数的方式和配置文件的方式,在启动程序之前可以动态的改变想要接入的WiFi设备服务器的IP地址,WiFi设备服务器的端口号,读取温湿度传感器的周期以及温度上限值这四个参数。五、实验步骤5.1、利用命令行的方式打开1、实例源码存放在源码目录中的 Enviroment2.c 文件,从源码中可以看到,和Enviroment1.c不同,此时不在将 SERVER_IP(WiFi设备服务器的IP地址),SERVER_PORT(WiFi设备服务器打开的数据端口),READ_PERIOD(读温湿度的周期)和TEMP_LIMITE(温度上限值)这几项写死在源码里面。这几项是从后面的 c=getopt(argc,argv,”i:p:c:l:”)!=-1 这一段代码中取值的,学生可以网上查找getopt的使用说明。通过这种方法,程序可以在启动的时候,通过命令行参数动态的获得新的各项参数。2、测试。编译源码,以一下命令行开启程序$./Enviroment2 i SERVER_IP -p SERVER_PORT -c READ_PERIOD -l TEMP_LIMITE例如$./Enviroment2 i 192.168.0.101 p 10001 c 5 l 35的意思就是将程序接入 IP地址位192.168.0.101的WiFi设备服务器的10001端口,进行环境检测,每5秒钟读一次温湿度传感器数据,当温度大于35的时候,PLC控制蜂鸣器报警。 5.2、利用配置文件的方法1,在实验步骤5.1中我们了解到可以使用命令行参数的方法动态的给程序传递参数,解决了上一个实验中遗留下来的问题,但是它也有很多的局限性。比如说此时只需传递四个参数就要用到九个命令行参数,如果想要传递更多的参数的话那么岂不要执行一条很长的命令?岂不要有很多标示符?这很明显实不可取的,所以在这一步中,我们将继续修改Environment1.c程序,然后利用配置文件的方式为程序传递参数,这也是绝大多数应用程序采用的方法。实例代码为源码包中的Environment3.c程序,而其要读的配置文件为 Environment3.conf。2,在源码的注释中给出比较详细的说明。程序首先将打开位于同一目录下的 Environment3.conf文件,一行行的读取其中的内容,所有已#开始的行均为注释,其他行则以关键字开头,例如记录WiFi设备服务器IP地址的行必须要写成:I=192.168.0.142然后程序按照一定的算法规则提取其中的192.168.0.142字符串并存储在变量中以供后用。编译并执行测试实例程序,修改Environment3.conf中的参数(将温度上限值改为不同的值),然后再重新启动程序,看看程序是否会根据配置文件中的新的参数进行执行。六、实验报告要求1、使用自己擅长的语言,完成上述两个实验的代码设计。2,、在实例代码中仍然存在很多问题,比如在Environment3.c中,规定了配置文件参数行必须以I=192.168.0.142 的形式存在,如果I之前存在空格或者 142之后还有注释,整个程序将不再运行,修改这些bug。实验八 应用层环境监测报警系统程序设计实验3一、实验目的1、完善环境监测报警系统2、性能测试二、实验内容2.1、找BUG并完善环境检测报警系统2.2、性能测试三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:TCP&UDP调试工具四、实验原理无论是什么程序都存在BUG,所以发现BUG和解决BUG是作为软件工程师不可避免的一项工作。任何一个程序实现其本来设计的目的也许只占整个研发工程百分之十的比重,其它百分九十的时间都是在测试和DEBUG中用掉的。所以测试是一个合格的软件工程师必须要经历的锻炼。本实验内容旨在告诉学生们,永远要抱着吹毛求疵的态度去写代码。五、实验步骤5.1、BUG11、继续以Environment1.c为模板,来分析里面存在的问题(除了之前已经提到的静态参数的问题)。首先我们看display_temp()这个函数的源码 :unsigned int display_temp(unsigned char T_Hi,unsigned char T_Low)int i=0;unsigned int crc;/还没有增加CRC校验码的字符串unsigned char Temp_Array8=0x01,0x06,0x00,0x5d,T_Hi,T_Low,0x00,0x00;/得到了crc,利用余除的方法将其赋值给array,注意crc高位在后,例如如果crc是0x8583,则要把0x83放到Temp_Array6,0x85放到Temp_Array7。crc=crc_cal16(Temp_Array,6);Temp_Array6=(unsigned char)(crc%0x100);Temp_Array7=(unsigned char)(crc/0x100);/发送给PLC,并将值在数码管上显示出来。write(client_socket,Temp_Array,8);/如果温度大与TEMP_LIMITE,则报警,之所以sleep(1),在报警是因为经过测试如果不有一段间隔的话,PLC不会做出正确的反应。if(T_Hi*256+T_Low)10*TEMP_LIMITE)sleep(1);write(client_socket,BEEP_ARRAY,8);/温度小与TEMP_LIMITE,则发送关闭报警的功能。elsesleep(1);write(client_socket,BEEP_STOP_ARRAY,8);return 0;以上这段代码进行CRC校验和给PLC发送要在数码管上显示的数据均没有问题,问题出在-给PLC发送蜂鸣器指令的时候。这段代码每次都要判断温度是否超标,如果超标的话就每次都要发送指令,反之则每次都不发送。在现实的环境检测中,温度上限设的比较高,很少有超出上限的情况,此时这个程序还要每次告诉PLC不用响蜂鸣器,这显然是一件多此一举的事情,我们想要做的效果如下图所示:图1,新程序的设计思路那么如何判断蜂鸣器是否正在报警呢?很简单,只需加一个判断变量BEEPING就可以了,如果正在报警BEEPING=1,没在报警则BEEPING=0,经过修改后的代码为Environment4.c,可以通过阅读源码来观察程序是如何使用这个变量的。经过修改的程序,减少了大量的和PLC之间的交互,提高了性能。5.2、BUG2重新阅读接收Socket数据的子程序,当我们收到9个字节的时候,可以证明这个是温湿度传感器传回来的数据值,但是我们没有对其进行CRC校验,这是个重大的问题,我们必须加上CRC判断,新添加的CRC校验函数如下所示:/用来对接受到的温湿度数据进行CRC校验判断接受到的是否是正确的数据。unsigned int crc_check(unsigned char * buffer,int len)unsigned int crc=0;crc=crc_cal16(buffer,len-2);if(*(buffer+len-2)!=(crc%0x100)|(*(buffer+len-1)!=(crc/0x100)return 0;elsereturn 1;将字符串 长度为len的buffer的头len-2个字节(后两个值为现有的crc值)给crc_cal16函数,去计算正确的crc校验值,然后将现有的crc值(分别为 buffer+len-2和buffer+len-1)去和计算得到的值 (crc%0x100和crc/0x100)比较,如果一样的话返回1,证明是正确的,如果不一样则返回0.5.3、BUG3程序的接收进城可以接收到两种数据,一种是温湿度传感器传送回来的9个字节的温湿度数据,这是我们想要的,需要对其进行处理,另外一种是PLC返回的8个字节的回复信息,本身没有什么用处,所以不需要对其进行处理。但是在此时的时候我们会发现,有的时候调用一次 read()函数,可能会直接收到17个字节,也就是说它同时收到了来自温湿度传感器和PLC的数据,那么如何判断和处理这17个字节呢?我们再观察返回的字节,从PLC返回的均是以 0x01 0x06开头,而从温湿度传感器返回的是以0x01 0x03开头,所以我们只需判断17个字节的第二个字节是0x03还是0x06即可。实例代码如下所示else if(nread=17)if(*(read_buffer+1)=0x03)if(crc_check(read_buffer,9)display_temp(*(read_buffer+3),*(read_buffer+4);elseprintf(error in crc check!n);else if(*(read_buffer+1)=0x06)if(crc_check(read_buffer+8,9)display_temp(*(read_buffer+11),*(read_buffer+12);elseprintf(error in crc check!n);这段代码的意思是当一次性收到了17个字节的时候,我先判断第二个字节是什么,如果是0x03,那么头9个字节就是我们想要的温湿度数据。如果第二个字节是0x06,那么后9个字节才是我们想要的数据。然后对想要的9个字节进行crc_check校验和显示将相应的数据显示在PLC上。六、实验报告要求实验九 应用层公交收费系统程序设计实验1一、实验目的1、利用实验箱内的资源编写设计出一套简单的公交收费系统,RFID标签打卡收费的效果。二、实验内容1、硬件调试2、编写和设计程序三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:TCP&UDP调试工具四、实验原理从本实验开始,我们将利用4个实验来一步步的完成一个完整的公交收费系统的设计,本实验首先实现最简单的目的。将公交车的卡号写进程序中,然后给它一个固定的初始金额,每刷一次卡,将扣两块钱,余额在PLC数码管上显示,如果读到的卡没有记录或者余额不足,则PLC控制蜂鸣器报警,流程图如下所示。软件流程图:图1 公交收费系统流程图五、实验步骤5.1、硬件连接和测试1、按照图2所示,连接实验箱的各个硬件部分图2 实验箱硬件连接示意图2、利用之前实验学到的知识,通过TCP&UDP软件测试是否能够读到正确的高频RFID读卡器的读卡数据和控制PLC。3、将实验箱内配套的五张高频RFID标签的卡号通过TCP&UDP调试工具记录下来,它们将当做公交卡的使用。5.2、软件程序程序在此有几个需要特别注意的地方:1,在使用TCP&UDP读卡的时候,如果仔细观察的话,会发现我们在接受框内得到了一个10位的数字,而左侧的接受数据接收到的却是11个字节,如图3所示:图3,接收到的数据这是因为在接收到的这串数据中还有一个看不到的r特殊字符,它不会显示的显现出来。所以我们在编写程序的时候,不能直接拿接收到的字符串和已经定义好的字符串进行比较,而必须进行一些处理,这将在源码的注释中有提到。2,和之前的实验一样,向PLC发送两条指令的时候中间最好有段间隙。5.3、示例源码测试编译运行 源码/Bus 目录下的Bus1.c程序,测试是否能够达到我们的需求。在测试中,可能会发生刷卡后没有反应的情况(读卡器读到卡,而金额没有变化),造成这样的原因是此时程序没能一次性的读到11个字节的卡数据,而造成这次读卡操作作废。学生可以增加读卡间隙(至少保证读卡之间有10秒的间隙)。我们会在后面的程序中来修改这个BUG。六、实验报告要求实验十 应用层公交收费系统程序设计实验2一、实验目的1、改进公交收费系统,学习使用MySQL数据库C API接口二、实验内容1、了解和使用MySQL数据库2、使用MySQL数据库C语言API接口改写公交收费系统程序三、实验设备硬件:1、物联网网络体系实验箱 1套2、PC机 1台软件:TCP&UDP调试工具四、实验原理在上一个实验中,我们实现了最简单的公交收费系统,但是很显然,里面有很多很不合理的地方,最主要的一点是,我们将卡的初始化写进了程序中,这样一来,每次启动程序的时候,每张卡片又都恢复了最初的初始时的金额,另外再添加一张新卡也是很难以操作的,需要重新改写和编译程序才能达到目的,这明显不是我们想要的。如果想要解决上午两个问题,有多种方法,第一是使用我们前面学习过的建立一个配置文件的方法,将可变参数记录在里面,但是当数据过多的时候,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酿酒技术及管理知识培训课件
- 实验动物助理技师模考试题+答案
- CN120204818A 一种工业废气的脱硫装置
- 老年人家庭小吃培训课件
- 诗词文言文对比阅读(一)原卷版-2026年中考语文专项复习(浙江专用)
- 声与光-2024年中考科学一轮复习(浙江新统考专用)原卷版
- CN120203315A 一种多体型适配的人体测量与个性化服装样板生成方法
- CN120202777A 一种种子播种预处理设备
- CN120199326A 一种融合基因数据的多癌种筛查模型构建方法及系统
- CN120198657A 基于混合域注意力机制的全卷积单阶段目标检测方法
- 《重核裂变与轻核聚变》参考课件
- 四川古蔺汉语方言音系调查研究
- 美容美发店员工二零二五年度劳动合同范例
- IP授权使用合作协议书范本
- 铁路运输融资创新-洞察分析
- 安全法律知识培训课件
- 顶管工程监理规划
- 妊娠合并地中海贫血护理
- 2025年汽车零部件企业公司组织架构图职能部门及工作职责
- 机械加工质量控制计划
- 《水利工程质量》课件
评论
0/150
提交评论