基于手机APP 和STM8 控制的通用家电遥控系统设计与研究
2024-01-17蓝日卫李秋红梁浩然
蓝日卫,梁 飘,李秋红,梁浩然
(广西理工职业技术学院,广西 崇左 532200)
遥控器是家用电器设备不可或缺的控制器件,特别是功能较多的现代家用电器,“一机一控”几乎成为一种“标配”[1]。而随着遥控器数量的增加,时常出现遥控器因被随意放置或家中小朋友玩耍而丢失或难找等现象;另外,对于家中有正在上学而迷恋电视的小朋友,因家长忙于工作无法限制其看电视的时间,也经常出现因迷恋看电视而未完成作业,或在放假期间整天看电视,影响小朋友的身心健康等不良现象。如果有一种装置,集成多种电器遥控器的控制功能,通过手机对电器设备的使用情况进行控制和限定,便可解决上述遇到的问题。
1 系统总体设计思路
为了解决上述存在的问题,可设计一种具有对多种家电设备进行控制和功能设定的遥控系统对家用电器设备进行个性化控制。该系统主要由单片机主控模块、蓝牙通信模块、红外收发模块和手机APP 控制软件四大部分组成,其系统原理方框图如图1 所示[2]。其设计思路如下:将该系统安装在多个家用电器能同时接收到系统所发红外信号的地方,用户对家用电器设备进行控制前,首先将设备的遥控器控制指令录入系统中;当系统存储有设备的遥控指令后,通过操作装有系统配套APP 控制软件的手机选择需要控制的设备,即可对该设备的定时开关机、音量控制及限时使用等功能进行控制,从而实现通过一个“遥控设备”对多个家电设备进行控制的目的,解决一台家电设备一台遥控器出现遥控器丢失(或难找)及不能对设备进行个性化功能控制等问题[3-6]。
2 硬件电路设计
根据上述图1 系统原理方框图的设计思路,该系统的硬件电路原理图如图2 所示[1,7-8]。各模块电路功能及工作原理如下。
2.1 单片机主控模块
该设计采用STM8L001J3M3 单片机为主控芯片。该芯片是意法半导体公司生产的超低功耗紧凑尺寸型单片机,采用SO-8 封装,内整合高能的8 位处理器,共8 个引脚,共有6 个通用IO 口,内含有1.5 kRAM、8 k 闪存程序、2 kB 数据EEPROM、1 个串口、2 个16位通用定时器、一个SPI 串行外设和1 个I2C 外设等丰富的外设资源,工作电压为1.8~3.6 V,低功耗时电流低至0.3 μA,且成本低,能满足系统设计所有功能的开发需要[6,8]。
在该设计系统中,STM8L001J3M3 芯片是电路的核心芯片,是数据处理和信号控制中心,主要有以下几个功能:一是与蓝牙模块建立信号连接,分析和判断蓝牙模块传来的数据,以便做出相应的控制;二是根据蓝牙模块传来的控制指令驱动红外发射管发出红外遥控指令,以便对家用电器设备进行控制;三是根据蓝牙模块传来的遥控录制指令信号控制红外接收管接收电器设备原遥控器发射的红外控制指令,形成控制指令特征信息保存至芯片内部存储器中,达到录制电器设备遥控指令的目的[9-12]。为了降低系统功耗,当主控芯片在规定时间内检测不到用户对系统的操作信号时,主控芯片控制整个系统进入低功耗模式,仅当蓝牙模块重新被连接时,主控芯片才被唤醒,并控制系统进入待命状态[12-13]。
2.2 红外收发模块
红外收发模块包括红外发射电路和红外接收电路2 个电路模块,其中,红外发射电路主要由3 个红外发射管(LED1-3)、1 个三极管(Q1)和2 个电阻(R1 和R2)组成,3 个红外发射管同时受控于三极管Q1,三极管Q1 的基极经过电阻R2 与主控芯片IC1 的第5 个引脚YK 连接,主控芯片发出的遥控信号经过三极管Q1 进行电流放大后,驱动LED1-3 发射红外编码信号,实现对家用电器设备的遥控控制[1,13]。
红外接收电路模块由1 个一体化红外接收头J2、上拉电阻R3 和2 个滤波电容C1、C2 组成[12-13]。在遥控指令录入模式下,将家用电器设备原遥控器对准系统的红外接收头并按下按键,遥控器所发射的遥控编码信号被红外接收头接收和解码后通过第2脚(HW_R)将解码信号传送到单片机主控芯片的第2 脚(HW_R),主控芯片对解码信号进行分析后提取该设备遥控信号的特征信息并保存在内部存储器中,完成电器设备遥控信号的录制过程。当系统要对家电设备进行控制时,单片机主控芯片对该设备的特征信息重新进行编码与调制,调制信号通过红外发射电路发射出去,便可对该设备进行红外遥控控制[11-12]。
2.3 蓝牙通信模块
为了通过手机对不同家用电器设备进行选择和遥控控制,系统以蓝牙通信模块为通信纽带,由蓝牙通信模块将用户手机发射的控制信号传送给系统主控单片机,再由系统对家用电器设备进行控制[14-15]。系统使用的蓝牙模块型号为JDY-33,该模块是一块经典蓝牙+BLE 的微小体串口双模蓝牙砌块,功耗低、成本低,V2.2 版本,兼容HC05 蓝牙接收模块,支持Windows、Linux、android 和IOS 数据透传,其工作电压为3.0~3.6 V,工作频段2.4 GHz,调制方式GFSK,最大发射功率6 dB,最大发射距离30 m[12]。
系统中使用的蓝牙模块仅使用5 个引脚,其中2个引脚为电源脚,分别接3.3 V 电源和电源地;2 个引脚为串口通信接口,与系统单片机主控芯片的2 个串口引脚RXD 和TXD 交叉连接,即蓝牙通信模块的TXD 和RXD(第1 和第2 引脚)分别与主控芯片的RXD 和TXD(第1 和第8 引脚)连接,通过串口通信方式与单片机主控芯片进行信号传递;最后一个引脚为蓝牙连接状态脚STAT,与单片机主控芯片第7 脚连接,当蓝牙未连接时,该脚为低电平,蓝牙连接后为高电平[9-10]。STAT 脚设为系统退出低功耗工作模式的唤醒信号触发引脚,当单片机主控芯片检测到该脚产生一个高脉冲信号时,系统退出低功耗模式,进入正常工作模式。
3 手机APP 控制软件设计
为了实现对不同家用电器设备的遥控控制,首先要通过手机选择需要控制的设备,再对该设备进行功能设定和控制。为此,需开发一款具有这些控制界面和功能选项的手机APP 软件,具体开发过程如下。
3.1 APP 界面设计
在电脑上安装E4A 安卓开发软件后打开软件,在工程数据的主窗口界面顶部合适位置增加一个标签,在窗口左测“属性区”将其标题属性命名为“通用家电遥控器”,作为本窗口的主识别标签。在主识别标签下分别添加“打开蓝牙”“开始搜索”和“退出”3 个软按键,横向对齐置于主识别标签下方;添加一个蓝牙组件,用于连接手机内部的蓝牙模块;添加一个高级列表框,用于存放手机蓝牙搜索到的外部蓝牙设备,以便用户选择连接。在高级列表框下方添加“电视机”“接收器”“空调机”和“电风扇”等常用家用电器小图片,在图片下分别添加标签并命名为相应的设备名称。设备图片标签下添加2 个标签,用于显示需要控制的设备,标签右边添加一个按键,以便对选中设备进行摇控开机或关机操作。同样的操作分别再添加3 个标签和3 个编辑框,标签分别命名为“定时开机:”“定时关机:”和“限时使用:”,编辑框用于输入相关参数(如定时关机的具体时间等),最后分别在3 个编辑框后添加执行按键,用于确定或取消执行该条对话框所设定的参数。在界面底部添加一个标签命名为“录制遥控器指令”,添加一个按键,用于执行录入遥控器指令命令。整个APP控制界面的设计效果如图3 所示。
图3 手机APP 软件设计界面
3.2 APP 代码编程设计
点击E4A 软件编辑窗口的代码区便可对界面设计中添加的各控件进行代码编程,实现各控件间的逻辑控制和数据运算。系统APP 代码的设计思路如下。
对于蓝牙的连接控制,主要通过“打开蓝牙”“开始搜索”和“高级列表框”3 个组件进行控制。在代码区的编程思路为:当点击“打开蓝牙”键,系统打开或关闭手机的蓝牙开关;当蓝牙开关打开后,点击“开始搜索”键,手机内置的蓝牙模块搜索周边的蓝牙设备,并将搜索到的蓝牙设备名称和地址保存在高级列表框中,当高级列表框中出现需要连接的设备时,点击列表右边的“连接”键便可连接该设备;在连接状态下,点击“断开”便可断开手机与设备的连接。
家电设备遥控信号的录制——在APP 界面中选择需要录制的设备类型后,点击“录入”键,系统进入遥控信号录入模式。对已录入摇控信号家电设备的控制——手机与设备连接成功后,点击列表框下方需要控制的设备(如电视机等),点击“开/关”键,便可对该电器设备进行开/关操作;同理,对定时开机等功能进行设定后,点击其后面的按键便可对电器设备进行功能设定,实现限时使用等个性化功能控制。
4 测试与实验
对系统的测试包括手机APP 应用软件的运行测试、遥控指令信号的录入测试和手机通过系统对不同家用电器设备的控制测试。测试过程:将E4A 安卓软件设计出的APP 应用程序安装到安卓手机上,应用程序能顺利安装完成,点击搜索按键能搜索到周边的蓝牙设备,并在高级列表框中显示,APP 应用程序运行正常,不出现卡顿或死机现象。在手机距离系统10 m 范围内,手机APP 每次都能顺利与系统的蓝牙通信模块建立连接,依次点击手机APP 界面上的“电视机”和“录入”键,系统能进入遥控器指令录入模式,将电视机的遥控器对准系统的红外接收头并按下遥控开关键,红外编码信号能被单片机主控芯片读取,摇控特征信息能正确存入到芯片内部存储器中,手机APP 界面能收到录入成功的反馈消息;同理,依次点击手机APP界面上的“空调机”和“录入”键,使用空调遥控器完成录入操作,手机APP 界面同样能收到录入成功的消息,遥控信号录制功能正常。遥控器信号录入完成后,在手机APP 界面上依次点击“电视机”和“开/关”键,电视机能被打开或关闭;依次点击“空调机”和“开/关”键,空调机也能被打开或关闭。经过多次测试与实验发现,在无墙体遮挡的10 m 范围内,无论是录入功能还是遥控功能,用户通过手机APP 软件能顺利无阻地对家用电器设备进行开关机操作和功能设定,且系统运行稳定,手机APP 应用程序无卡顿或死机现象。
5 结论
本文基于STM8 单片机为系统主控芯片设计了通用家电遥控系统,通过配套设计的手机APP 应用程序不仅能录入家用电器设备的遥控信号,也能对多种不同的家用电器设备进行红外遥控开关机、定时关机和限时使用等常规遥控操作和功能设定,完美实现一机多控的综合性遥控功能,解决了因遥控器多而出现遥控器丢失、难找,以及不能很好对家电设备进行限时使用和个性化控制等问题。