基于物联网技术的粮仓环境监测系统设计与实现

引言

粮食,作为一种特殊的商品和重要的战略物资,直接关系到国家的经济和民生。随着人口增长、经济发展和工业化进程加快,人类对粮食需求将持续增长。粮食安全是保障国民经济健康发展和社会和谐稳定的重要保障,因为它直接关系到广大人民群众身体健康和食品安全。随着经济全球化进程的加快以及人们生活水平的不断提升,粮食的需求量越来越大。我国作为一个粮食生产大国,每年都面临着新粮丰收和陈粮积压的挑战,若储存不当,将会导致大量粮食的浪费,给国家和人民带来巨大的经济损失。目前,国内对粮食储存的要求越来越高,传统的仓房仓储方式已经不能满足现代粮食加工企业的需要。因此,在面对不断增长的粮食需求时,迫切需要建立一套科学合理的粮食存储体系和相应的粮仓存储智能监控系统,以提高粮食存储的质量,确保粮食的安全使用。

一、绪论

  (一)研究背景与意义

作为人类生存所必需的基本物质资源,粮食不仅是一个国家经济发展和民生稳定的重要物质基础,更是其不可或缺的重要组成部分。近年来随着农业生产水平不断提高,粮食产量大幅增长,但由于受气候条件影响较大,每年都有不同程度的减产现象出现。随着社会的不断进步,我国的人口数量逐年攀升,然而,农村的耕地面积却在逐渐萎缩。因此,我国每年都要从国外进口大量的粮食以满足国内的需求。

作为一种无线通信方式,ZigBee技术以其独特的优势在智能家居、工业控制、环保和医疗等多个领域得到广泛应用,同时其卓越的性能也预示着其应用潜力和价值的巨大潜力。目前,粮仓监测系统已经成为了现代农业发展过程中不可缺少的一部分,而粮仓环境监测系统的实现更是离不开对传感器节点进行有效地布置。因此,将该技术应用于粮仓环境监测系统,无疑将带来诸多益处。

 (二)国内外粮仓环境监控的研究现状

在全球范围内,粮食存储安全问题一直备受关注,随着经济和科技的不断发展,各国也越来越重视粮食存储领域的科技投入,各种网络通信技术已经成为人们生活的各个方面不可或缺的重要组成部分。

1.国外研究现状

2002年见证了ZigBee技术的一个重要里程碑,当时Motorola、英维斯、三菱和荷兰飞利浦公司联合成立了ZigBee联盟。该联盟旨在为人们提供一种低成本、低功耗、低复杂度并且能够快速实现数据传送的短距离无线通信解决方案。目前,该联盟的成员企业数量已超过300家,覆盖了人类生活的各个方面。在农业领域,ZigBee技术的应用已经在国外获得了大量的研究成果。我国对这一新兴技术的研究起步较晚,目前还没有形成一套完善的体系。该系统对葡萄树上不同位置安装有大量的无线节点,通过对这些节点之间的信息传递来达到控制整个葡萄园的目的。本文还对两种无线传输方式进行对比分析并给出了相应的解决方案。因为ZigBce技术在粮食存储系统应用中表现出更高的适应性,这为后续的研究提供了坚实的基础。

2.国内研究现状

目前国内外已经出现了许多基于无线传感网的粮仓智能监测管理系统。相对于欧X家较为成熟的粮仓监控系统,我国在这一领域的表现还有待提高。目前国内外对粮库监测设备进行远程控制的方法都是通过有线或者无线两种方式来实现。在众多无线通信方式中,ZigBee技术因其卓越的性能而备受瞩目,仅仅几年的时间里,国内众多企业和制造商都将主要精力投入到了ZigBee技术的研究和开发中,从而使得该技术在多个领域得到了广泛的应用。由于其独特的优点,它必将对未来仓储管理产生重大影响。在粮食储存领域,已经涌现出了大量的研究计划和成果,为该领域的发展注入了新的活力。利用ZigBee技术,李理等人构建了一套小型粮仓无线监控系统,以实现对粮仓的实时监控。该系统对粮情进行实时监测,并能对信息传输过程进行有效地管理,具有一定的实际应用价值。该系统由两个模块组成,一个用于数据采集,另一个则用于数据处理。尽管国内外对于粮仓环境监测系统的研究已经达到了相当高的水平,但是在粮仓环境监测系统传感器方面的研究却相对较少,因此本文致力于完善ZigBee所搭建的无线传感器网络,以提高其参考价值。

 二、ZigBee技术介绍

在本章中,我们将探讨ZigBee技术优势,以及ZigBee网络体系结构、ZigBee协议栈体系结构和各层规范的应用情况。

(一)ZigBee技术

ZigBee技术的命名灵感来自于蜜蜂的通信方式,研究表明蜜蜂会以“Z字舞”的方式进行互相交流。在21世纪初期,IEEE协会成立了IEE802154工作组,旨在定义一种简单的短距离无线通信技术,并制定了物理层和MAC层的协议标准。由于采用了无线传输模式,因此其具有成本低、功耗低、体积小、重量轻、易于安装和部署的优点,非常适合应用于低功耗设备中。基于IEEE80215.4工作组的成果,ZigBee联盟对ZigBee技术的高层协议进行了精心的制定和完善,并经过全面的测试和推广,现已广泛应用于市场。它具有低功耗、低数据率、低成本、高可靠及自组网能力强的优点,可以满足各种复杂环境下数据传输要求。ZigBee技术已被广泛运用于医疗、环境保护、智能家居等多个领域,为现代社会的可持续发展提供了强有力的支撑。它以其低功耗、低成本以及组网灵活等优势而得到广泛认可。随着物联网技术的蓬勃发展,ZigBee技术已经深入渗透到人类生活的各个领域,成为了不可或缺的一部分。

(二)ZigBee网络体系结构

  1.ZigBee网络设备类型

ZigBee协议涵盖了协调器、路由和终端三种不同的设备类型。在实际应用中,由于不同设备所使用的硬件电路结构不一样,因此其功能也各不相同。以下是对三类设备的详细阐述。

ZigBee协调器,作为整个网络的中枢节点,承担着ZigBee网络的构建和配置任务,为每个节点分配了16个网络地址。协调器是由多个不同厂家生产的器件组成,每个器件都具有独立的功能,并与其它器件通过接口电路连接。为了维持协调器的正常运行,必须确保其持续供电,以保证其正常运转。一旦出现故障或其他异常情况,就需要更换新的器件才能继续正常运行。

ZigBee路由器:在信息传输的过程中,它承担着数据存储、转发、路由寻址以及多跳中继等重要职责。当发生故障或者需要重新布线时,路由器将根据自身情况进行重新部署。为了确保路由器始终处于正常运行状态,必须持续提供电力以维持其正常运行。

2.ZigBee网络拓扑结构

ZigBee协议规定了三种不同的网络拓扑结构,分别为星型、树型和网状。在实际应用中,为了满足不同用户需求,需要根据其特点选择合适的网络拓扑类型。以下是三种网络拓扑结构的详细阐述。

星型拓扑结构呈现出辐射状,在组网时需要根据不同应用场景选择合适的网络结构来实现业务功能。星型拓扑结构之所以备受青睐,是因为其简约的结构、少量的路由信息以及低廉的设备成本,使其成为一种极具优越性的选择。星型拓扑结构的不足之处在于其可靠性欠佳,这一点不容忽视。一旦协调器遭遇故障,整个网络便会陷入瘫痪之中,无法正常运作。由于星型拓扑结构中每个节点都有自己独立的通信接口和处理能力,因此当出现某个结点失效时,其他所有节点都不能及时地恢复其原有功能,导致整个星型拓扑结构崩溃。

树形拓扑结构:可以由多个分支构成,每个分支又可能包含多个节点。当网络连接时,各结点间通过路由来传递信息,而不是直接传递消息。如果该部分路径上有其它站发送出了信息,则其余站点也会收到相应的信息,这样就构成了树型拓扑结构。网络节点排列成树状,形成了一种树型拓扑结构。

网状拓扑结构:一般情况下,这种拓扑结构的网络都采用光纤作为主干,以满足军事单位、XX单位等上、下界限相当严格、层次分明的部门的需求。

(三)ZigBee协议栈概述

IEEE802.15.4已经定义了ZigBee协议中的物理层和介质访问控制层,这些层可以被视为网络传输中的重要组成部分。ZigBee联盟还达成了其他高层协议,为其未来的发展奠定了基础。这些协议可以看作一个整体。将每一层所定义的协议集合在一起,形成了一个名为ZigBee协议栈的结构,该结构是协议的具体实现方式,如图1所示。

9e23b9c6671a1aa04f61e1c3b6da967d  三、系统需求分析和设计

  (一)系统需求分析

  1.系统应用场景需求分析

为了监测粮仓环境,本系统的需求分析和设计都以粮仓的具体类型和内部实际结构布局为基础,其中立仓是一种占地面积较小、具有较高储存容量作业效率和良好密闭性能的理想选择。由于其易受外界环境干扰等因素影响,高大平仓之所以成为储存粮食的首选粮仓类型,是因为它具有极高的体高度和度,最大的储存容量以及出色的防潮性能,同时造价适中,整体性价比也非常高。目前世界上有许多国家都建立了自己的高坝和大型仓储工程以存储大量粮食。高大平仓是国内广泛采用的粮仓之一,其建筑规格包括高度不少于6米、长度不少于30米、宽度不少于20米。本课题研究的主要内容就是针对上述三种仓型中存在的问题和不足而提出一种新型智能粮仓系统设计方案,并对该方案进行详细的介绍和分析。我们所构建的系统适用于监测高大平仓内的环境参数。

 2.系统功能性需分析

在系统需求分析中,我们需要明确系统的主要功能是什么,以便更好地满足用户的需求。因此,设计了一个能满足粮仓环境信息监测与管理需要的无线传感器节点。本文探讨的基于ZigBee技术的粮仓环境监测系统,旨在实现以下主要功能:

(1)通过运用传感器技术,对粮仓内的温湿度和CO2浓度等环境参数进行了实时采集;

(2)通过运用ZigBee技术建立网络,对监测数据进行加工和传输;

(3)借助人机交互界面的编程技术,我们能够在监控中心上位机上接收串口上传的数据,实时呈现当前粮仓内环境参数数值,并以图形化的方式展示各参数的变化曲线,同时提供参数异常提醒功能。

3.系统性能需求分析

在系统需求分析中,性能需求的核心问题在于明确系统的本质属性以及其所能提供的功能和性能。通过对不同类型的传感器进行性能测试及现场实际运行情况分析发现,目前我国粮食仓储企业使用的各类传感器都存在一定程度的缺陷和不足,不能满足现代粮仓环境监测的要求。根据《粮仓环境测控系统国家标准》,粮仓内传感器的布置应遵循以下原则:

(1)每个粮仓内应至少安装一个温湿度传感器,其检测范围应在10%RH~99%RH范围内,且测量精度不得超过3%。

(2)温湿度传感器之间的水平距离应保持在5米以下,该传感器的温度检测范围为-40C~+60C,其测量精度可达0.1°C,且其使用寿命至少需要超过5年。

(3)为了满足对粮仓内环境参数的全面而准确监测的要求,需要在高大平仓内配置多种不同种类的传感器,这些传感器应位于堆面的中心位置和四个角落,距离粮堆面0.3~0.5。

 (二)系统设计要求

根据系统需求分析,本系统的设计要求之一是在构建过程中实现成本的最小化。在实验研究的过程中,我们运用了一小部分具有代表性的节点,以实现系统的构建。

1.采用较低的开发成本可以有效促进系统的推广。

2.降低节点的能耗。

3.确保系统的通信品质符合标准。

4.系统的安装和维护需要具备高度的可扩展性。

5.系统的上位机软件应当以直观易懂的方式呈现。

(三)系统总体设计方案

鉴于ZigBee技术在成本、功耗、灵活性、可靠性和安全性等方面的卓越表现,从图2中可以看出,相较于其他无通信技术,ZigBee更适用于环境监测的应用场景,同时也符合系统设计的要求,因此我们选择了ZigBee技术作为本系统的首选方案。针对粮食仓储监测系统功能多而复杂且对实时性有较高要求等特点。

 1.系统传感器选型

在系统设计中,终端节点的主要职责在于监测和采集粮仓环境参数,因此需要挑选相应种类的传感器以实现此项任务。在进行传感器选择时,必须确保系统性能需求得到满足,包括但不限于测量范围和精度,同时还需要考虑系统整体设计的要求。为了保证测量结果的准确性,应该采用低功耗的技术措施来提高数据获取速度。因此,在进行传感器的选择时,应当优先考虑数字式传感器,其集成度高、功耗低、体积小、外部电路连接简单,以确保最佳的性能表现。另外对于粮仓温湿度测量,需要根据实际环境状况来制定合理有效的策略,这样才能确保监测结果准确可靠。在粮食储存的过程中,粮仓内的温度和湿度是两个至关重要的参数,它们直接影响着粮食的质量和保质期。当粮仓里有水分含量较高时,会使得仓房内部出现一定程度上的热湿交换,导致粮堆温度升高。为了确保粮仓内的温度和湿度数值不会发生霉变腐烂或变质的情况,必须对其进行严格的管理和控制。如何才能准确地测量出粮仓内的温度以及水分值呢?为了测量粮仓内的温度值和湿度值,我们可以采用两种不同的传感器,一种用于测量温度,另一种则用于测量湿度。这样就能得到一个完整的仓房内温度和湿度分布状况。然而,在实际的测量过程中,我们不难发现,温度和湿度这两个参数之间存在着紧密的相互作用关系。所以我们就需要先确定温度和湿度是否处于同一环境下才能实现有效控制。对于常见的温湿度传感器,我们进行了比较研究。

50e080421403d6326592e4823f521fd0

考虑到DHT11温湿度传感器在测量范围、精度、响应时间和工作电压等方面均符合系统需求和设计要求,因此我们最终决定将其作为系统终端节点上搭载的温湿度传感器。通过对系统功能的测试分析,证明该温湿度传感系统达到了预期目标,具有很高的实用性,可应用于多种场合下。

 四、系统详细设计

  (一)终端节点设计

在粮仓内部部署终端节点,以满足系统性能的要求,并将其精准地安置于相应的位置。该系统由协调器节点和多个不同类型终端节点组成。作为整个网络的最基层节点,终端节点的主要职能在于实时采集粮仓内的温度、湿度和气体浓度参数,利用DHT11温湿度传感器和MQ-2气体传感器进行数据处理,并通过无线射频收发器将数据传输至路由器节点。协调器节点负责接收来自各终端节点发送过来的信息,将其转换成可控制各个设备运行状态的数字信号后再传送出去。在进行所有以上操作之前,终端节点的首要任务是成功融入协调器所构建的ZigBee无线网络,以确保数据能够顺畅地传输至协调器节点。本文介绍了终端节点的软硬件设计方案,包括硬件平台搭建以及软件程序编写两部分。在对终端节点进行功能设计后,根据其所需实现的功能,终端节点的硬件设计主要由传感器模块、处理模块、RF模块和电源模块构成。请注意,终端节点的电源模块所采用的供电方式为电池,这一点需要特别关注。本文详细介绍了整个系统的软件设计流程及各个部分之间的联系与作用,如下图2所示。

图2终端节点硬件结构框图

483e4581b08851426425804a1991fc6b  (二)终端节点休眠机制与电查询设计

为了确保终端节点的正常运行,以满足系统设计的要求,必须在其设计中融入休眠机制,以最大程度地延长其工作和使用寿命。目前,国内外已有不少关于终端节点休眠技术的研究。本文旨在探讨如何通过优化休眠控制方案,提升节点性能并降低功耗,从而达到优化系统性能的目的。在CC2530的电源管理中,一旦终端节点的传感器采集完一次环境数据并将其发送给父节点将在下一次数据采集工作之前的一段时间处于闲置状态,此时终端节点将进入休眠模式,以进一步降低其能耗,从而有助于节点延长其工作周期。休眠模式是一种低功耗的数据传输方法,能够有效节省能量。在本文中,我们详细探讨了休眠模式所涉及的硬件电路结构以及相关参数,为读者提供了全面深入的了解。对于休眠模式的软件实现也作了简单说明。由于PM2休眠模式中的复位、外部中断或睡眠定时器到期都会被转换为全功能模式,因此节点会利用睡眠定时器确定其休眠时间,以确保系统的正常运行。如果休眠定时未到达则通过定时器触发休眠程序使休眠解除。一旦计时器溢出,节点将被唤醒并进入全面的功能模式,以便在下一次数据采集和发送时进行操作,从而确保系统的正常运行。当节点处于休眠状态后,通过关闭部分功能模块或者改变其他一些配置以降低能量消耗。为了避免节点在进入全功能模式之前消耗过多的能量,提出了一种以低功耗为基础的策略。该方案通过对节点工作参数的控制以及休眠周期内剩余电量的计算,使节点能够根据自身能量消耗情况选择不同的工作模式。经过实验验证,采用此种方法可将电池的功率降至普通水平,同时提升整个系统的性能表现。该方案还能有效减少无线传感器网络中节点之间的通信距离,使整个无线网络更为高效可靠。终端节点将实现PM2模式向全功能模式的转换,以交替进入休眠和定时唤醒状态,从而为用户提供更加灵活和多元化的使用体验。

(三)路由器节点设计

在ZigBee无线网络中,路由器节点承担着通信中继的重要职责。为了使网络能高效地运行,设计一个能够实现无线自组网功能的路由器。如果没有网络支持的话,那么路由器节点会通过自身携带的传感器或者其他方式获取到数据信息后发送给协调器节点,从而实现对粮食的远程控制。在执行路由中继之前,路由器节点必须确保其通信范围内的协调器节点所创建的ZigBee无线网络与终端节点一致。如果路由器节点自身没有接入协调器网络则无法完成数据转发任务,否则将会影响整个系统的工作性能。当路由器节点和终端节点均处于协调器节点的通信半径范围内时,路由器节点不会发挥作用,即终端节点直接与协调器节点进行通信而非向路由器节点传输数据。本文研究如何根据具体要求选择合适的协调器来完成对整个粮食仓库的监控。通常情况下,路由器节点会被设置在粮仓的外部,且每个粮仓都至少配置有一个路由器节点,以确保网络的稳定性和可靠性。相对于终端节点而言,路由器节点无需进行参数采集,而是仅保留了处理模块、RF模块和电源模块,从而实现了更为高效的数据传输和处理。通过对不同类型的数据采用不同的方法来传输,从而可以达到减少能耗并提高网络性能的目的。为了确保与其通信范围内的终端节点之间的数据通信不中断,路由器节点的电源模块必须依赖直流电源进行供电。

 (四)协调节点设计

作为ZigBee无线网络的核心节点,协调器节点承担着组建网络、分配网络地址、接收粮仓内环境参数监测数据并进行相应数据处理、通过RS32口与上位机软件进行通信、向上位机传输数据以及接收上位机控制命令等重要职责。协调器节点安装在粮库中,可以对粮仓环境信息实现有效监测。为了实现与上位机的无缝连接,协调器节点通常被配置在距离监控中心计算机较近的位置,以便更好地实现其功能。本课题中的协调器节点为一个具有一定功率的小型无线收发设备,协调器节点可以利用市电作为直流供电电源。为了实现计算机RS232口和CC2530芯片USART接口的电平转换,本系统采用了PL2303芯片,以便在协调器节点与上位机通信时使用串口进行通信。该芯片具有强大的逻辑控制功能,能够根据不同要求实现相应的功能。通过PL2303芯片的应用,成功解决了RS232行通信装置与USB功能接口之间的连接难题。为了实现口通信的目标,同时方便后续的调试和维护,我们需要进行USB信息和RS232信息的互相转换。

 (五)上位机控设计

该系统软件展现出了卓越的稳健性和实用性,为用户提供了可靠的保障,使其在实际应用中表现出了卓越的可靠性。本文主要介绍了无线传感器网络技术在矿井环境监测领域的一些研究成果。经过对某煤矿井下温湿度监测现状的深入分析和研究,我们提出了一种基于无线传感器网络技术的实时矿井温湿度监测方案,并给出了具体的实现方案。该系统结构简单、易于操作,具有较好的扩展性和可维护性。根据上位机监控软件的功能设计,该软件系统由数据采集与显示模块、温湿度趋势图模块、历史数据模块以及系统设置模块构成,这些模块相互协作,形成了该软件系统的完整结构。该系统结构简单合理,使用方便灵活。软件的核心功能之一是生成温湿度趋势图,通过对传感器信号进行分析和处理,实时获取环境状态值并将其传输至上位机以实现报警。此外,该系统软件还具有存储、查询等基本功能。在软件设计中,采用了一种高度模块化的架构,将下位机和上位机两个组件巧妙地融合在一起,形成了一个无缝衔接的整体。数据采集模块已将温度、湿度、气体和节点电量四种数据信息纳入,而温湿度趋势图则展示了它们的变化曲线,而历史数据模块则提供了详尽的历史数据报表和数据变化趋势图。此外,为了方便用户查看当前环境状态,还设计了一个友好的人机界面,可随时显示监测数据及相应结果。该系统不仅能够实时监测和记录保存环境因子数据,而且可以通过查询图表直观地展示各环境参数之间的相互关系和变化规律,为用户提供更加直观的信息。此外,本文也给出了一些关键代码及程序框图。本文深入探讨了该系统软件的实现方式,并详细呈现了程序流程图,为读者提供了全面而深入的了解。在此基础上,对系统进行了测试,验证其功能与性能。经过对各个功能模块进行深入分析和精心设计,我们最终打造出了一个完整的软件系统。该软件采用模块化结构,由初始化模块,显示管理模块,参数设置与控制模块和系统管理模块组成,具有界面友好,操作简便等优点。系统设置涵盖了串口设置和数据刷新方式设置,用户可以根据个人偏好自主选择手动或自动刷新,以满足不同用户的个性化需求。

(六)上位机控软电量预机制设计

首先设定阑值,并根据碱性电池电压和电池容量之间的试验关系将电压阈值设置为2.7V。当电池电量数据和环境数据一同传输至上位机时,电量信息将被判定,若电池电压超过阈值,则软件界面将显示电量处于正常状态。如果低于阈值则表示该节点的电池电量小于耗。若电池电压接近2.5V阈值,则表明当前节点电池电量已接近耗损。

 六、系统实现

  (一)系统软件开发平台介绍

在系统硬件设计中选用的主控芯片是TI公司的CC2530芯片,其微处理器内核采用了8051,因此下位机软件程序的编程语言为C语言,软件开发平台的搭建是IAR集成开发环境和TI公司提供的ZigBee协议栈ZStack,如图3所示。

图3 ZStack协议栈的工作流程示意图

147b397f63bb2b54b33ae7ee8c9977a6  (二)协调器节点的实现

协调器节点的设计目的在于构建ZigBee网络,允许其他节点加入网络,管理网络节点并分配地址,无线接收来自其他节点的数据,并将串口上传至上位机以供显示。如图4所示为协调器节点的工作流程。

图4协调器节点工作流程

862754165dc8400737a7e8e47f4352a4  在协调器节点上电之后,首要任务是进行一系列的初始化操作。通过对各个传感器模块发送过来的数据进行分析处理得到当前环境下各区域的温湿度、光照度等环境参数,并将这些参数传递给协调器节点。接下来,协调器节点会进行信道能量检测,以选择一个最适合的信道,然后组建ZigBee网络,并设置该网络唯一的PANID标识符和16位的网络短地址,通常默认选择0x000作为其固定的地址,这样网络的创建就完成了。本课题实现的粮食监测预警系统采用分层分布式架构,由上层的数据库管理系统负责管理整个系统,而底层的协调器节点则作为下位机使用,负责采集并转发现场传感器信号以及粮情信息等数据。一旦数据到达协调器节点,OSAL系统将进行轮询,触发系统消息SYS EVENT MSG,接着进行消息类型的判断,进而调用事件处理函数SerialApp ProcessMSGCmd(MSGpkt)进行处理。同时协调器会将处理结果反馈给终端节点,终端节点对处理结果进行分析并做出相应的反应。协调器节点所接收到的粮仓监测数据和信息,均存储于afIncomingMSGPacket t*MSGpkt中,该结构体内包含ID、端口号、链路质量、RSSI值等信息,尤其是成员变量cmd所存储的应用数据,具有重要意义。

协调器节点接收无线数据功能的关键代码如下:

if(cvents&SYS EVENT MSG)

{

afIncomingMSGPacket t*MSGpkt;

while((MSGpkt-(afIncomingMSGPacket t_*)osal msg receive(SerialApp_TaskID)))

n.

case AF INCOMING MSG CMD:

SerialApp ProcessMSGCmd(MSGpkt):

brcak;

协调器节点事件处理函数的关键代码如下:

void SerialApp ProcessMSGCmd(afncomingMSGPacket t*pkt)

{

uint8 afRxData[30]={0}

switch(pkt->clusterId)

{

Case0x3A:

{

If(afRxDataSERIALAPPCLUSTERID:osalmemcpy(afRxData,pkt->cmd.Data,pkt->cmd.DataLength):switch(afRxData[0])

case 0x3A:if(afRxData[3]=0x02)

NodeData[afRxData[2]-1][0]=afRxData[4];NodeData[afRxData[2]-1][1]=afRxData[5];NodeData[afRxData[2]-1][2]=afRxData[6);NodeData[afRxData[2]-1][3]=afRxData[7);

NodeData[afRxData[2]-1][4]=0x00;

……

(三)路由器节点的实现

路由器节点设计的功能是路由中继,只执行数据转发,不对数据做任何处理。路由器节点工作流程如图5所示。

图5路由器节点工作流程

75828285b1378ff3d5db051bbaefd985  首先需要进行自身的初始化操作,其中包括硬件、接口、协议栈软件以及网络配置等方面的初始化。根据自己需要组建无线局域网时的具体要求,确定路由算法。接下来,进行信道扫描并挑选一个适宜的信道,以搜索在其通信范围内是否存在协调器节点所创建的ZigBee无线网络。如果发现符合条件的ZigBee无线网络,则会发送加入申请并等待回复。若没有响应则向协调节点发送请求报文,由其对接收到的消息进行处理得到相应的子帧数据,然后通过广播方式将这些子帧数据传输给目标代理节点。

(四)终端节点的实现

终端节点设计实现了对粮仓内各项参数的实时采集和自身电量的查询,同时节点还能够读取传感器采集到的数据并进行相关计算处理;在完成以上工作后再根据实际情况把数据传输给上位机进行存储及显示等操作。数据经由无线射频收发器传输至路由器节点。在路由器节点上设置相应的通信地址,实现与其它节点之间的数据传输及信息交互。如图6所示。

图6终端节点工作流程

0ef0de4100f6474a12c4c6d24dbe129f  终端节点最重要的功能就是采集数据。采用DHT11传感器进行监测采集DHT11传感器工作流程如图8所示

图8 DHT11传感器工作流程

a6f2a739ad3a389f16f070e9d711fc69  DHT11传感器采集数据功能实现关键代码如下

if(!DATA_PIN)

{

…….

uchartemp=(ucharT_data H temp+ucharT_data L temp+ucharRH data H temp+ucharRH data_L_temp);

…….

wendu=ucharT_data H;

shidu=ucharRH_data H

}

else

{

wendu=0;

shidu=0;

当气体浓度达标时,DO引脚为高电平,当气体浓度超标时则为低电乎。通过读取与之相连接的CC2530芯片的PO 6引脚的电平状态即可判断出当前气体浓度状况。

MQ-2传感器检测气体浓度功能实现关键代码如下

uint8 GetGas(void)

uint8 ret;

if(GAS PIN-0)

ret 0;

else

ret=1;

return ret;

事件处理函数实现关键代码如下:

void SerialApp SendPeriodicMessage(void)

uint8 SendBuf[10]=(0);

SendBuf[0]=0x3A;

SendBuf[1]-HI UINT16(EndDevicelD);SendBuf2]=LOUINT16(EndDevicelD);

SendBuf[3]=0x02;

DHT110;

SendBuf[4]=wendu;

SendBuf(5]-shidu;

SendBuf[6]=GetGas();SendBuf[7]=GetBattery0;SendBu[8]=XorCheckSum(SendBuf,9);SendBuf[9]=0x23;

……4

if(AFDataRequest(&SerialApp_TxAddr,(endPointDesct*)&SerialApp_epDesc,SERIALAPP CLUSTERID,10,SendBuf&SerialApp_MsgID0,AFDEFAULT RADIUS==afStatus_SUCCESS)

……

}

 (五)系统串口通信的实现

当一条信息通过串行接口传输时,其中的数据会按照先后的顺序进行传输。为了实现串口的快速可靠地与计算机相连,需要对串行通信协议栈和相关软件模块做相应的开发和调试。在本系统中,为了实现串口通信,我们使用了CC2530的USARTO接口作为协调器节点。

串口初始化实现关键代码如下:

halUARTCfg_t uartConfig;

uartConfig.configured=TRUE;

uartConfig.baudRate=SERIAL APP BAUD

uartConfig.flowControl=FALSE;

uartConfig.callBackFunc=ScrialApp_CallBack;

HalUARTOpen(UART0,&uartConfig);

为确保数据传输的顺畅性,必须先制定通信协议以规范通信双方的行为。在这种情况下,就必须使用通信协议来指导网络通信的具体流程,从而提高网络通信效率。

 (六)上位机软件的实现

系统上位机软件全称是智能粮仓环境监测系统。其实质为C/C++编译程序,内含一个集成开发环境ZigBee粮仓环境监测系统软件的设计功能是实时显示数据信息,帮助值班人员掌握粮仓内部环境状况。如图8所示。

图8上位机软件的实现流程图

5d738218acd870b24e9edff9d49b46da  OnBtnOpenCom0函数具体实现的关键代码如下:

if(m SerialPort.lnitPort(this,nPort,38400,N8,1EVRXCHARJEV RXFLAG512))

m bComState=TRUE;

mSerialPort.StartMonitoring();

m EditTextSetWindowText(打开串口波特率38400 8NI)

在设置数据刷新方式时包括手动刷新和自动刷新两种模式。如果选择的是自动刷新数据,利用OnBtnAutoUpdate()函数进行实现。所谓“自动刷新”,实质上是开启了一个定时器函数OnTimer),该函数将事先定义好的报文数组SendBuf[7]每秒通过串口发送一次,该报文中的功能码要求查询所有终端数据协调器节点收到该查询命令后立即将终端数据上传并显示出来,从而实现了软件自动刷新数据的功能。

OnTimer0函数具体实现的关键代码如下:

BYTE SendBuf7]=(0x3A0x00,0xFF0x01.0xC40x230x003:switch(nIDEvent)

case 1

m SerialPort.WriteToPort(SendBuf,6);

OnComm0函数具体实现的关键代码如下:

BYTE CheckSum=0;

strRxBufRxIndex]=(BYTEch;

RxIndex++;

sitatt

RefreshData();

RefreshData()函数功能是更新画面数据首先判断strRxBuf即功能码的内容,如果其值为0x01,表示查询所有终传感器的数据并更新。将strRxBufll数组中的值全部取出来在采集数据显示模块区域进行数据信息更新。

RefreshData()函数具体实现的关键代码如下:

switch(strRxBuf[3])

case 0x01:

for(i-0;iMAX NODE;i++)

memcpy(NodeDatal,&strRxBuf[index],4);index+=4;

 结语

有别于传统的粮仓采用有线通信与人工作业相结合的方式,本文将ZigBee无线通信技术与传感器技术相结合,设计了一种基于ZigBee技术的粮仓环境监测系统。

本次研究完成的主要工作如下:

(1)首先介绍本次论文研究的课题背和实际意义,对国内外关于仓监测系统的研究情况进行了阐述,了解国内外的研究进度和成果,然后确定了本文主要研究内容。

(2)ZigBee技术介绍。具体介绍了ZigBce技术的特点优势描述了ZigBee网络体系结构以及ZigBe协议,并对协议各层规范进行详细叙述。

(3)系统需求分析和设计。需求分析具体包括应用场景需求分析、功能需求和性能需求,进而形成系统总体设计方案,并对系统硬件中的传感器和主控芯片进行选型,最后对系统进行详细设计,包括终端节点、路由器节点、协调器节点、上位机软件和系统数据库的详细设计。

(4)系统实现。依据系统总体设计方案利用C语言在IAR8.1平台上实现了下位机的终端节点、路由器节点和协调器节点的功能。在实现终端节点功能中加入了休眠机制。运用C++语言在VC++6.0平台上对上位机系统监测软件的代码进行编写。上位机加入了电量预警机制,通过检测终端节点当前电池电压的方法来判断电池电量剩余情况,对电量低于阔值的节点进行电池更换以确保系统运行无差错。此外,参考Modbus协议完成了系统的串口通信

(5)系统测试,系统测试包括搭建测试平台、系统网测试、系统据通信测试和系统整体功能测试。

基于物联网技术的粮仓环境监测系统设计与实现

基于物联网技术的粮仓环境监测系统设计与实现

价格 ¥9.90 发布时间 2024年3月22日
已付费?登录刷新
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/203998.html,

Like (0)
1158的头像1158编辑
Previous 2024年3月22日
Next 2024年3月22日

相关推荐

My title page contents