祝珂 王林飞 邓自宁
北方民族大学 计算机科学与工程学院 宁夏 银川 750000
农业作为我国的基础性产业之一有着重要的地位。随着国民经济的快速发展,农产品质量下降、资源浪费等诸多问题突出。由于生产技术手段在各地的应用程度不同,仍有部分落后地区不能实现农业智能化种植。在这种情况下,“农业物联网”应景而生。在物联网的应用中又需要一种新型网络设备,使得采集农业环境数据的传感器节点连接到网络中,这种关键设备就是农业物联网网关。因此,本文将设计一款基于STM32的农业物联网网关,该农业物联网网关下行可接入Zig Bee、蓝牙、Lora等模块,上行使用Wi-Fi模块进行通信。通过设计的农业物联网网关可以实现以上异构网络的互联,从而增强了所设计的农业物联网网关设备的平台通用性。对下层感知层上传的农业环境数据或者上层网络层下发的数据进行协议格式的转换,实现不同网络之间数据的传输。
农业物联网网关设计主要是完成对不同通信方式的接入以及通信协议转换。主要由STM32主控MCU、Wi-Fi模块、Zig Bee模块、BLE模块、LORA模块等组成。系统硬件设计图如图1所示。
图1 系统硬件设计图
选用ST公司开发的STM32F1系列的STM32F103ZET6单片机,负责系统的整体运行。其芯体尺寸是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K。其内部多达8个定时器,包含2个IIC接口,3个USART接口,2个SPI接口。STM32单片机的PA9和PA10引脚用作程序的烧录接口,PA3和PA2用来做下行通信数据的收发,PB10和PB11用来做上行通信数据的收发[1]。
Wi-Fi模块选择ATK-ESP8266。该模块是ALIENTEK推出的一款高性能的UART-WiFi模块,不仅板载ai-thinker公司的ESP8266模块,还通过了FCC,CE认证。该模块采用串口与MCU通信,内置TCP/IP协议栈,能够实现串口与Wi-Fi之间的转换。通过该模块,传统的串口设备只是需要简单的串口配置,即可通过网络传输其数据。且其支持LVTTL串口,兼容3.3V和5V单片机系统,可以很方便地与STM32单片机进行连接。在使用中可以选择WIFISTA模式,从而快速构建串口Wi-Fi数据传输方案,方便使用互联网传输数据。
ZIGBEE模块选择CC2530。该模块能够以非常低的总的材料成本建立强大的网络节点。CC2530 有4种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存;具有不同的运行模式,使得它尤其适应超低功耗要求的系统;包含很多不同的外设,允许应用程序设计者开发先进的应用。比如I/O控制器、定时器1、调试接口等。在供电电压2~3.6V情况下运行能达到最好的效果。可应用于家庭/楼宇自动化,照明系统,工业/农业控制和监控等。
LORA模块选择ATK-LORA-01。该模块是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计采用的是SX1278扩频芯片,模块的工作频率为410~441Mhz。以1Mhz频率为步进信道,共32个信道。可通过AT指令在线修改串口速率,发射功率,空中速率、工作模式等各种参数,并且支持固件升级功能。该模块具有透明传输,定向传输以及广播监听3种模式,本文选择第一种模式进行数据传输。并且该模块具有广泛的应用场景,可用于无线传感,智能家居,自动化数据采集等[2]。
BLE模块选择ATK-BLEO1。该模块是正点原子推出的一款支持蓝牙4.2协议的低功耗数传模块,无线工作频率为2.4GHz ISM。该模块主从一体并支持多种工作模式,比如主设备模式、从设备模式、广播者模式等低功耗模式。支持数传以及一对多数据广播。可应用于工业/农业数据采集,智能仪表,信息识别,智能移动终端等。
农业物联网网关软件部分需要完成的功能是:建立网关的多种下行通信方式的接入,Zig Bee模块、蓝牙模块、Lora模块等等,将接收到的数据信息发送到网关;建立上层服务器和网关之间的Wi-Fi通信连接,实现数据经网关发送到上层服务器;进行协议转换,实现不同通信方式之间的互通。程序是在KEIL公司Keil uVision5环境下开发的,其子程序主要包含了Zig Bee初始化,LORA初始化,BLE初始化,Wi-Fi初始化,串口初始化,串口中断函数初始化,协议转换函数等。
首先启动系统并且初始化串口,配置设备节点并将其载入。系统开始运行后,判断是否从上层服务器接收到数据。如果接收到数据则对其进行解析,根据数据段的功能码及用户的需求进行协议转换,转换完毕后将数据帧进行下发;如果未接收到数据则分别判断是否从LORA、BLE、Zig Bee 三个模块接收到数据。如果从3个模块的某一种中获取到数据,则对其进行保存,根据数据段的功能码已经用户的需求再次进行协议转换,转换完毕后将数据帧上传到上层服务器,由此便完成了一次完整的数据传输的过程[3-6]。
通过软硬件的设计,实现了基于STM32的农业物联网网关整体功能。对Zig Bee、LORA、BLE和Wi-Fi的通信情况以及相对应的协议转换分别进行测试并成功转换,其中BLE模块和Wi-Fi模块通信并进行协议转换测试图如下图所示[7]。
图2 BLE与Wi-Fi通信并实现协议转换
本文介绍了一种基于STM32的农业物联网网关,分别从硬件和软件两个方面进行了介绍。该网关不仅能够接入多种通信方式,而且可以实现不同协议之间的转换,能够在终端和PC端进行无障碍数据传输。且该网关体积小,成本低且便于操作和实现,有广泛的应用前景。