主页 > 案例大全 > 论文知识案例-智能辉光钟的设计与制作

论文知识案例-智能辉光钟的设计与制作

2021-06-18 11:06:21

  针对当前电子产品市场日益增长的个性化和智能化需求,本文提出了一种智能家居设备——智能辉光管数字时钟的设计。它采用STM32作为核心控制芯片,采用6个辉光管进行显示,同时使用蓝牙技术实现其与智能手机等移动设备进行数据通信。在满足了智能化需求的基础上对比传统数字时钟又显得更加美观和个性。

  本文的主要工作为:

  1、设计一个智能辉光钟,以STM32F103RET6作为核心控制芯片,设计电路并绘制、制作PCB板,自己焊接元器件,同时用C语言设计控制程序;

  2、研究并了解最主要的控制显示的算法;

  3、设计并编写一个手机APP能够控制其部分功能。

  最终设计的智能辉光管时钟具有时间显示、室内温度显示、利用手机APP进行数据查看和一键时间校准等实用功能,计时准确,同时其保留其他接口,后期可以根据需要进行扩展并连接其他采用蓝牙的智能家居设备。

  常规的数字时钟的定义是采用数字电路对时、分以及秒进行数字化显示[1]的计时装置。然而随着近年来人们对电子产品所提出的功能以及外观上越来越高的要求,当前市场上的数字时钟已经无法完全满足人们对此类产品的需求。

  辉光管是20世纪60年代的产物,它已经脱离了目前电子产品生产的主流市场,即便是很多电子行业的人员也都不知道这一器件的真面目。但辉光管作为一种传统的数字显示器件,由于其独特的显示方式和优美的灯光色彩,成为现代科技与复古美学碰撞结合的新宠儿[1]。为了使传统的数字时钟更加个性化,采用辉光管作为其显示的设备,制作更加美观辉光钟。但是,辉光钟如果只是单纯具有时间显示的功能,再加上辉光管的高昂价格,在市场上可能不太具有竞争优势。而随着当前智能家居的发展,如果可以使时钟变得更加智能化就会极大增加其市场竞争优势。

  因此,融合智能家居中的重要技术制作一个智能辉光管显示时钟的想法应运而生。为了制作此辉光钟,需要做的就是设计其硬件和软件并用上蓝牙通信技术使其能够与其他设备之间通过蓝牙进行通信。蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接[3]。最早的蓝牙技术于1999年诞生,尽力过进20年的发展到现在,其传输速度、通信容量、功耗等已经有了天翻地覆的改变。最新的蓝牙技术是2016年发布的蓝牙5.0,它通信速度相比蓝牙4.0提高了一倍,这意味着其功耗也减小了一半。在蓝牙5.0技术提高了通信容量之后,各种蓝牙设备之间在进行无线传输之前就不再需要安装任何多余的程序,也不再需要事先进行配对等操作,实现了即用即连[3]。最关键的问题就是它也解决了无法兼容旧版本的问题。蓝牙技术的最主要的技术包括:跳频技术、纠错技术、微微网以及安全性[5]。截至目前,全世界已有2000多家企业加入全球蓝牙标准化特别兴趣小组,国内也有许多厂商、组织已经加入国际组织共同推广蓝牙技术。

  在使用蓝牙技术之后,辉光钟在原有个性化的基础上变得更加智能化。在其做为计时工具的同时,更加多的是一个可以控制管理一部分其他智能家居设备的智能终端设备,以便提高居住环境的舒适度。毕竟就市场来看,提高居住环境的舒适度是当今社会的主流[6]。这样,就使得这个产品更加适应时代的发展趋势,同时也更加具有市场竞争力。

  1.2国内外发展现状

  对于数字时钟来说,不论是国内还是国外,当前的生产技术已经十分成熟。就单从产量和销量而言,中国位居世界第一。但是如果说技术方面有什么改革创新的话,就目前而言没有实质性的重大进展。自从电子产业发展以来,数字时钟发展的模式就向着走时更加精确,成本更加低廉、功能更加强大、外观更加精美这几个方向前进,前两个目标以目前的水平已经到达了一个瓶颈,而后两个目标确是有着极大的发展空间。

  就外观而言,各大厂商的时钟五花八门,但是大部分跳不出用数码管或是LED电子屏显示时间的局限。使用辉光管显示的时钟目前市面上虽然存在,但也只是极少数。在这些产品中,又以严泽远设计的辉光钟最为出众,其作品被刊登在《无限电》杂志2011年第7期。它具备时间显示以及遥控器控制的功能,后来经过不断改进拥有了诸如手机控制、闹钟等功能。张喜凤[1]在2018年也提出了一种使用辉光管作为显示器件的电子万年历设计方案,它具备了超声波测距控制、时间显示、日期显示、自动计算闰年、温湿度显示等功能。

  而在智能家居产品方面,直到近几年才有了比较好的发展,国外诸如Google、apple等,国内小米、海尔智家等公司目前都走在科技和市场的前列。但是在智能家庭集线器(即控制一个家庭中所有智能家居设备的器件)上,目前国外包括Amazon Echo,Google Home,Insteon Hub Pro,Samsung SmartThings和Wink Hub等都可以实现不同厂家产品互通,而国内的没有,最简单的例子就是米家的设备无法和天猫一系列产品互通互联。

  1.3本课题的主要研究内容

  在常规数字时钟的基础上进行改进,采用辉光管设计并制作一个智能时钟,使之可以准确的显示时间(24小时制,精确到秒)。同时为适应智能家居的发展,利用温度传感器、湿度传感器等室内环境传感器,使之能够通过按键切换显示室内的温湿度。同时这些数据可以通过蓝牙上传至移动端,移动端对数据进行处理之后可以进行一键时间校准、数据查看等操作。

  1.4论文组织结构

  第一章:引言。介绍该选题——智能辉光钟的设计与制作的背景和意义、主要研究的工作和国内外研究现状。

  第二章:智能辉光钟硬件设计。给出整体的硬件设计框架,并逐个介绍个模块的工作原理和每个模块的功能和用途。

  第三章:智能辉光钟软件设计。给出软件控制部分以及APP部分主要的流程图和设计思路,同时对最重要的部分程序算法如显示控制算法、数据处理算法等进行分析,介绍其功能。

  第四章:结果分析。对本次设计中已完成部分进行测试和分析。

  第五章:结论与展望。对本次设计进行总结和思考,同时给出了改进的思路并且对设计日后的发展提出了思考。

  2智能辉光钟硬件设计

  2.1系统框架

  系统总体的方案框图如2-1所示:

  图1-1系统方案框图

  从图2-1可以看到,本次设计采用一片stm32主控芯片并对其进行编程控制。通过对固定12V直流电源的升降压用于提供全套系统所需供电。同时,通过读取DS3231时钟模块、温湿度模块的信息并运用64位移位寄存器HV57708控制辉光管的显示。最后通过蓝牙模块与手机端APP进行数据互通,做到手机端查看显示温湿度信息并同步时间信息至时钟模块中。

  2.2MCU(主控模块)

  在本次设计中,对于核心控制器,采用的是STM32F103RET6芯片。芯片集成定时器,ADC采样,SPI总线,I2C总线,USB,串口等多种功能。对比51单片机功能更加完善,编程更加方便,同时价格方面差距不大。核心控制器STM32F103RET6的电路其实很简单,只需要绘制其最小系统然后对其其他引脚做出规划即可。其原理图如图2-2所示。

  图2-2 STM32引脚图

  STM32F103RET6作为整个智能辉光钟的大脑,它需要读取各传感器的数据同时控制辉光管的显示,并且最重要的一点就是通过蓝牙模块与手机移动端进行数据通信。从图2-2中也可以看到,此部分设计并未占用其全部的I/O口,剩余的接口还很多,因此完全可以作为其他传感器模块的接口,这为以后对其进行改进留下了很大的空间。

  2.3数字显示模块

  此显示部分共有两种方案,方案一为采用8片8位译码器74HC595作为辉光钟显示的控制电路,方案二是采用1片64位移位寄存器HV57708作为显示控制电路。两种方案对比,方案一虽然原理十分简便,但是所需要器件数量多,在最后绘制PCB的时候不如方案二简便,同时,如果采用方案一在对辉光管驱动的时候还需要做其他的设计,6位时间显示需要采用60个三极管才能达到辉光管对电压的要求。反观HV57708,6位时间显示所需只是60位移位寄存,所以只需要1片就满足要求,同时用此芯片,所占STM32的I/O口也比方案一少,设计电路方面也不需要60个三极管进行控制,在编程控制方面也可以将它看成4个16位移位寄存器进行操作,虽然后者在价格方面不占优势,但是从另外很多角度来看,采用方案二更为合理。

  所以最终采用的设计是移位显示的核心芯片为HV57708。想要完成这部分功能首先需要了解辉光管和HV57708的功能以及其各个引脚的功能。

  辉光管发明于20世纪50年代中期,人们期望发明一种能够线性显示数字的器件。辉光管随之诞生,辉光管属于电子管的一种,发光原理和霓虹灯差不多。辉光管的制作通常是在一个真空管里,放置10个阴极(形状为数字0到9)和一个金属丝网制做成的阳极,某些辉光管为了显示的多样化,还会加入一个或两个小数点。在管内充入惰性气体氖气和汞或氩,再通上高压后,每一个阴极可以发出红橙色光。由于管内混合的气体不同,就会产生绿色、蓝色或者紫色的荧光。

  由于辉光管已经停产,目前能够买到的质量较好的基本上为前苏联时期的产物,其价格十分昂贵。对比目前市场上能够找到的辉光管,本文采用的是国产的QS-30辉光管,光效为红橙色,相比起苏联产的古老辉光管,价格便宜但是使用寿命较短,平均为每只500小时左右,但是经过程序完善的话可以进一步延长其使用寿命,只需要加一个触摸唤醒显示功能即可做到。此型号的辉光管的引脚示意图如图2-3(a)所示。

  图2-3(a)辉光管引脚示意图

  图2-3(a)中2脚(A)连接电源180V,8脚不需要连接,其余脚均对应具体的数字0-9,具体要显示某一位数字只需要在此脚上输入一个低电平的信号(即输入0),其余脚保持高电平。此设计采用6个辉光管,具体需要60个输出控制,所以HV57708的64个输出脚中有4个引脚无需考虑。

  HV57708是一种具有推挽输出的低压串高压并联变换器。该器件设计用于驱动电致发光显示器。它还可以用于任何需要多输出高压电流源和吸收容量的应用,如驱动等离子体面板、真空荧光显示器或大矩阵液晶显示器。该设备有四个16位并行移位寄存器,允许4倍于1的数据速率(它们一起计时)。还有64个锁存器和控制逻辑来执行输出极性选择和消隐。Hvout1通过极性和消隐逻辑连接到第一移位寄存器的第一级。数据通过时钟逻辑的从低到高转换上的移位寄存器移位。当连接到GND时,DIR引脚使CCW移位,当连接到VDD时,CW移位。adata输出缓冲区用于级联设备。此输出选择移位寄存器(hvout64)最后一位的当前状态。移位寄存器的操作不受Le、BL或pol输入的影响。当锁存启用时(即LE输入高),数据从移位寄存器传输到锁存器。当LE状态为低时,锁存器中的数据被存储。HV57708的具体引脚图如图2-3(b)所示。

  图2-3(b)移位寄存器电路图

  图2-3(b)中Din1、2、3、4这四个脚为数据输入脚,CLK、LE、POL为三个控制脚。VPP用来控制每个输出脚高电平时的电压。由于输出脚平时需要高电平,因此芯片工作在反相模式。模式的选择由POL控制,POL脚输入高电平时工作在正常模式,POL脚输入低电平时工作在反相模式。由于芯片工作在反相模式,初始化时四个数据输入脚全部置0。CLK是时钟脚,LE发生电平跳变用来控制将HV57708寄存器中的数据输出至引脚。

  2.4蓝牙通信模块

  蓝牙模块采用HC-08模块,它是一款低功耗的模块,其具体参数见表2-1。

  表2-1蓝牙模块参数

  从表2-1中可以看出,此蓝牙模块的工作频段为2.4GHz,工作电压为2.0-3.6V,休眠状态下的工作电流仅为0.4uA,通信时产生的高电平为3.3V。支持1200、2400、4800、9600、19200、38400、57600、115200这8种波特率,设置后模块重新上电生效。具体连接方式见图2-4。

  图2-4蓝牙连接示意图

  从图2-4中可以看出,此蓝牙模块使用UART方式与单片机连接,连接之后可以与手机或手提电脑等移动设备之间建立蓝牙连接,实现数据互通。

  2.5时钟模块

  时钟模块有比较多的选择,常见的有DS1302、DS1307、DS3231等。在此设计中,采用的是DS3231模块。对比其他的几个模块,它的精确性比较高,年误差大概为1分钟左右。同时它内部集成的功能更多,自带的电池可以保证在单片机掉电时能够自动计时,断电后不需要再次调整时间。

  DS3231采用的连接方式是I2C总线的方式,提供包括年月日时分秒全部的信息,对于不足31天的月份以及闰年,芯片会进行自动修正。它还电压比较电路用于监视VCC的状态,检测电源是否发生故障,如果发生故障则自动切换备用电源。模块的实物和原理图如图2-5所示。

  图2-5 DS3231模块实物及原理图

  2.6电源

  2.6.1升压部分(辉光管驱动)

  升压电路的设计上主要考虑的是采用可以进行DC/DC转换的IC芯片为核心进行设计,因为这样的电路外围元器件比较少,同时比较稳定。目前市场上可以找到很多这类IC芯片,针对不同要求的升压电路可以选择不同的IC芯片进行设计。在此智能辉光钟的电源部分,可以采用的IC芯片有比较多的选择,类似MC34063、UC3843等。而最终经过多方面的考虑,决定采用的是MC34063作为升压电路核心。

  MC34063是一款内置集成DC-DC变换器的单片机控制芯片,价格低廉。以其为核心的DC/DC变换器电路,只需少量外部元件即可完成。MC34063升压原理是:当芯片内部开关管通电时,电源通过采样电阻和电感,MC34063的1、2脚接地后,电感开始储能,电容向负载供电。当内部开关断开时,电源和电感同时向负载和电容提供能量。电感器释放能量时,由于电感器两端电动势的极性与电源极性相同,等于两个电源串联,从负载中获得的电压将大于电源电压。只要内部开关的开关频率(即芯片的工作频率)与负载之间的时间常数足够大,就可以在负载上获得连续的直流电压。

  该部分电路图如图2-6所示。

  图2-6 12V升180V电路

  从图2-6中可以看出,该电路采用了一个330mh的电感元件作为储能元件,采用一个MOS管IRF840作为高压推动。同时,在原理图绘制过程中MC34063采用了一个4位拨码开关代替,因为MC34063器件选择的时候选择了DIP-8的封装,其二者的器件封装在PCB上效果相同,因此并未自行绘制其封装。之所以采用此封装的MC34063芯片也与其输出电流方面有关,此设计所采用的QS-30辉光管,一个辉光管发光显示需要50mA的电流,6个辉光管即需要300mA的电流,由于SO-8封装的MC34063输出为300mA,DIP-8封装的为500mA,出于实际情况以及保留极限空间的考虑,因此采用DIP-8封装。

  同时在设计此电路的时候需要注意的是所用电容的耐压,由于有180V的高压,在实际焊接的时候也需要注意自身的安全。该电路的最终输出电压的计算靠的是两个电阻,由于辉光管需要180V以上的电压进行驱动,所以此处选择了4.7k以及680k的电阻,具体计算方法为1.25(1+R1/R2),放在此电路中R1即为680k电阻,R2为4.7k电阻,1.25为基准电压,在任何同类电路中,最后得到的电压值只和R1、R2有关,基准电压保持不变,因此此部分计算的结果为1.25(1+680/4.7)≈182.1V。

  2.6.2降压电路

  在此设计中,一共需要两种降压电路,分别为12V转5V电路以及5V转3.3V电路。12V转5V电路的原理很简单,只需要采用AMS1117-5即可做到。AMS1117有两个版本:固定输出版本和可调版本,固定输出电压为1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度;固定输出电压为1.2V,精度为2%。同时,AMS1117的内部集成了过热保护电路以及限流电路,是电池供电设备和便携式计算机的最佳选择。此部分电路原理图如图2-7所示。

  图2-7 12V转5V电路图

  从图中可以看到,电路构成仅有一个AMS1117-5以及四个电容构成,后面的发光二极管以及电阻作为指示此电路是否正常工作使用。同样的,要把5V电压降到3.3V只需要用到上文提及的AMS1117系列中的AMS1117-3.3即可做到,电路原理和结构和12V转5V的很类似,具体不做多余阐述,电路如图2-8所示。

  图2-8 5V转3.3V电路图

  2.7温湿度模块

  温湿度模块采用市面上十分常见的DHT11数字温湿度传感器,温度测量范围为0-50℃,误差为±2%,湿度检测误差为±5%,满足日常室内环境温湿度检测要求,其工作所需电压为3.3-5V。选择它的理由一方面是因为它同时具有温度和湿度检测的传感器,数据传输口只有一个十分方便,检测速度快,效率高。另一方面是因为其价格比较便宜,成本低。其实物图如图2-9所示。

  图2-9 DHT11温湿度模块

  3智能辉光钟软件设计

  3.1辉光钟主程序设计思路

  设计软件部分最重要的工作就是要明确设计的功能,并按照这些功能将程序分块并进行编写。软件部分需要实现的功能主要为:

  (1)实现驱动并控制HV57708使辉光管显示正确的时间以及温度等信息;

  (2)DS3231模块部分读取、写入信息及信息处理;

  (3)温湿度模块信息读取处理;

  (4)蓝牙模块部分信息传出、传入及信息处理;

  (5)按键信号处理及事件相应。

  在这些功能中,最核心的是功能1的实现。此部分实现将在关键部分算法分析中详细说明。在确定了整体程序所需要的功能之后就可以搭建大体框架进行模块化编程。此设计采用KEIL5环境作为开发环境。

  3.2辉光钟主程序流程图

  软件系统的整体流程如图3-2所示:

  图3-2整体程序流程图

  从图3-2中可以看出,从程序各部分初始化之后即开始获取DS3231时钟模块的时间信息(第一次开机需要通过手机一键调整时间或者按键调整时间),获取后进行显示,显示同时不断监听蓝牙和按键部分的信号,如果有信号输入即做出相应的调整。

  3.3关键部分程序分析

  3.3.1辉光管显示控制算法

  在整个程序当中,最重要的算法就是辉光管显示时间或温度等信息的显示算法。显示时间的具体算法可以用一个具体的例子来说明。比如时钟需要显示的时间为14:30:25(十四时三十分二十五秒),对于这样一个时间,根据设计的硬件电路的接线方式可知,此时HV57708的64位输出脚需要输出的是(根据图2-3(b)引脚顺序从左往右):

  1111丨1011丨1111丨1111丨1101丨1111丨1110丨1111(前32位)

  1101丨1111丨1111丨1111丨1011丨1111丨0111丨1111(后32位)

  而由于芯片工作在反相模式,所以实际上按照正常的逻辑应该是:

  0000丨0100丨0000丨0000丨0010丨0000丨0001丨0000(前32位)

  0010丨0000丨0000丨0000丨1011丨0000丨1000丨0000(后32位)

  为了方便起见,后面文中用高32位和低32位来代替前、后32位。

  为了使输出脚达到预计的效果,四位输入脚需要以串行的方式输入上述正常逻辑中的64位数值,将时间信息转化为此数值的方法为:首先是将时间信息计算得出一个六位数,此部分很简单,即:小时×10000+分钟×100+秒,在此处就应为143025。之后分别取出每一位对应的数字即1、4、3、0、2、5这6个数字。

  在得到最终数据之前,还需要明确另一个位置数组的信息。在此处尝试思考过其他算法,但最终考虑到编程时的程序的简洁度以及可看性,此部分最终采用的是位置数组的方式。根据硬件电路的设计,每个辉光管显示的每个数字都会对应64位输出口的具体位置。具体此数组的计算方式因硬件设计部分设计不同而产生相应变化,此设计的思路是根据高、低32位进行划分。此接线方法所产生每一个辉光管对应的每一位数字对应位置的数组为:

  numbers[][10]={

  {24,25,26,27,20,21,22,23,16,17},

  {18,19,12,13,14,15,8,9,10,11},

  {4,5,6,7,0,1,2,3,60,61},

  {62,63,56,57,58,59,52,53,54,55},

  {48,49,50,51,44,45,46,47,40,41},

  {42,43,36,37,38,39,32,33,34,35}};

  每一行代表一个辉光管0-9十位数字,总共6行代表6个辉光管显示。用上述例子来说明就是:

  0 0 0 0丨0 1 0 0丨……丨0 0 0 1丨0 0 0 0(前32位)

  28 29 30 31丨24 25 26 27丨……丨4 5 6 7丨0 1 2 3(数组对应关系)

  0 0 1 0丨0 0 0 0丨……丨1 0 0 0丨0 0 0 0(后32位)

  60 61 62 63丨56 57 58 59丨……丨36 37 38 39丨32 33 34 35(数组对应关系)

  所以根据此数组,只需要知道时间的具体每位数字即可确定最终输出的数据中高低电平的具体对应位置。例子中的6个数字分别对应的就是数组中25、14、7、62、50、39这几个数字的位置即最终数据中数字1(输出低电平)的位置。

  以上只是理论部分具体实现的想法,实际编程的思路的流程图如下图3-3所示。

  图3-3实现算法流程图

  在整个编程过程中,最关键的是利用位置数组对1这个数字进行移位操作。从图3-3中也可以看出第3位数字比较特殊,因为HV57708共有64位的关系,高32位用了28位,而低32位全部使用,而由于辉光管显示的特性,一半的辉光管会有30位接口,第三位中有两位数字会由低32位控制,因此需要特殊判断。至于串行输入的方式,由于HV57708只有四位输入口,所以具体的操作方式就是高32位循环8次,每次4位数字,低32位循环8次,每次4位数字。搞清楚时间显示的原理之后,温湿度显示也显得十分简单,此处设计的显示小时的部分用于切换显示温度,显示秒数的部分用于切换显示湿度。

  3.3.2防阴极中毒

  由于辉光管自身存在的缺点,即较长时间显示同一个数字会导致辉光管阴极中毒,从而减少其使用寿命,因此需要找到一个方法避免阴极中毒现象的发生。而这一点在硬件方面很难做到,只能从显示程序中入手。考虑到阴极中毒现象发生的原因,只需要每个一定的时间将每个辉光管的每位数字显示一遍就可以做到。

  此部分具体实现方式如图3-4所示。

  图3-4防阴极中毒程序流程图

  从图3-4可知,此部分需要设置一个定时器中断,定时器时间设定为60s,即每隔60s程序进入一次中断,中断程序为使辉光管快速显示“000000”、“111111”、……、“999999”这10个数字。

  3.3.3蓝牙数据处理

  蓝牙的接收和发送数据的程序使用STM32自带的库就可以做到,此部分关键的点在于接收和发送数据前对需要发送或已经接收的数据进行一定的处理。对此,首先需要对数据格式做一个约定,即人为规定一个数据传输协议。在此设计中,需要发送和接收的数据包含以下两种:温湿度信息、时间信息。

  对于时间信息,单片机从DS3231模块中获取数据后,将时间信息处理为一个6位数据(具体格式参照3.3.1中时间数据格式)。为了保证发送数据的完整性和准确性,蓝牙发送数据不会只发送一遍,所以在此数据的前部加上“#”符号,尾部加上“ !”符号,用以判断一条信息是否发送完毕。

  对于温湿度信息,首先获取温度和湿度数据后,进行“温度+‘00’+湿度”处理,得到一个6位数据。温湿度数据处理方式和时间数据类似,不同的是在温湿度数据前用“$”符号做为判断标志,结尾符号一致。

  在单片机收到此类数据之后,根据标志判断一条信息是否发送完毕,之后将数据还原,即去掉头尾添加的符号,然后根据实际需要对数据进行显示操作即可。APP部分蓝牙数据处理方式与此处相同,不进行详细分析。

  3.4APP设计

  3.4.1设计思路

  由于此APP只是用于演示在手机端的功能,因此设计十分简单。考虑到目前只需要蓝牙连接功能、一键同步时间、显示温湿度三大功能,UI部分只需要设置用于显示蓝牙连接信息、时间、温湿度等的文本显示框,以及用于同步时间、获取温湿度的按钮,蓝牙连接打开方式采用侧边隐藏菜单。由于不涉及APP页面跳转等操作,因此所有功能均可以在一个Activity中实现。

  3.4.2APP整体程序流程图

  整体实现的流程图如图3-5所示。

  图3-5 APP整体流程图

  从图3-5中可以看出,此程序设计不涉及太复杂的部分,由于只是作为演示用的APP,其界面设计比较简陋,功能十分基础,程序方面比较重要的点就在于蓝牙连接的处理以及收发数据的处理。蓝牙连接方面首先需要对APP进行蓝牙授权,然后获取手机能搜索到的附近蓝牙设备的信息,同时判断蓝牙是否打开,蓝牙打开后可以选择某个蓝牙设备进行连接建立数据通信。

  4结果分析

  4.1升压电路结果分析

  根据12V升180V升压电路原理图焊接了实物,实物图片如图4-1所示。

  图4-1升压电路焊接实物图

  在图4-1中,供电部采用的是220V转12V的直流电源适配器,接通电源后,电感无明显啸叫现象,在不带负载的情况下用万用表对其多次进行测量,结果如表4-1所示。

  表4-1不带负载情况下输入/输出电压

  序号输入电压输出电压误差

  1 12.0V 181.6V-0.5V

  2 12.0V 181.8V-0.3V

  3 12.0V 181.8V-0.3V

  4 12.0V 181.5V-0.6V

  5 12.0V 181.8V-0.3V

  通过分析表4-1中的数据可知,采用的220V转12V直流电源适配器输出稳定,输出电压的平均值通过计算可得为181.7V,满足设计所需输出180V以上的要求。表中的误差指的是实际测量结果与理论计算结果的差值。但是,只测量不带负载的数据的情况下,无法判断此升压部分的好坏。为了进一步验证此升压部分的功能是否满足要求,在接入一个阻值分别为10K和20K的负载以及在不同的环境温度下对该电路的参数进行测量,测量结果如表4-2、4-3所示。

  表4-2带负载情况下输入/输出电压

  序号负载输入电压输出电压

  1 10K 12.0V 181.5V

  2 10K 12.0V 181.5V

  3 10K 12.0V 181.4V

  4 10K 12.0V 181.5V

  5 10K 12.0V 181.4V

  6 20K 12.0V 181.2V

  7 20K 12.0V 181.2V

  8 20K 12.0V 181.3V

  9 20K 12.0V 181.2V

  10 20K 12.0V 181.2V

  表4-3不同温度下输入/输出电压

  序号环境温度输入电压输出电压

  1 5℃12.0V 181.2V

  2 5℃12.0V 181.2V

  3 5℃12.0V 181.2V

  4 30℃12.0V 181.1V

  5 30℃12.0V 181.2V

  6 30℃12.0V 181.1V

  7 20℃12.0V 181.2V

  8 20℃12.0V 181.2V

  9 20℃12.0V 181.2V

  对表4-2中的数据进行分析可知,在接入分别接入10K以及20K的负载的情况下,输出电压出现了极小范围内的压降,但是测量结果均在180V以上,说明此电路在带负载的情况下满足设计所需的要求。

  表4-3中的数据为接入20K负载的情况下在不同温度下测量得到的数据,考虑到辉光钟放置于室内,因此选取5℃、20℃、30℃这三种温度对其进行测试,测试结果可知,室内环境温度变化几乎对此电路的输出电压不产生影响。综合这些测试数据可知,此升压电路符合设计要求,可以进行使用。

  4.2温湿度模块验证

  将温湿度模块直接与stm32开发板进行连接,对在不同环境下对其进行测试,由于现场不具备其他测试环境湿度的设备,因此只对其测量温度数据的准确性进行分析,现场温度数据由常见的玻璃管温度计测得。具体得到测量数据如表4-4所示。

  表4-4温度模块测量数据

  序号环境实际温度测量温度误差

  1 15.6℃15.7℃0.1℃

  2 14.9℃14.9℃0℃

  3 9.4℃9.4℃0℃

  4 16.6℃16.5℃0.1℃

  5 5.1℃5.4℃0.3℃

  6 21.0℃21.1℃0.1℃

  7 20.4℃20.4℃0℃

  8 16.7℃16.9℃0.2℃

  9 20.6℃20.6℃0℃

  10 6.1℃5.8℃0.3℃

  从表4-2的数据来看,此温湿度模块对温度的测量较为准确,在10次测量中最大的误差为0.3℃,且出现时均在环境温度较低时出现,由于测量数据较少,无法得出具体是否环境温度比较低时测量误差会变大。但是从整体情况来看,多次测量时误差范围大概在±0.3℃左右,完全满足日常家庭环境温度测量所需。

  4.3APP效果

  APP的整体效果如图4-3所示。整体界面十分简略,第一行用于显示蓝牙是否开启的信息,接下去一栏用于显示手机系统时间,图片上时间为拍摄时间,按下下面的按钮即可同步时间信息至辉光钟。再往下的模块用于显示温湿度信息,点击获取按钮即可得到辉光钟上温湿度模块的信息并显示,未连接时显示null。右上角打开的菜单栏用于对蓝牙进行控制。