数据请求和设计显示
嵌入式网页通常使用静态数组来存储HTML文档。本系统中每次收集的数据需要在网页上动态显示,因此需要在HTML文档中嵌入JavaScript程序来动态请求节点数据。浏览器连接到节点一次的工作流程如图11所示。传感器数据以JSON(JavaScript Object Notation)格式发送,这是目前用于通信和交换数据的通用格式,与编程语言无关。JSON格式的数据由字符表示,这有利于开发过程中的调试。同时,标准的数据交换格式也可以提高软件的兼容性。JSON包的格式如下。
$.get(“./ getair. json”, function (data)) 命令以下列格式响应传感器数据。本例中每个字段的数据根据实际的传感器数据而变化。
命令$.get(“./ getdevice. json”, function (data))要求获得以下格式的回复(设备信息,如ipv6地址)。
如图11所示,一开始,用户首先通过浏览器中节点的IPv6地址访问节点的嵌入式网页。节点监测到HTTP连接后,首先从存储的数据中直接读取索引的静态网页数据,然后将它们发送出去。在收到HTML格式的文件后,浏览器对其进行解析和显示。为了再次获得和显示传感器数据,该系统将JavaScript程序代码添加到HTML中,并向设备发送一个固定的URL请求。”$.get(“./GetAir.json”, function (data)) “函数从设备上请求传感器数据。收到请求后,设备以JSON格式向浏览器发送传感器数据。浏览器对数据进行解析并显示。然后,浏览器再次执行”$.get(“./GetDevice.json”, function (data)) “函数,请求设备的连接信息,这样就可以在网页上看到设备节点和客户端计算机的IPv6地址,方便用户管理。最后,执行该过程,得到完整的网页显示,如图12所示,可以看到通过http://[2001:da8:207:e219:280:e1ff.:fe18:2635]/网址访问的节点和根据传感器数据计算的AQI(空气质量指数)。
测试和分析
稳定性测试的分析
为了验证该系统在实际应用中的运行能力,本研究期间进行了两项测试:对传感器收集数据的稳定性和功耗的测试以及对IPv6网络的测试。
表3所示的数据是在无人维护的条件下,从1月到4月连续3个月监测多个站点的节点获得的。从表中可以看出,设备的数据完整率基本都在90%以上,这说明在这段时间内设备并没有完全关闭。导致部分数据丢失的主要原因是,在上传时,通信可能被错误地改变或丢失,或者设备在外部环境的影响下出现异常行为。然而,由于采用了看门狗和定时复位策略,设备可以自行恢复。结果表明,该系统可以满足对空气环境长期监测的要求。
TDS(理论数据量)表示设备按照正常采集频率应该获得的数据量。ADS(实际数据量)表示最终获得的实际数据量。公式 “DIE(数据完整性率)=ADV/TDV “计算设备的数据完整性。
原创文章,作者:中国IPv6网,如若转载,请注明出处:https://www.ipv6s.com/basis/application/202209222268.html