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

2019-06-20  本文已影响0人  lanFeng666

一、综述

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

图1-1 系统结构图

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


图1-2 模块功能图

这张图有以下重要的点:

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

二、传感节点的开发

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

三、阅读器的开发

本套系统的当前情况下,在阅读器上,只要两块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屏蔽了。唯一有点嵌入式味道的就是一个小串口了。

四、关于层间主机的开发

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

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

类型:系统设计

上一篇 下一篇

猜你喜欢

热点阅读