美文网首页
一套基于Zigbee和WIFI技术的矿井数据监控系统的设计

一套基于Zigbee和WIFI技术的矿井数据监控系统的设计

作者: lanFeng666 | 来源:发表于2019-06-20 12:00 被阅读0次

一、综述

前段时间参与了实验室的一个矿井项目,使用的技术是Zigbee和WIFI,使用到的芯片是常见的CC2530和ESP32。其结构可以用下面图1-1来进行较为精确的描述。

图1-1 系统结构图

其中,阅读器就是矿井中,每一个传感网中的协调器,同时在协调器上拥有一个ESP32,让其可以连接WIFI。所有的阅读器都是通过WIFI与层间主机通信的;这里的层间主机可以说就是一个物联网中间件,它可以管理位于现场的网络,同时又要与位于云端的系统进行交互。在本系统中,几乎所有的业务逻辑和一些实时调度算法都写在了层间主机中了。因此,从软件的开发角度来说,这个系统的软件结构可以使用图1-2来描述。


图1-2 模块功能图

这张图有以下重要的点:

  • 如果对系统的要求不是太高,可以将阅读器和层间主机合在一起。
  • 系统的层间主机和阅读器是位于同一个局域网中,因此速度是很可观的。如果不使用无线WIFI,使用网线将会有更加可靠的性能,以及更加快的速度。
  • 整个系统的开发划分是很明确的;传感节点只需要将自身的采集速度达到极致,并检测一下系统异常即可,不用关心其它的业务逻辑;控制节点只需要接收来自层间主机的控制命令即可;而阅读器只是作为一个中转器,将底层网络与层间主机连接起来。这一部分的开发有着明显的嵌入式气息,不关注业务逻辑,重点关注系统硬件的性能,将性能达到极致即可。
  • 对于层间主机,就是普通的软件研发了,但是由于本系统对于阅读器和层间主机之间的通信这个问题上,使用的TCP通信,因此,需要很熟悉TCP Socket网络编程,否则是玩不转的。

下面本文作重介绍,每个系统模块的研发重点。

二、传感节点的开发

这里的开发就是典型的嵌入式系统的开发;在这次开发中,很多时候,使用的是ADC去读取各种传感器的采集到的模拟量,然后做一些简单的处理,就将采集到的数据按照设计的协议,发送给阅读器了。此处的开发重点有:

  • ADC的精准采集(不管是外部还是CC2530自带的片上ADC,如果要求严格,就需要用到外部的ADC)
  • 简单的运用一下Zigbee协议栈,收发数据与软件定时器
  • 在设计PCB的时候,注重串口调试

三、阅读器的开发

本套系统的当前情况下,在阅读器上,只要两块MCU,一块是ESP32,一块是CC2530;其中CC2530作为无线传感网的协调器,ESP32作为上层网络的通信芯片(准确点说是模组)。

3.1 CC2530的开发

此处的CC2530的功能是很简单的;

  1. 对来自下层的数据进行封装(主要是为来自下层的数据包添加一个头部),将封装好的数据按照系统设计的指令发送给ESP32。
  2. 解析ESP32发送过来的指令,根据指令做出处理(例如ESP32发来的控制远处节点的指令,或者是一些管理网络的指令)

此处上发的数据报头的内容主要是底层传感节点的基本信息;如果是一个控制节点,还需要包含这个节点的网络地址信息

3.2 ESP32的开发

在ESP32上主要有以下开发重点:

  1. 与CC2530进行交互(UART或者SPI啥的),并设计指令,根据设计好的指令实现指令收发器
  2. 连接wifi(可以支持微信配网功能),并在WIFI发生异常的时候,从新连接WIFI或者等待WIFI正常再去连接。
  3. 实现一个靠谱的TCP通信模型,包括网络异常情况下的处理,这个在这块片子上的开发应该属于最难的部分了。

由于使用的是ESP32模组,因此,这里的嵌入式开发的气息已经不是太重了,因为它都被乐鑫公司的底层SDK屏蔽了。唯一有点嵌入式味道的就是一个小串口了。

四、关于层间主机的开发

层间主机在整个系统中起到了一个大脑的作用,它简单地管理着下层网络,同时也控制着下层网络,了解这下层网络的一切,调度这下层网络节点的执行行为。但它基本不存储数据,它不做报表,这些交给服务器处理;同时,它的运行规则也有服务器来决定,例如控制某一个电机启动的阀值,这个就由服务器提供;这里仅仅是展示缓存,同时在与服务器通信异常的时候,也可以确保这整套系统的基本运行正常(也就是说,它同时也承担这抵御风险的功能,是可以提高系统的稳定性的)。

由于层间主机和阅读器在同一个局域网中,它们之间的通信也会相对稳定,迅速。

类型:系统设计

相关文章

网友评论

      本文标题:一套基于Zigbee和WIFI技术的矿井数据监控系统的设计

      本文链接:https://www.haomeiwen.com/subject/ixvrqctx.html