基于WiFi的移动养蜂车温湿度采集终端设计与实现

2015-04-27 13:04孔亚广郭斌
物联网技术 2015年4期
关键词:数据采集

孔亚广 郭斌

摘 要:养蜂环境直接影响到蜂产品的质量。为了方便快捷地采集移动养蜂车的温湿度数据,为后续的蜂产品质量追溯留下线索,设计一款基于STM32F103VET6和WiFi技术的智能温湿度采集终端。详细分析了系统的功能并给出总体设计方案,介绍了各功能模块的原理及具体实现方法,给出了系统的软件设计流程图。测试结果表明,系统性能稳定,能够实时显示数据并快速刷新界面,在移动环境下能够快速组建网络并实时传输数据到手机客户端,具有一定的应用价值。

关键词:WiFi;数据采集;STM32;移动养蜂车;FatFS文件系统

中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2015)04-00-03

0 引 言

由于生态环境的变化,当前蜂农生产越来越倾向于转地生产,因而移动养蜂车的应用越来越广泛。养蜂车上蜂箱及蜂产品存储的温湿度等对蜂产品质量有着重要的影响,因此采集养蜂车的温湿度具有重要意义。而移动养蜂车是一个相对孤立并且可移动的平台,要在这个移动平台上采集蜂箱内的温湿度并传输到Internet,就必须无线实时采集并传输数据。目前,智能手机因其价格便宜、智能方便成为人们随身携带的通信工具。那么,我们可以考虑让蜂农通过手机来采集养蜂车上的温湿度数据,并通过3G数据网络将温湿度数据传输到Internet。如今的智能手机,集成了多种无线传输的功能,包括蓝牙、3G、NFC(近场通信)和WiFi。那么,该选择哪种无线网络来实现温湿度数据无线传输到手机端呢?表1对这几种无线通信技术进行了比较[1]。

表1 几种无线通信技术的比较

蓝 牙 3G NFC WiFi

频带许可 无需许可 需要许可 无需许可 无需许可

适用范围 5~10 m 国家级覆盖 ≤0.2 m 50~150 m

传输速率 1~2 Mb/s 最高2 Mb/s 最高1 Mb/s 11~54 Mb/s

系统费用 较低 极高 很低 较低

建立时间 3~10 s <1 s 0.1 s 3 s

功耗 ≤100 mW >1 W ≤1 mW >1 W

考虑到3G的费用极高,蓝牙和NFC的传输距离太短并且传输速度慢,而WiFi的传输距离能达到百米,并且传输速度很快,组网方便快捷[2,3],我们采用WiFi无线传输技术,将嵌入式采集模块采集的数据实时传输给手机端,实现对移动养蜂车的温湿度数据的实时监控。

1 系统总体方案的设计

系统采用意法半导体公司的STM32作为整个嵌入式系统的CPU,STM32系列处理器基于ARM Cortex-M3内核[4];采用DHT11温湿度传感器实时采集养蜂车内环境温湿度情况;人接交互采用的是TFT LCD触摸屏,方便对网络模式及IP地址等参数进行选择和设定;采集的数据通过WiFi无线传输给手机端,这里我们采用的是专门的串口WiFi模块;蜂农使用安卓智能手机将采集的数据接收并且存储下来,通过自主开发的手机客户端软件实现这种WiFi网络通信。最后,作为功能扩展,手机可以通过3G移动网络将温湿度数据传输到互联网上,方便远程监控和数据跟踪。系统总体方案架构如图1所示。

1.1 系统硬件架构

本系统选用STM32F103VET6作为主控的MCU,该芯片功能强大,性价比高,内置64 KB的SRAM和512 KB的Flash[5]。选用该芯片还有一个重要的原因就是,它拥有灵活的静态存储控制器FSMC接口,通过该接口连接TFT-LCD触摸屏,可以实现快速的数据读写,使LCD界面显示更加流畅,获得良好的人机交互体验;选用2.8寸的TFT-LCD触摸屏模块,模块板载了ILI9325液晶屏控制器和XPT2046触摸屏控制器;系统板载了两种供电接口,DC-DC(6~16 V直流稳压电路)接口和USB供电接口;板载了两种下载接口,JTAG下载和USB转串口的ISP下载接口;系统扩展的外部存储电路包括E2PROM芯片AT24C02和SPI Flash芯片W25Q64;选用基于单总线的数字温湿度传感器DHT11采集温湿度数据;最后,选用Hi-Link公司的HLK-RM04串口WiFi模块,实现采集数据无线传输到手机端。硬件架构如图2所示:

1.2 系统软件架构

系统软件主要涉及到动态内存管理、FatFS文件系统移植、AT24C02掉电保护程序、W25Q64 SPI Flash驱动程序、DHT11温湿度采集驱动、TFT-LCD触摸屏驱动程序及串口WiFi驱动程序等几大模块。这几大模块与STM32主控部分构成系统的软件架构图如图3所示,系统的程序流程图如图4。

2 供电与下载电路

本系统配有专门的供电以及下载电路。供电包括一个外部电源输入口DC_IN和一个USB供电口。DC_IN采用标准的直流电源插座,电路中采用DC-DC降压芯片,支持DC6-16 V的宽电压输入。USB供电口则采用mini USB接口,这种接口,对于无论是养蜂车车体内USB电源输出接口还是车上自带的太阳能供电系统,都能方便地接入,给采集终端供电。

下载也预留了两种接口,JTAG下载和USB转串口ISP下载。JTAG是常用的ARM程序下载接口,而能够供电的USB接口也能够实现程序下载。USB接口连接CH340G芯片,能够实现USB转串口的ISP下载。

3 DHT11温湿度采集模块

终端板载了一款单总线的数字温湿度传感器DHT11,它不但能测温度,还能测湿度。DHT11包括一个电阻式测湿元件和一个NTC测温元件。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口[6]。传感器内部温度和湿度数据以40 B为一帧通过串行方式一次性传输给单片机,数据采用校验和方式进行校验,能够有效地保证数据传输的准确性。DHT11的功耗很低,在5 V的电源电压下,平均电流0.5mA。硬件电路如图5。

DHT11的数据格式,它采用单总线的数据格式,单个数据引脚端口完成输入输出双向传输。其数据包由5个字节 (40B)组成。数据分小数部分和整数部分,一次完整的数据传输为40 B,高位先出。DHT11的数据格式如下,其中校验和为前四字节相加:

8 b湿度整数数据+8 b湿度小数数据+8 b温度整数数据+8 b温度小数数据+8 b校验和

作为一种新型的单总线数字温湿度传感器,DHT11具有体积小、响应速度快、抗干扰能力强、接口简单、功耗低和性价比高等优点,能广泛应用于智能监控和家电消费品等领域[7]。

4 串口WiFi模块

本系统选用串口WiFi模块HLK-RM04作为无线传输的解决方案。HLK-RM04模块是Hi-Link公司推出的一款低成本嵌入式WiFi模块,该模块是基于串口的符合网络标准的嵌入式模块,内置TCP/IP协议栈和WLAN无线网络协议栈,能够实现用户串口、以太网、无线网(WiFi)3个接口的数据转换。本系统只需使用HLK-RM04的串口转WiFi功能,完成串口数据的无线传输。

HLK-RM04有3种工作模式:串口以太网(ETH-COM)、串口无线网卡(COM-WiFi STA)和串口无线接入点(COM-WiFi AP),每个模式又包含:TCP服务器、TCP客户端、UDP服务器、UDP客户端4个子模式。在本系统中,使用串口无线接入点(COM-WiFi AP)模式。在该模式下,模块的WLAN和LAN口将关闭,仅开启WiFi,作为无线接入点(WiFi AP),允许其他WiFi设备(智能手机、PAD、笔记本等)连接到本模块,实现串口与其他设备之间的无线(WiFi)数据转换互传。

串口无线接入点模式下,模块通过WiFi连接智能手机。模块作为WiFi AP,智能手机做WiFi STA,模型如下图6所示。

我们在手机客服端将手机设置成TCP Client(客户端模式),同时通过TFT触摸屏将各个HLK-RM04 WiFi模块设置成为TCP Server(服务器模式)。WiFi模块处于TCP模式并处于服务器模式时,其他TCP客端设备(手机、PAD等)可以主动的连接模块。模型如图7所示。

该WiFi模块有两种工作模式,AT指令模式和透明传输模式。在无线传输数据(透明传输)之前,必须通过AT指令来设置网络参数等信息。

在AT指令模式下,可以通过串口的AT指令对系统参数进行配置。模块支持的AT指令多达几十个,在此不一一列举。指令格式如下:

At+[command]=[value]\r

根据不同的命令,模块将返回不同的返回值。

例如:”at+remoteip=192.168.11.100\r”表示设置远端IP地址为192.168.11.100。

例如:”at+remoteip=?\r”表示查询远端IP地址。

在透明传输模式下,HLK-RM04模块可以实现UART接口和WiFi无线网络接口中数据的透明传输。模块可以自动地将串口数据封装成TCP/IP数据包,也可以将网络数据包转换成串口可识别的数据。模块完成这种串口数据包与网络数据包转发功能的流程图如图8所示。

5 FatFS文件系统移植

为了方便外部Flash中字库文件的读取和写入,引入了FatFS文件系统。FatFS是一个完全免费开源的FAT文件系统模块,专门为小型嵌入式系统而设计[7]。它完全用标准C语言编写,因此具有良好的硬件平台独立性,可以移植到8051、PIC、AVR、ARM等系列单片机上而只需做简单的修改。它支持FAT12、FAT16和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读和写,并且特别对8位单片机和16位单片机做了优化。

FatFS模块的层次结构图如图9所示。最顶层是应用层,使用者无需理会FatFS的内部结构和复杂的FAT协议,只需要调用FatFS模块提供给用户的一系列应用接口函数,如f_open,f_read,f_write和f_close等,就可以像在PC上读/写文件那样简单。中间层FatFS模块,实现了FAT文件读/写协议。FatFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。

需要编写移植代码的是FatFS模块提供的底层接口,包括存储媒介读/写接口和供给文件创建修改时间的实时时钟。

FatFS源码可以在官方网站下载到。下载到FatFS软件包后,解压可得到两个文件:doc和src。doc里面是对FatFS的介绍,src里面才是我们需要的源码,FatFS源码的文件组成见表2。

移植FatFS的时候,只需要修改2个文件,ffconf.h和diskio.c。FatFS模块的所有配置项都在ffconf.h里面,通过配置里面的一些选项来满足自己的需求。FatFS的移植大致分为如下3步:根据具体编译器,在interger.h里面定义好数据的类型;通过ffconf.h配置FatFS的相关功能,满足系统需要;在diskio.c里面编写底层驱动函数,实现物理磁盘的读写等。

6 测试

系统接上电源后,会逐步配置WiFi网络各项参数,我们通过触摸屏将采集终端设置成TCP服务器模式,IP地址设为192.168.16.254,通信端口号为8086,建立好WiFi网络(网络名称为“HLK-RM04养蜂车”)。手机连接HLK-RM04无线网络后,打开通信客户端软件,选择TCP客户端模式,按照以上IP地址和端口号连接到采集终端。接下来就可以用进行温湿度的采集了。下面图10与图11就是TFT-LCD的实时显示界面和手机上采集软件的界面截图:

7 结 语

近年来,物联网在人们生活中的应用越来越广泛。WiFi技术作为物联网的一项关键技术,因其快捷方便、无需布线等特点越来越受到人们的青睐。本文顺应这种趋势,介绍了一种基于WiFi组网技术的温湿度采集终端的设计和实现方法。系统经测试后,运行效果良好,具有一定的应用价值。当然,该设计方案还有很多可以改进的地方,比如通过WiFi自组网实现多个采集终端的数据转发实现中长距离的WiFi数据传输以解决WiFi传输距离短的问题等。总之,该设计方案很好地体现和深化了“物联网”的含义,优化后可用于智能家居、远程监控等诸多领域。

参考文献

[1]王朝炜,王卫东.物联网无线传输技术与应用[M].北京:北京邮电大学出版社,2012.

[2]汪涛.无线网络技术导论[M].北京:清华大学出版社,2012.

[3]董健.物联网与短距离无线通信技术[M].北京:电子工业出版社,2012.

[4]姚文详.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009.

[5]刘军,张洋.STM32开发之南-库函数开发版本[M].北京:北京航空航天大学出版社,2012.

[6]韩英梅,赵建平.基于DHT11的无线温湿度传感器网络节点的设计[J].井冈山大学学报,2010,31(5):67-70.

[7]李世奇,董浩斌.基于FatFs文件系统的SD卡存储器设计[J].测控技术,2011,30(12):79-81.

[8]倪天龙.单总线传感器DHT11在温湿度测控中的应用[J].单片机与嵌入式系统应用,2010(6):60-62.

猜你喜欢
数据采集
基于开源系统的综合业务数据采集系统的开发研究