本设计由开发者通过对分散在粮仓各个节点的温湿度传感器采集到的数据经过云服务器最终显示在移动终端,分析粮仓温湿度来确定对风窗的控制,在粮情监测基本功能的基础上,设计了这种基于移动网络终端的粮仓温湿度监测及电动风窗控制系统。本系统在实现对粮仓温湿度数据的远程采集、粮仓电动风窗开闭及调速的远程控制,同时为送粮机进粮带来便利,节省一定的人力资源。
仓储机电设备远程控制系统总体方案包括开窗机构设计、系统硬软件设计及系统测试,详细内容如图所示。
通过温湿度传感器采集粮仓的各个温湿度监测节点;使用WiFi通讯模块连接粮仓的无线路由器;注册云平台,添加温湿度检测和电动执行器的数据点;可直接在 PC 端登录云平台远程监测温湿度、控制电动执行器,同时开发安卓系统的应用程序,既可以在WiFi模式下访问云平台实现监测控制,也可以在使用数据流量的情况下通过智能移动设备随时随地实现远程监测和控制,其系统控制流程如图所示。
不同类型粮仓的建造地域、设计特点、储粮品种等因素决定了开窗机构的方 式。
1、开窗机构的结构选型
对粮仓的开窗机构设计要求如下:
◆ 使用开窗机构实现风窗的大角度开闭;
◆ 结构紧凑且可靠性高,动力传递性能好;
◆ 开窗机构的安装位置不能和由风窗进入的送粮机发生干涉;
◆ 风窗的开闭必须平稳。
结合目前在粮食储藏多采用高大平仓,为此系统选用上推连杆组合式机构,是由三角架 BCD、 拉杆件 AD、电动推杆 AC 构成。A 点为电动推杆及拉杆的摆动点,通过连接件铰接在粮仓墙体支架上,B 点铰接在内窗边框上,O 点为窗体的转动支点,通过一根 转轴和外窗固定在粮仓预留的安装位置。这种开窗机构通过三角架与电动推杆相连推动内窗,启动性较好,推举支点在内窗边框中心,受力状况好。
2、窗体模型的建立
风窗的作用是将粮仓内的环境和粮仓外的环境隔离开来,在适宜的时候又需要打开风窗进行内外环境的平衡。窗体分为内窗和外窗,内外窗之间通过一根转 轴连接,外窗固定于粮仓的墙体,内窗和外窗的侧面分别留有 5mm 的间隙,安 装橡胶密封件,且内窗嵌有一定厚度的保温玻璃,内窗的边框距离转轴中心6cm处焊接着一块铰接件,将三角架的推举力传递给内窗,装配图如下所示。
3、电动推杆模型的建立
电动推杆作为开窗机架构的关键部件,通过将推杆的直线运动转换成推举风窗的机械能,实现风窗的自动开闭,其装配图如下所示。
4、气弹簧的建模
气弹簧不仅能在开窗后起到支撑的作用,在闭窗时还能起到缓冲的作用,气弹簧的装配图如图所示。
5、三角架的建模
开窗机构三角架的主要尺寸如图下所示。
其中三角架的厚度为 18mm。
6、拉杆的建模
根据对结构尺寸的计算及实际位置关系的参考,确定拉杆的有效长度为 575mm。
7、开窗机构的装配
开窗机构模型中主要包括内窗体、外窗体、三角架、拉杆、电动推杆、 转轴、铰接件等 7 个构件。按照配合要求,得到开窗机构的装配体如图所示。
仓储机电设备远程控制系统的硬件设计主要包括温湿度检测模块、无线通讯模块、电动推杆驱动模块、无线通信方式及外围硬件模块。
1、温湿度检测
本系统选用DHT11温湿度传感器监测粮仓的温湿度,实现对环境中的温湿度情况的实时采集,同时将数据发送至云端。
DHT11引脚说明:
DHT11模块接线图:
2、电动推杆驱动控制模块
由于考虑系统的设计需求,采用L9110 作为驱动控制模块。
L9110 引脚说明:
L9110 电路图:
驱动电路接线图:
3、WiFi 无线通讯模块
WiFi 通讯模块是一种通讯信号传输的产品,可以实现 TTL 信号或串行通信 口转到 WiFi 信号转换的通信设备,本系统选用乐鑫的 ESP8266 WiFi 模块。
ESP8266 引脚说明:
ESP8266 模块电路图:
4、无线通信方式设计
ESP8266 的工作模式包括 Soft-AP 模式、Station 模式以及兼容模式。在本文的控制系统中,选用Soft-AP+Station的兼容模式的无线通信方式。
ESP8266 在兼容模式下工作不仅可以作为移动设备连接无线路由器,也可以使其他智能设备连接无线网络。兼容模式下WiFi模块通过连接路由器将传感器的信息上传到云平台,可使智能移动设备通过云平台对 MCU 下达控制指令。模块自身还可以发射无线热点使智能移动设备连接到互联网。如图所示为工作在兼容模式下的通信过程。
5、外围硬件电路的连接
为了降低开发成本、减少装置体积,使用乐鑫ESP8266 芯片,既充当控制器的作用又充当了WiFi 网关的作用,外围电路图如下所示。
电路接线图如下所示:
仓储机电设备远程控制系统的软件设计,由云服务器设计、应用程序设计及通讯模块程序设计三部分组成。
1、云服务器设计
云服务器作为远程监测控制系统的枢纽,连接着手机客户端与WiFi通讯模块,是系统的数据传输中转站。因此,云服务器的可靠性决定了系统能否正常运转。自主开发的云服务器开发时间长、难度较大、成本高,因此本系统选用了技术成熟的机智云平台作为远程控制的中心。
机智云开发流程
使用机智云平台进行远程监测与控制系统开发的步骤如下:
►注册并登录机智云账号
►创建新产品
需设置产品分类、产品名称、技术方案。本系统将产品名而命名为西理远控,选择产品的技术方案为网关方案,通讯方式为可以随时随地远程控制的移动网络,数据传输方式为变长。定长传输是根据定时器设定每隔一段时间采集的温湿度和风窗控制指令均一并传输,变长传输是只传输变化了的数据。
创建完成后都会自动生成一对密匙 Product Key 与 Product Secret。Product Key 用于机智云与设备的对接,通过写入到 WiFi 模块使机智云 可以识别特定的终端设备,Product Secret 用于对接管理客户端与手机客户端。
►数据点的创建
数据点定义了本系统采集和控制所需的数据点名称、分辨率、 读写类型、数据范围等信息。
►虚拟调试
在云平台进行虚拟调试,在手机应用程序绑定设备测试功能,完成开发。
数据点设计
云平台数据点的设计是云平台设计中最重要的一环,不但包含了 MCU 上报 的事件信息,还定义了移动客户端下达控制指令的数据格式,保证了数据传输的 安全性。
数据点有四个组成部分:标识名、数据类型、读写类型、数据长度。标识名 用来定义手机应用程序与设备中数据点的变量。读写类型包括可写、只读、报警 及故障。数据类型也有四种:枚举型、布尔型、数值类型、扩展类型,本系统的数据点设计如下图所示。
设备接入云平台
云平台和移动终端建立远程通信的前提需要 WiFi 通讯模块和云平台的对 接,可在机智云官方的开发指南中下载 ESP8266 模块的 GAgent 固件,如下图所示,并将 GAgent 下载到电脑上再烧写到 WiFi 通讯模块中。
使用 GAgent 固件与机智云建立通信,如下步骤:
►ESP8266 模块上电
建立 MCU 与 GAgent 固件的连接。
►ESP8266 模块入网
机智云官方提供了 ESP8266 与机智云通信的 API 文档, 可通过调用 gizwitsSetMode()实现 AirLink 和 softAP 两种入网模式。移动终端使用机智云官方为安卓平台提供的 SDK,添加新设备时通过 UDP 协议向 GAgent 固件发送手机所连接路由器的名称和密码,若 MCU 成功获取了路由器的名称和密码后 WiFi 模块会自动连接至路由器,使设备成功入网。AirLink 模式的入网流程图如图所示。
►手机客户端绑定设备
当手机与设备同处一个局域网中时,可使用应用程序发现并绑定设备。绑定成功后,移动终端可以切换至数据流量模式通过云平台在广域网中实现设备的远程控制。
2、手机应用程序设计
机智云平台官方可以提供开源框架的下载。框架中不但封装了应用程序与机智云之间的通信协议,还封装了ESP8266 与机智云的通信协议,以及 AirLink 和 soft AP 两种配网模式,对手机应用程序的开发只需完界面的 UI 设计和功能调试,包括主界面设计、用户登录界面设计、监控区域界面的设计以及设备控制界面设计。
APP程序设计
手机应用程序的主要功能是实现电动推杆的远程控制和温湿度的采集,APP总体工作流程如图所示。
打开已经开发完成的应用程序,系统首先初始化,然后进入登录界面,由于本系统主要方向是远程控制,因而对 APP 账号注册登录的功能并未完善,用户可点击跳过到添加设备界面,如果无设备连接,则可以通过 softAP 与 Airlink 两种模式连接设备。
选择已绑定的设备随即进入设备监控主界面,在该界面可以实时查看粮仓温湿度和控制风窗开闭及调速。学习了应用程序的通信原理,由机智云官方提供的 API 文档以及应用程序的功能需求,进行应用程序的功能设计,工程目录如图所示。
工程结构包含了网络配置模块、用户模块、设备控制模块等。应用程序的启动入口在登录 Activity 中。WiFi 网络、WiFi 连接状态、APP 访问 GSM 网络手机 状态信息等在 AndroidManifest.xml 文件中进行配置。
其中最主要的三个参数:product-key,app-id,app-secret。product-key 是机智云创建新产品时分配的一串号码,是机智云识别设备的密匙。app-id 是应用标识码,在机智云产品创建后自动分配,用于设备与应用程序进行绑定。app-secret 是应用密码,一般用于验证 app-id 的正误。文件中还包含了应用程序的控件,字体与颜色的配置等,将设计好的应用程序命名为西理远控,主要界面如下图所示。
左边为应用程序登录界面,中间为监控区域选择界面,右边为监控界面。
3 、采集控制终端主程序设计
ESP8266 WiFi通讯模块
要实现 ESP8266 与云平台的数据通信,需要在应用层进行开发。本设计的通信模式基于 WiFi 和 GSM 环境,必须考虑到断开重连机制,以保证数据采集与控制的持续性。ESP8266 具有智能连接功能,触发按键后,会自动搜索附近的 WiFi 网络,不需要将代码写死在 MCU 中,通过手机配置,方便快捷。主程序运行流程如图所示。
微控制器的主程序设计是根据仓储设备远程控制系统的各项功能而设计的, 结构清晰,系统上电后会初始化内外部时钟、输入输出端口等。随后主程序会启 动自检,查看整个系统是否运行正常,若出现异常,系统将进行重新启动。系统 启动后,主程序会自动扫描子程序并搜索环境中的 WiFi 网络,可通过手机 APP 写入当前网络的名称和密匙,使系统成功连接外网。
当内部程序初始化以后,需设定的 URL,通过 URL 的解析,可获取云平台的端口号和 IP 地址,若未指定,则默认为80 端口,解析URL 流程图如图所示。
APP远程监控界面如下:
温湿度传感器数据上传
打开..\app\user 目录的主函数 user_main.c 文件,首先添加驱动头文件 路径:#include "driver/hal_temp_hum.h"。再把传感器初始化函数放到 void ICACHE_FLASH_ATTR user_init(void)里面。然后在用户定时器相关参数添加一 个宏定义,用于控制定时采集温湿度,温湿度数据定义如图所示。
在 userTimerFunc(void)函数里面添加用户代码,定时读取温湿度,然后上报 到云端,具体数据采集程序如下所示。
此处需要用户实现除可写数据点之外所有传 感器数据的采集,可自行定义采集频率和设计数据过滤算法。测温实验平台如下:
测湿实验平台如下:
电动推杆正反转以及PWM调速控制
把 驱 动 文 件 hal_motor.c 和 hal_motor.h 拷 贝 到 我 们 的 工 程 中 来 , 找 到..\app\user 目录的主函数 user_main.c 文件。
首先添加驱动头文件路径:#include "driver/hal_motor.h",再把电机初始化函数放到 void ICACHE_FLASH_ATTR user_init(void)里面,初始化程序如下所示。
电机调速程序如下:
电动推杆控制测试平台如下:
本系统研究了基于机智云开源框架设计安卓客户端实现远程通信,从而实现粮仓的温湿度数据的实时显示,并通过手机APP实时控制风窗的开闭,进而达到随时随地远程监控的目的。本系统仅用了一组温湿度传感器,通过WiFi通讯模块连接粮仓的无线路由器,基于机智云平台实现远程监测温湿度、控制电动执行器,随时随地对粮仓进行远程监测和控制。