黄彦铭, 宁 媛
(贵州大学 电气工程学院, 贵阳 550025)
现如今的快节奏社会,使得人们对生活的舒适度和便捷度提出了更高的要求。而在繁忙的工作之余,人们已然难有闲暇来精心照料家中栽种的各式植物花草。基于此,本文专门研发了一种基于云平台的智能浇水系统。该设计是以STM32F407ZGT6单片机为控制芯片,通过各种传感器采集环境信息,以 WiFi-ESP8266 无线模块结合网络路由器将采集到的植物生长环境数据传输到物联网云服务器,服务器接收到数据后,用户通过IOS客户端应用程序实现智能家居设备的开关控制和环境监控[1],支持室内和室外全球异地远程控制。在系统硬件方面,设计了以 STM32 处理器为核心的智能浇水系统硬件平台,主要包括土壤湿度传感器、温湿度传感器、光照强度传感器、WiFi 通信模块等多个功能模块[2]。在软件设计方面,通过编写主程序、配网程序等一系列模块程序,实现了一整套系统的稳定运行。本文拟对此展开研究论述如下。
本设计主要由传感器模块、控制器与处理器模块、显示模块、WiFi无线传输模块以及继电器模块等构成。该控制系统以STM32F407ZGT6 单片机作为核心控制器,通过传感器模块对环境参数进行采集,利用STM32F407ZGT6 单片机进行数据处理和转换,其中部分重要环境数据通过OLED显示模块进行数据显示,使用户更加直观地观察到实时数据。同时将检测到的传感器数据通过 ESP8266-WiFi模块上报至云服务器,服务器再将相关数据转发给 IOS 客户端,IOS 客户端接收到状态信息后更新相关数据并通过手机 App界面显示出来[3-4]。通过 IOS 客户端对服务器下发指令,还可实现 IOS 客户端对家居设备的远程实时控制。以上设计能够满足用户的生活需求,为用户提供了更为舒适、便捷的使用体验。
该控制系统包含了3个关键部分,即系统硬件、系统服务器、IOS客户端App。智能浇水系统总体设计如图1所示。
图1 总体设计图
本系统采用STM32F407ZGT6 单片机作为核心处理器,采用自行设计的供电模块对其进行供电,将土壤湿度传感器、DHT11温湿度传感器以及BH1750FVI光照强度传感器所采集到的信号经过AD口转换为单片机能够处理的数字信号,经单片机处理后转换为电信号输出到OLED显示屏上。智能浇水系统硬件系统框架如图2所示。其中,WiFi通信模块采用按键扫描方式与手机终端进行配网,达到远程控制目的;继电器模块与浇水阀组成浇水模块。
图2 智能浇水系统硬件系统框图
本研究系统使用 7.2 V 锂电池供电,但系统中的 ESP8266-WiFi模块、OLED 显示屏使用的却都是3.3 V的电源。单片机最小系统、土壤湿度传感器、光照强度传感器等传感器均需要5 V电源。因此电路设计中就需要将7.2 V的电源电压降至5 V以及3.3 V。本设计通过TPS7350、LM1117-3.3和LM1117-5.0稳压芯片对电池电压进行降压,因为该芯片稳压后会有较大的纹波,因此设计电路时采用 0.1 uF的瓷片电容滤除高频信号、10 uF的电解电容滤除低频信号进行滤波处理,得到一个稳定的直流电源。这里,将给出电路的整体设计如图3所示。
图3 供电模块电路设计图
智能浇水系统浇水模块由5 V驱动继电器模块与8 V驱动的浇水阀组成。浇水阀置于水箱中,接口连接塑料管,塑料管另一端放在植物盆栽中,继电器设置为高电平触发,其控制端设置连接为PB12接口,通过控制器控制其电源电路的输出通断来对浇水模块进行调控。
本系统采用 ESP8266 芯片无线连接设计为WiFi通信模块,研究采用3.3 V直流电源供电,并能在初始化STM32主控芯片的串口后进行串口通信。考虑到本系统是基于机智云平台来研发设计的,所以需将机智云官方所提供的GAgent固件烧写进ESP8266-WiFi模块中,再进行串口协议移植,这样在初始化ESP8266-WiFi模块后,就能够通过手机App与其进行数据交换,并把通信内容存储到机智云开发者中心。
智能浇水控制系统软件设计主要分为:控制器对环境参数的采集和处理;控制器处理后的数据发送至 OLED 显示;控制系统配置入网;控制器通过 ESP8266 上报数据;接收 IOS 客户端下发的控制命令并执行相应的操作。这里对此可做阐释分述如下。
智能浇水系统的主程序流程如图4所示。首先,对 STM32F407ZGT6单片机的各个外设初始化,然后初始化云协议,判断 ESP8266-WiFi模块是否已接入云服务器,若已接入,则进行数据采集和处理,并将重要数据处理后发送至OLED 显示屏显示,此时控制系统将处理后的数据上报云服务器,服务器再将相关数据转发给 IOS 客户端,IOS 客户端接收到状态信息后更新相关数据并通过手机 App 界面显示出来;同时控制系统监控 IOS 客户端是否有下发控制指令。如果有,执行相应命令;如果没有,则顺序执行。
图4 智能浇水控制系统的主程序流程图
Fig. 4 Main program flow chart of intelligent watering control system
智能浇水系统配网流程图如图5所示。智能浇水系统上电后, ESP8266-WiFi模块首先检测自身是否存储有WiFi网络信息。如果有WiFi信息,则连接当前WiFi网络,建立TCP/IP连接服务器,连接成功后设置进入业务工作子程序;如果 ESP8266-WiFi模块自身没有存储WiFi网络信息,则通过按键进入AirLink模式,同时通过 IOS客户端将WiFi网络信息发送至 ESP8266-WiFi模块,然后连接WiFi网络,建立TCP/IP连接服务器,并进入业务工作子程序。
本设计中通信模块选用机智云作为云平台,为此必须先编写云平台部分的通信代码,这可以通过在云平台上设计数据点来自动生成代码后移植进主程序代码中。本设计数据点选用可写类型数据点、布尔值数据类型和只读类型数据点、数值数据类型两种数据点。具体数据点的设计见表1。
图5 智能浇水控制系统配网流程图
Fig. 5 Intelligent watering control system distribution network flow chart
表1 数据点设置表
本设计搭建的简单智能浇水系统如图6所示。首次工作时通过按键进入AirLink 连接方式与手机App进行匹配,匹配成功后使用者即可通过手机App对家中植物生长的环境进行实时监测,继而对智能浇水系统进行远程控制。匹配成功后界面如图7所示。此外,系统每次工作的历史数据可以在机智云官网开发者中心的运行记录中查看,如图8所示。
图6 简易装置图 图7 智能浇水系统处于浇水状态
Fig. 6 Simple device diagram Fig. 7Intelligent watering system is in watering state
图8 系统运行记录详情
本文以STM32F407ZGT6为主控芯片设计了一种基于云平台的智能浇水系统,用户可通过手机App对家中植物周围的环境数据进行实时监测,进而控制智能浇水系统是否执行浇水命令,使人们能够遥控智能浇水系统的工作状态,从而避免了家中植物因缺水而死亡,为人们在忙碌中仍可兼顾周边环境的绿化及美化提供了很大的便利。经过测试,本设计能够很好地完成预期工作,设计稳定可靠,因而具有可观的发展应用前景。