基于NodeMCU 的晾衣窗控制系统设计

2021-07-08 07:08高淑芬屈斌文
关键词:运转电机单片机

王 彬,张 宇,高淑芬,屈斌文,胡 曦

(江汉大学 a. 工程训练中心;b. 人工智能学院;c. 人工智能研究院,湖北 武汉 430056)

0 引言

晾衣窗是一款集窗户和晾衣架于一体,通过两者间的相互协调,可同时满足室内通风和衣物充分晾晒需求的晾衣设备。目前,国内生产智能晾衣设备的厂商基本采取晾衣设备和窗户分离,且均是安装于阳台内部的模式,根据不同情况垂直升降,通过电路控制晾衣架,以达到晾衣的功能。为满足衣物充分晾晒的需求及在家中无人情况下室内空气的流通,本文设计了一种将窗户和晾衣架结合在一起的联动型智能收缩晾衣窗系统。该系统根据实际机械结构情况,结合传感器以及接入物联网(Internet of Things,IoT)平台的控制实现这套智能家居的操控方案。

1 系统总体设计结构

系统由单片机NodeMCU 核心板、霍尔传感器、24 V 蓄电池、不间断电源(uninterruptible power supply,UPS)模块、DM542 电机驱动、24 V 直流步进电机、24 V 转 5 V 电源模块等构成。系统总体结构如图1 所示。其中,蓄电池的工作电压和电流分别为24 V、3 A;UPS 不间断电源模块的作用是实现正常供电和蓄电池供电这两种供电方式的无缝切换,同时为蓄电池提供充电保护,防止过充损坏电池,保证电路稳定运行[1-2];霍尔电流检测模块为WCS1800,电流检测范围为-25 ~+25 A,输出TTL 电平信号,该模块检测是否断电并返回信号给单片机;雨滴以及风力传感器工作电压都在3.3 V 且输出逻辑电平,通过发送信号给单片机告知程序当前处于下雨或刮风状态。电机驱动模块采用DM542,工作电压在20 ~50 V 的步进电机驱动,电机驱动连接单片机和电源,保证单片机的微信号能间接控制电机;电机的工作电压为24 V,工作电流为3 A,电机接收电机驱动信号来进行运转,最后控制机械结构实现相应功能。ESP8266 模块为NodeMCU Lua V3 物联网开发板CH340G,带16 个逻辑口,1 个模拟口,是整个电路的控制核心,连接所有模块并负责通信、信号处理以及所有自动控制正常进行[3-4]。

图1 系统总体设计结构Fig.1 The overall design structure of the system

2 系统硬件设计

2.1 主控设计

主控部分是整个系统装置的核心,其主要作用是连接无线网络,接入服务器,且作为控制中心连接外围传感器,接收手机发送到云端的控制指令,并接入电路来控制电机的运行[5]。该主控系统采用的是ESP8266 模块,其I/O 接入外设有A0 模拟口及所有可用的输入输出逻辑口。其中,A0 模拟口接收风力传感器的模拟电压值,再通过MCU 计算其风速,通过逻辑口D0 接收雨滴传感器的逻辑值来判定是否有雨,D1、D2、D5 连接微动开关得到窗户的具体位置,D3、D6、D7、D8、D9(RX)用来控制电机驱动来实现电机的运转,总体电路图如图2 所示。

图2 总体电路图Fig.2 Overall circuit diagram

2.2 传感器

传感器是整个电路实现自动控制的核心,MCU 通过收集到的传感器信号感知外界的变化并做出相应的改变。本文所使用的传感器有两种:雨滴传感器和风力传感器。

雨滴传感器:通过感应板和信号转换模块来实现。当没有雨滴落在感应板上时,感应板电阻设置为无穷大,信号转换模块输出逻辑高电平;当有雨水滴落在感应板上时,感应板的电阻会随之发生变化,一旦电阻过低,信号转换模块就会输出逻辑低电平,输出的逻辑信号通过D0 口发送给MCU 来进行处理。

风力传感器:由发电机和叶片组成,通过风力推动叶片转动来带动电机。此时电机产生一个模拟电压,其经过一个将电机产生的电压值降低到1/5 的电压检测模块。由于MCU 的A0 口能接收到的最大电压采用值为3.3 V,而传感器能产生的电压最大值为5 V,因此,电压检测模块降低电机所产生电压值的目的是防止电压过高击穿MCU 而造成损坏。

霍尔电流传感器:电流经过垂直于磁场的导体会在导体两端产生一个电势差,以此可进行信号检测功能。其功能为:①经过运放会输出对应的模拟信号,适用于A/D 转换;②输出开关信号,根据预先设定的电流值,当实际电流值大于预先设定的限流值时,开关信号会由低电平变为高电平。本文使用的是功能②,将该模块输出的高低电平输送给主控模块来检测是否断电[6-7]。

2.3 电机驱动电路

电机驱动电路是主控模块控制电机运转的核心。本文采用的驱动模块为DM542 步进电机驱动,单片机通过逻辑I/O 口模拟PWM 脉冲输送给驱动器的PUL,调节PWM 占空比来实现电机的运转速度的改变,并通过控制I/O 的输出实现高低电平触发光耦继电器来拉高驱动器的PUL 使能,以此来启动电机运转。同样单片机通过控制光耦继电器触发电机驱动的DIR 来改变电机的运转方向。

2.4 UPS 不间断电路及其电源模块设计

UPS 不间断电路的设计核心是UPS 模块,该模块的功率为60 W,工作电压为24 V。其核心功能为:①当电路正常工作,有家用电输入时,电源先输出一组24 V 供整个电路正常运转,另外一组输出24 V 供电池充电;②当电池充满时,自动停止;③当出现特殊情况断电时,模块内部自动切换到电池输出,来维持整个电路的应急供电,整个过程实现无缝切换,且不会出现切换过程中有断电现象。此外,霍尔电流传感器通过测出220 V 家用电的电流来决定主控MCU 当前处于何种情况,MCU 接收到断电的消息后会通过服务器给用户的手机微信发一条消息来通知用户家中断电,系统此时的供电模式为备用电源供电,用户即可通过手机远程操控来改变系统默认的应急操作。

3 软件系统设计

3.1 主程序设计

主程序部分主要对所有功能进行合理的资源调度,合理地分配优先级及其任务的处理中断,对整个系统起到至关重要的作用。该程序基于整套底层控制逻辑规则,规划各模式模块之间的切换和调度及冲突响应时间等,在这些规则上优化程序的响应时间、相关数据上传与刷新。通过对各模块的初始化,控制I/O 的输出,执行接收的云端指令,来完成所有系统的正常运转[8]。程序流程图如图3 所示。

图3 主程序流程图Fig.3 Flow chart of the main program

3.2 本地控制中心及其传感器程序设计

本地控制中心程序将各个模块驱动功能封装成不同的函数,驱动实现对接程序和硬件的接口。其作用为:一方面接收本地传感器的相关数据,另一方面本地控制中心函数负责各个硬件运转的基础法则且提供给主程序调用的接口,使得在主函数调用本地数据时,能够有条不紊地进行下去。其主要程序有雨水感应采集程序和风速采集程序。

雨水感应采集程序:通过雨水感应模块处理后得到的高低电平来判断当前是否下雨,并返回一个bool 值给主程序。

风速采集程序:当MCU 采集到A0 口的采样值Value时,通过公式(1)将采样值转变为实际电压V(mV):

由于ESP8266 ADC 引脚具有10 位分辨率,即从A0 口将得到0 ~ 1 023 之间的采样值,0 ~1 023 属于ESP8266 开发板内部裸芯片的采样值,而本文使用的ESP8266 开发板都配备内部分压器可将输入范围提升到0 ~3.3 V。因此,如公式(1)所示,由于电压转换模块将电压降低到原来的1/5,将采集到A0 的Value值先除以1 024 再乘以3 300,最后乘以5 即可得到最终的真实电压值。

得到电压后,本文只需最后一步将电压通过电机的曲线关系转化为风速,曲线关系如公式(2)所示:

式中,F表示风速,m/s。风力检测程序通过以上这些关系最终得到风速并返回相应值。

3.3 网络控制中心及语音控制程序设计

网络控制中心是整个系统的连接桥梁,以云端服务器作为中介。网络控制中心负责上传本地数据到云端,再通过云端发送给手机App 到达用户,用户接收到相关数据并可操控App 通过云服务器转发相关指令到MCU 中,再经过网络函数的相关处理到主程序来进行规则判断,并最终调用本地函数完成整个运行过程。

语音控制方面也是网络控制的一部分,通过对接第三方语音助手平台,实现数据与服务器对接,接收平台发来的数据对接到网络控制中心来实现语音控制。因此,通过本地到云端再从云端到本地的一个双向交互过程,构成了整个系统的运行体系[9-11]。

网络连接部分是通过消息队列遥测传输(message queuing telemetry transport,MQTT)协议对接服务器的一个过程;MQTT 是一种基于发布/订阅模式的“轻量级”通信协议,该协议构建于TCP/IP 协议上,由IBM 在1999 年发布。MQTT 最大优点在于可以用极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务[12]。其作为一种低开销、低带宽占用的即时通信协议,在物联网、小型设备、移动应用等方面有较广泛的应用。

当程序启动时,EPS8266 首先通过WiFi 联网来获取IP 地址,再通过MQTT 协议对接服务器进行握手,函数将发送密钥到服务器来对接相应配置,配置成功后程序首次发送数据包到控制端App,App 接收到数据包返回接收状态,程序正常对接启动完毕[13]。

3.4 软件控制客户端界面的设计

软件控制客户端基于Blinker 平台设计,通过平台提供的控件及接入其云服务器接口来实现App 与MCU 的对接及其数据交换,用来控制整个系统的运转。界面可显示当前的各种模式、窗户的开关以及衣物的晾晒情况,可实时显示风速,提供各种操控模式供用户使用。控制界面如图4 所示。

图4 软件界面图Fig.4 Software interface

4 结语

本文设计了一种基于智能手机联网控制的晾衣窗控制系统。该软件系统已进行实际使用,效果良好,运行稳定,能够通过便捷的方式来满足人们对窗户和晾衣的操控需求。其成本低廉,快捷方便。目前,该项目还有一些需要提升的地方,如可将电路设计模块化,这样能保证电路维修简单,出现故障更容易发现;程序应用方面还可以接入如天猫精灵等更多语音平台为用户提供便捷的服务。后续研究中将逐步完善,使其能应用于不同场景。

猜你喜欢
运转电机单片机
《防爆电机》期刊
《防爆电机》期刊
低压电机铸铝转子的改善及验证方案
单片机在电子技术中的应用和开发
复旧运转
《狮来运转》萌翻石狮
时来运转
电机Ⅱ个股表现
C8051F020与80C51单片机的异同点
用英语谈恋爱吧!