摘 要:传统的数字时钟功能单一,且易受环境温度等因素影响出现误差。本设计基于北斗卫星导航系统的精准授时技术,结合单片机主控系统、传感器模块、WiFi模块和LCD12864模块,实现日期、时间的实时获取和显示、语音闹钟的设置和提醒、LCD背景灯光的自动开关、温湿度数据的检测和监控报警等功能。其中,闹钟、温湿度等数据的功能设置和信息获取均可通过手机端进行远程无线智能语音交互,实现北斗数字时钟的物联网智能控制。
关键词:物联网;单片机;北斗卫星;智能时钟;云端通信;语音交互
中图分类号:TP368 文献标识码:A 文章编号:2095-1302(2024)02-00-05
0 引 言
数字时钟是以数字形式显示时、分、秒等信息的一种计时装置,内容呈现直观,性能稳定,被广泛应用在家庭、工厂和各种科技研发活动中。目前主流的传统数字时钟主要采用微控制器晶振电路产生的基础时钟脉冲进行定时,或者配合相关时钟芯片(如DS1302、PCF8563)实现计时效果[1]。由于时间的连续性,很难准确为本地时钟设置实时时间信息,同时,由于晶振频率等硬件参数易受到温度影响,时间基准将产生误差并不断累积。此外,传统时钟在后续功能扩展和维护方面均受到限制。
卫星授时是实现全球范围内时间精确同步的最佳选择,本文设计的时钟信息来源于北斗卫星导航系统的精准授时技
术[2-3],北斗卫星导航系统(BeiDou Navigation Satellite System, BDS)是中国自主研发的全球卫星导航系统,也是继美国全球定位系统(GPS)、俄罗斯格洛纳斯(GLONASS)之后的第三个独立运行的成熟的卫星导航系统[4]。
北斗授时系统通过星载原子钟传递国家授时中心发播的国际通用标准时间(UTC)[5],本文设计的智能时钟作为接收终端,接收北斗卫星的广播信号后,交由微控制器进行分析处理,实现与标准时间的同步,使得时钟的设计更加简单方便和容易维护,也为时钟智能化功能的嵌入提供了更多空间,编程控制更加灵活。
1 系统总体设计
智能北斗时钟系统架构如图1所示。采用STC89C54单片机为主控制器,接收北斗模块获取的数据,并将数据中的日期和时间信息解析后在LCD屏幕上显示。时钟的闹钟功能可由按键设置完成,通过蜂鸣器电路发出不同频率的声音提醒用户。相关传感器经单片机驱动后可正常输出传感器数据,经由按键或者手机APP切换不同的屏幕显示,设置温湿度和光照报警阈值,自动控制继电器和LCD屏幕开关,继电器接口可根据用户需求自行连接相关执行器,如风扇、灯光、加湿器等。
WiFi模块通过无线网络连接云平台,实现移动端手机APP与北斗时钟的智能交互,远程查看传感器数据,语音设置闹钟时间等,使北斗时钟具有物联网智能监测和控制功能。
2 硬件设计
为保证程序功能拓展的灵活性,本设计采用具有更大ROM和RAM的STC89C54单片机搭建最小应用系统,它与常见的STC系列51单片机完全兼容[6],可以通过串口直接下载程序。智能北斗时钟以STC89C54单片机为核心开展主要外围电路的设计。
2.1 电源电路
智能北斗时钟主要使用锂电池供电,通过DC-005电源插座充电,本设计采用IP5306移动电源芯片进行电源管理,如图2所示。IP5306是一款集锂电池充电管理、电池电量指示、升压转换为一体的多功能电源管理系统级芯片。断开外部充电电源后,系统自动切换到电池升压输出Vout,输出电压固定5 V,D1~D4四个LED灯用于电量显示。
系统电源电路具有5 V和3.3 V电压输出,如图3所示。AMS1117三端稳压芯片将输入的5 V电压转成3.3 V,经电容进行滤波处理后给其它电路供电。
2.2 通信模块接口电路
本设计使用中科微电子的北斗/GPS双模定位通信模块ATGM332D,接收具有高精度授时信息的卫星数据,接口电路如图4所示。模块通过BDS_RXD与BDS_TXD引脚和单片机P3.0与P3.1口连接,实现串口数据通信,单片机对串口缓存的NMEA协议数据包进行解析处理,获取所需的日期和时间信息[7]。PPS为授时输出引脚,与单片机外部中断口P3.2连接,在收到时间信息后,默认每隔1 s输出一个变化脉冲,触发时间信息同步。
为保证时钟在北斗信号较弱或者没有信号时能正常工作,同时在掉电时为模块的RTC部分供电,保存最新的模块参数,加快下次启动后搜索卫星的速度,本设计在VBAT引脚外接了备用纽扣电池CR1220[8]。
此外,为实现北斗时钟的物联网智能控制,本设计使用ESP8266WiFi模块连接互联网。ESP8266是一款超低功耗的WiFi串口透传模块,专为移动设备和物联网应用设计。如图5所示,模块与单片机之间通过串口通信。
2.3 传感器及执行器接口电路
温湿度模块选用DHT11传感器,与单片机之间采用简单的单总线协议通信,接口电路如图6所示。DHT11内部由高性能8位单片机、电阻感湿元件和NTC测温元件组成,可以实时收集周围的温度和湿度信息,并转化为数字信号,发送给STC89C54单片机[9-10]。
光照传感器电路如图7所示。选用阻值为10 kΩ的光敏电阻GM5516,其电阻值随着入射光的强弱而发生改变,通过串联分压连接到PCF8591数据采集器的AIN0模拟输入口,通过I2C总线将A/D转换后的数字量发送给STC89C54单片机进行分析处理。
蜂鸣器和继电器驱动电路用于时钟的闹铃报警和超过阈值后的继电器开关控制,蜂鸣器驱动电路如图8所示。当驱动信号为低电平时,PNP三极管导通,蜂鸣器通电发出响声。继电器驱动电路如图9所示。当驱动信号为低电平时,PNP三极管导通,继电器吸合,开启外接的风扇、加湿器、灯具等设备。
2.4 输入输出设备接口电路
智能北斗时钟的各项功能设置由用户操作按键完成,本系统中使用独立式按键设计,电路简单直观[11],如图10所示。单片机通过读取对应I/O口的电平状态判断按键是否按下,当I/O口为低电平时,对应按键被按下。4个按键的功能分别为Key1界面切换、Key2选项上移/数字加、Key3选项下移/数字减和Key4设置/确认。
系统采用LCD12864液晶模块显示时间、日期,设置信息等,分辨率为128×64,如图11所示。液晶模块与单片机的接口方式简单、指令操作方便,可显示8列×4行16×16点阵的汉字,也可完成图形显示,具有良好的人机交互界面。
3 软件设计
本智能北斗时钟的软件设计涵盖了物联网三层架构,包括时钟端、网络端和应用端的程序设计。
3.1 时钟端程序设计
时钟的程序设计主要为基于单片机的智能终端软件开发,包括按键子程序、传感器驱动子程序、执行器驱动子程序、串口收发子程序、LCD显示子程序、数据分析处理子程序等模块程序的设计开发。时钟端系统的主程序流程如图12所示。在温湿度报警的同时可以触发继电器动作,打开外接设备重新调整温湿度数据。卫星数据、WiFi语音指令和温湿度数据在串口中断服务程序中获取和解析,其程序流程如图13所示。
3.2 网络和应用端程序设计
网络端采用新大陆物联网云平台搭建的数据传输通道,新大陆云平台是一个开放的物联网云服务平台,通过平台提供的案例设计器、API、SDK等,使得技术人员能轻松、快速开发物联网相关应用。
在搭建和配置云服务平台后,用户可以通过手机、平板、计算机等终端设备,实时掌握时钟端传感器、闹钟设置等信息,使得对本智能北斗时钟的信息管理变的更加轻松简单。如图14所示,当时钟端WiFi模块和新大陆云连接成功后,给云平台发送温湿度等数据信息,云平台也可以下发控制执行器指令,控制时钟端继电器连接的外部设备[12],如图15所示。
应用端为安卓应用程序APP,通过MQTT协议连接云平台,作为客户端订阅云平台服务器端提供的消息,并可发布相应的控制命令,通过云平台远程操作北斗时钟的各项设置和运行。本安卓应用程序发布的控制命令采用科大讯飞的语音识别引擎进行解析,用户界面如图16所示,可以使用预先定义好的语音指令与北斗时钟交互。
4 系统测试
在系统上电后,北斗授时模块需要约30 s的加载周期,LCD12864显示“卫星连接中”,显示信息和温湿度数据,如图17所示。卫星连接成功后,可以看到单片机解析后显示的日期和时间信息,如图18所示。
通过本地Key1按键或者远程语音命令可以切换到光照信息、闹钟状态和阈值数据界面,其中,温度默认的阈值数据界面如图19所示,当温度高于59 ℃时,继电器吸合。通过Key4按键或者远程语音命令可以进入相关设置界面,
如图20所示,通过Key2和Key3对闹钟、温湿度、光照等阈值进行设置,闹铃的时间设定和温度阈值的设定如图21和图22所示。经测试,蜂鸣器能在设定的闹铃时间准时响起,LCD屏幕背光灯能在光照较弱时自动打开。
此外,当北斗时钟掉电或者卫星信号较弱时,经测试,系统可以通过备用纽扣电池保存的参数继续准确计时,更新时钟信息。
5 结 语
本文基于北斗卫星精准授时技术设计的智能时钟,能够实现与标准时间的实时同步,精确度高,稳定可靠,使用和维护方便,应用场景广泛,除了闹钟设置、温湿度监测、光照监测等功能外,还有物联网远程交互功能,可通过云平台和手机语音APP对时钟进行设置和操控,极大方便了普通用户,使得北斗卫星系统在智能家居中的应用场景不断扩大。
参考文献
[1]翟朝霞,金国华,刘剑桥,等. 基于单片机的多功能电子万年历系统[J].数字技术与应用,2019,37(10):134-135.
[2]李芬.北斗授时在电力计量系统工业物联网时钟同步的应用[J].卫星应用,2021,12(7):51-57.
[3]陈金鑫,邓盛名,余斌,等.北斗+GPS双源授时在五强溪水电厂的应用[J].水电站机电技术,2022,45(10):133-135.
[4]潘潇,徐伟民,叶红.本地承载网北斗授时同步时钟改造研究[J].通信与信息技术,2022,52(6):65-68.
[5]汪琰.浅谈GPS+北斗双时钟系统在5G 基站上的应用[J].电子测试,2021,28(10):78-79.
[6]张云,曹剑侠,李景景.基于单片机的多功能万年历设计[J].信息与电脑,2022,34(12):137-139.
[7]王亚林,陈楠.一种物体定位检测实验电路设计[J].电子技术与软件工程,2022,11(6):124-127.
[8]吴奇新,郑文豪,叶志鹏,等.基于SMT32的智能导盲杖[J].电子制作,2020,27(13):34-36.
[9]许亮,刘通.基于51单片机的新型万年历设计[J].枣庄学院学
报,2017,34(5):81-84.
[10]谭铭明,姚玲英,阮煜琴,等.基于52单片机智能贴心时钟的研究与设计[J].电子制作,2021,28(9):16-19.
[11]孙凤乾.基于STC89C51单片机的数字时钟设计[J].齐鲁工业大学学报,2021,35(3):47-51.
[12]浦灵敏,宋林桂.物联网与嵌入式技术应用开发[M].武汉:华中科技大学出版社,2022.