APP下载

采用STC15W404AS单片机的手机蓝牙台灯装置设计

2020-07-23孙会琴张乃昌

武夷学院学报 2020年6期
关键词:台灯串口温湿度

袁 炜,孙会琴,张乃昌,张 磊

(1.淮南师范学院 机械与电气工程学院,安徽 淮南 232038;2.河北科技大学 电气工程学院,河北 石家庄 050018;3.杭州鸿泉物联网技术股份有限公司,浙江 杭州 310052)

随着科技的进步,人们对智能家居的需求不断扩大,作为家家常用的台灯也在智能家居的范畴之内[1]。目前市面上的台灯类型多样,能够满足人们的基本需求,但为进一步提高台灯的服务水平和质量,可以在其功能,操作方法等方面加以探究,使其更加智能化、人性化。

1 系统整体方案设计

借助完善的手机蓝牙技术[2],以单片机为核心控制芯片,在传统台灯功能的基础上,增添亮度调节,温湿度检测,语音提示等功能。装置主要包括STC15W404AS单片机、温湿度传感器、EEPROM、OLED显示屏、QJ008语音模块、HC-06蓝牙模块、LED灯等。系统硬件框架如图1所示。

图1 系统硬件框架图Fig.1 System hardware framework diagram

1.1 STC15W404AS单片机

STC15W404AS作为主控芯片,具有超高速CPU内核,最高频率可达到35 MHz。采用内部晶振驱动,内含高速异步串行接口(UART),管脚功能丰富,也可外接74HC595拓展通用I/O口。主控芯片采用SOP20封装,如图2所示。

图2 主控芯片封装图Fig.2 Master chip package diagram

1.2 温湿度传感器

DHT11温湿度传感器内部包含NTC测温度和电阻式测湿度两个部分,性能稳定,读数精确[3]。采用DATA管脚与单片机进行数据交互,为提高远距离传输数据的稳定性,可在DATA管脚上拉4.7 KΩ。通过DATA管脚传输数据大小为40 bit,数据的高位在前面先输出,编写代码时应注意,DHT11传输的数据格式依次是湿度数值,温度数值,最后8 bit的数据就是校验值。注意,校验值与前面传输的数据之和相等时,读取的数据才正确。图3为DHT11的引脚图。

图3 DHT11引脚图Fig.3 DHT11 pin diagram

1.3 QJ008语音播报模块

QJ008语音播报模块主要是用于智能语音提醒,提示用户注意休息,切勿用眼过度。QJ008语音芯片可通过串口直接控制,支持U盘内音频播放,音频音质好,使用方便,可靠稳定[4]。选择W25Q64作为Flash存储芯片,采用SPI接口,其内存为8 MB,电压范围是2.7~3.6 V,10万擦写次数,Flash内部数据至少能保存20年。采用LM4890作为功放电路主芯片,无须外接耦合电容,接喇叭即可输出播放[5]。图4是QJ008语音播报系统框图。

图4 QJ008语音播报系统框图Fig.4 QJ008 voice broadcast system block diagram

图5为QJ008语音播报模块原理图。DATA1为数据位,CMD1为片选,CLK1为时钟。首先将数据线与USB串口相连后再连接电脑,格式化W25Q64,将待播音频放到指定的目录下。其次利用单片机内部定时器Time0设置每次发送数据的间隔,每隔一段时间STC15W404AS会通过串口MT_SR发送指令到QJ008,通过数据判断后控制相应的SPI接口线,读取W25Q64芯片存储的音频文件,最后通过LM4890功放电路输出音频[6]。声音的大小通过调节LM4890上电阻的值来控制。

图5 QJ008模块原理图Fig.5 QJ008 module schematic

1.4 HC-06无线蓝牙串口模块

HC-06无线蓝牙模块采用串行异步通信,操作简单。根据模块上的LED蓝灯判断手机蓝牙是否连接成功,若蓝灯常亮则蓝牙模块与手机连接成功;若蓝灯闪烁,则连接失败。手机蓝牙串口APP与HC-06无线蓝牙模块相连,定义蓝牙协议格式为:起始数据(0x0F),开灯数据(0x10)或关灯数据(0x20),灯的亮度数据(0x00-0x20),校验位。通过手机蓝牙发送协议之和,单片机在串口中进行解析,实现灯的开关控制及灯光亮度色温的调整[7]。

1.5 AT24C128C EEPROM串行存储器

AT24C128C芯片采用的是IIC总线,IIC总线能在芯片间进行串行数据交互[8]。IIC与任何CPU的信息交互采用同一种方式,具有编程的一致性。AT24C128CEEPROM串行存储器也支持IIC总线,其功能引脚图如图6所示。

图6 AT24C128C功能引脚图Fig.6 AT24c128c function pin diagram

1.6 OLED显示屏

选用四线制的IIC接口OLED屏,OLED屏类似于点阵屏,不同于LCD,无须外接背光源,稳定性、显示效果较LCD好[9]。OLED屏用于显示DHT11模块检测出的温湿度,实时获取当前环境的温湿度,其具有GND、VCC、SCL、SDA4个接口。

2 系统软件设计

系统软件在Keil5编译环境下使用C语言实现的。C语言是一种广泛使用的计算机语言,其具有易编译、快运算、函数库丰富,良好的可读、可移植性等优点,有利于实现对硬件的调节控制。系统软件设计首先在STC15W404AS单片机上电后,判断蓝牙信号是否正确匹配,正确匹配后进入手机APP界面[10]。其次通过蓝牙通信,LED照明系统接收由手机APP发送的相关指令,然后解析成相应开、关灯指令,亮度调节指令、温湿度显示、设置定时语音播报等。图7为手机APP蓝牙通信流程图,图8为系统软件设计整体流程图。

图7 手机APP蓝牙通信流程图Fig.7 Mobile APPbluetooth communication flow chart

图8 系统软件设计整体流程图Fig.8 Flow chart of system software design

3 系统调试与问题解决

3.1 硬件调试

硬件调试包括3个步骤:(1)目测焊好的电路板连接情况,将其与原理图、PCB对比,检查外部元器件、电路是否有漏焊、断路等情况。(2)利用万用表进行逐一测量,判断是否存在短路、短路的情况。(3)确保电路无误后,通过串口给PCB板供电,烧写简单的点亮灯代码测试一下,LED灯正常点亮后即可进行代码烧写、软件调试。

3.2 软件调试

用keil5编译主程序,编译无误后通过STC自动烧录器烧写程序,选择STC15W404AS单片机以及COM4串口,打开OBJ目录下的LED.hex文件,点击下载/编程,ISP软件开始识别单片机型号STC15W404AS,出现烧写成功即可。STC15W404AS内部有晶振,烧写时可修改频率。

3.3 问题解决

测试过程遇到的问题及解决方法:(1)烧写程序时总出现下载失败,发现最低波特率过高造成下载失败,将最低波特率值由默认的2 400修改为1 200,即可下载成功。(2)程序烧写成功后,OLED显示屏温湿度数值为空白。检查了程序之后发现dth11.c有个变量未进行初始化,初始化修改代码重新烧写,功能正常。

4 装置功能实现与总结

基于STC15W404AS单片机的手机蓝牙台灯实物如图9所示,通过USB给装置供电后,可利用手机蓝牙串口APP发送十六进制数据0F100322实现开灯,发送0F20002F实现关灯,也可通过拨码开关控制台灯的开关;OLED显示屏实时显示当前环境的温湿度,如图10所示;利用手机蓝牙界面操控灯亮度的调节,如图11所示;QJ008会进行用时记录及语音播报,提醒用眼时长。

图9 智能蓝牙台灯实物图Fig.9 The physical picture of the pntelligent bluetooth besk lamp

图10 温湿度显示图Fig.10 Temperature and humidity display

图11 亮度调节对比图Fig.11 Brightness adjustment contrast diagram

基于STC15W404AS单片机的手机蓝牙台灯装置设计,完成了手机蓝牙对LED台灯智能控制,实现了远程和就地控制台灯的开关、亮度状态,一定程度上避免了用户过度用眼造成视觉疲劳的情况,提供了依据温湿度显示选择穿着衣服的便利,这些优势使得台灯的智能化、人性化程度都得以提升,具有不错的实际应用价值。

猜你喜欢

台灯串口温湿度
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于AT89C51的数字型蚕用温湿度计的设计
DIY书房小台灯
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于温湿度控制的天气预测装置
基于DSP和μcos的温湿度检测系统的设计
太阳与台灯
船舶电子设备串口数据的软件共享方法
PLC在计算机空调机房温湿度控制中的应用