基于ESP智能控制系统设计与实现*
2020-10-22尚浩
尚 浩
(徽商职业学院电子信息系 安徽合肥 231201)
文章设计的智能控制系统符合物联网技术在智能家居控制系统主题思想,将多种智能控制方式融合其中,利用当下比较流行的语音识别控制系统和云平台为基础,突破传统的移动端应用程序单一控制。其优点在于使用自主选择语音模块和设计辅助电路;同时兼容市场占有率较高的“天猫精灵”产品;使用阿里云作为数据收发平台及微信小程序功能共同实现全方位智能化检测和控制系统。
1 基于ESP8266智能控制系统整体分析
该系统在传统的近距离触摸控制技术基础上,增加以wifi模块为核心技术上,实现远距离语音控制,同时阿里云平台环境将移动终端应用和微信小程序等技术方式与该系统进行接入,实现远距离状态检测和控制。该系统不但能够在日益普及的智能家居系统中应用,同时可以在工业生产中推广和普及,具有很好的市场前景。智能控制系统整体框如图1所示。
图1 智能控制系框图
用户除了可以使用传统的触摸控制开关控制家用电器或开关,还可以在一定范围内通过唤醒语音模块进行声音控制,比如:自主设计的语音模块或者兼容的“天猫精灵”等产品实现短距离语音控制,如用户不在家庭中,也可实现移动终端应用程序、微信小程序或者一台联网的电脑控制家中的家电或者开关。
2 硬件电路分析与设计
2.1 主模块系统设计
该设计硬件模块分为两部分,一部分是具有触摸控制功能主系统模块,另一部分是通过Wifi连接的语音控制模块。主系统模块主要由SC04A触摸模块和ESP8266 Wifi模块以及使用ESP-01S的内置芯片控制继电器电路。主系统模块结构框如图2所示,实现通过SC04A触摸开关来控制继电器,ESP-01S内置芯片再通过wifi模块发送继电器的状态。语音控制模块将通过LD3320语音识别模块进行算法处理后通过Wifi模块发送到主程序,然后进行解析和处理进行控制,语音模块控制结构如图3所示。
图2 主系统模块结构图
图3 语音模块控制结构图
2.2 触摸模块和语音模块设计
该设计采用SC04A触摸感应器作为开关。SC04A是自带校正的容性触摸感应器,可以检测4个感应盘检测是否被触摸,它可以通过任何非导电介质来感应电容变化,可以代替机械开关,增加其使用灵敏度和使用寿命,SC04A电路原理如图4 所示。语音模块选用LD3320,该芯片是一颗基于非特定人语音识别技术的语音识别/声控芯片。该芯片集成了语音识别处理器和一些外部电路,包括ADC、DAC、麦克风接口、声音输出接口等。该芯片不需要外接任何辅助芯片如Flash、RAM等,直接集成在现有产品中,即可实现语音识别、声控、人机对话功能。
图4 SC04A电路原理图
3 智能控制系统程序设计
基于以上硬件电路,根据系统控制需求实现软件功能,将从五个方面进行程序设计:主系统程序、语音控制、“天猫精灵”功能接入、移动端app应用程序和基于MQTT协议操作台控制程序。
3.1 主系统程序设计
在主系统模块中可以实现触摸控制和Wifi控制。触摸控制是由SC04A硬件模块实现,点动触控低电平,高电平输出控制继电器动作。Wifi功能将在主程序上电开机,初始化然后自动搜寻设置的Wifi连接,连接不成功会自动重连,云端显示设备离线。连接成功会检测串口收发消息,对收到的消息进行判断,是否是命令消息;如果不是,继续循环检测串口,如果是命令消息,系统执行命令,对设备进行开关操控,并向服务器返回状态,如果返回成功,继续回到主线程循环,如果返回不成功,返回继续执行网络配置。主程序实现流程如图5所示。
图5 主系统程序实现流程图
3.2 语音控制设备程序设计
基于LD3320开发的语音控制设备主要实现:语音信号接收;内部芯片进行频谱分析、特征提取、语音识别器进行识别;然后与CPU人工键入的拼音字节进行匹配,该方法检测度较高,能够有效防止方言中音调的差异。LD3320语音识别流程及程序流程如图6所示。
图6 LD3320语音模块程序流程图
3.3 “天猫精灵”程序接入
一个完善的智能控制系统要能与第三方接入并实现控制,该设计将与阿里公司的“天猫精灵”进行对接,该对接方式“云-云”接入方式,实现通过“天猫精灵”控制该智能控制系统。该程序设计实现流程图如图7所示,实现语音训练“天猫精灵”操控,再通过“天猫精灵”第三方服务器传输到自己搭建的阿里云服务器,最后服务器向设备传输相应的操作指令。对接核心代码:(需补充几行代码)
图7 “天猫精灵”程序控制流程图
3.4 基于MQTT实现移动终端和操作台控制程序设计
消息队列遥测传输(message queuing telemetry transport,MQTT)是一种由IBM发布基于发布/订阅范式的“轻量级”消息协议。其是一种低占用、低带宽的即时通讯协议,以少量代码和宽带为连接远程设备提供实时可靠的消息服务,适用于硬件性能较低的远程设备以及网络状态糟糕的环境下,在小型设备、移动应用等有广泛应用。
该设计将针对安卓操作系统终端和PC操作台端进行应用程序开发、设计和实现系统状态检测和系统控制控制功能。在安卓系统中接入MQTT要分为6个步骤:
(1)导入MQTT包:implementationorg.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0',implementation'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1';
(2)配置MqttConnectOptions项;
(3)调用connect并将配置好的参数写入;
(4)通过指定的消息进行消息队列订阅;
(5)向订阅的topic中发布消息:实现代码public void SubscribeMsg(String topic,int qos) / public void publish(String topic,String msg,boolean isRetained,int qos);
(6)通过mqttCallBack的回调对接收到的消息进行处理。移动终端应用程序实现流程如图8所示,PC平台控制端程序实现流程如图9所示。
图8 移动终端应用程序实现流程图
图9 PC操作台控制
MQTT协议在同主题下所有的订阅方都能收到消息, APP作为订阅方和发布方。APP可以向服务器发送设备执行指令,自己也可以收到设备的反馈指令,判断反馈指令来显示设备的实时状态。
4 系统测试及数据分析
硬件电路和软件程序实现完成后,将对整个智能控制系统进行模拟操作控制,选取台灯、风扇和继电器作为三路开关的作为受控端,采用触摸控制、语音模块控制、“天猫精灵”、PC操作台进行控制多重控制,验证其数据及控制有效性。图10为实物硬件搭建图,图11为PC操作台控制应用及数据动态显示。通过测试和调整,重点低延时和数据等待时间,智能控制系统能够实现正常工作。
图10 实物硬件测试图
图11 PC操作台控制应用
5 结论
该设计使基于智能家居控制为基础进行拓展开发,实现多种技术的融合。将当下流行语音识别和云平台结合在一起,能够实现受控端的无逢对接和完美兼容。在未来的工作中接入第三方物联网平台,在工业、农业以及危险的的矿山作业等行业进行应用,提供智能检测的同时,还能够实现自动控制和无人值守操作,确保人们生命安全和效率最大化。