当前位置:首页 期刊杂志

基于单片机的智能百宝箱设计与实现*

时间:2024-07-28

张 婷

(山西大学商务学院,山西 太原 030031)

0 引言

我想有个家,我想有个温暖的家。家是每个人的舒适地带,忙碌了一天回到家可以全身心放松自己。随着社会的发展,近些年,智能家居在家装领域被人们的接受度越来越高。智能家居可以让人们有更加方便舒适的居家体验。智能家居涉及家用的方方面面,比如灯具、空调、窗帘、电视、厨房电器和清洁电器等。除了常用电器外,智能音箱、智能玩具等也在慢慢被人们所接受。智能百宝箱可以为梦想拥有自己首饰盒、化妆盒或者私藏物品盒的人们提供美好的体验。盒子的闭合与否可以由手机来进行控制,然后美美的欣赏自己收藏的物品、首饰。如果在环境光比较暗时还可以手机控制百宝箱内LED灯光打开,还可以边欣赏、试戴,边听优美的音乐。智能首饰盒是基于单片机开发的小规模智能家用物品。智能首饰盒包含的蓝牙模块,不仅包含了单片机串口通信的知识点,还可以掌握对外部设备LED、蜂鸣器的控制,而且播放音乐可以通过程序编写实现私人定制。项目将有用和有趣集于一身,不仅提高了学生的学习兴趣,还有助于培养学生创新思维。

1 智能百宝箱基本模块分析

智能百宝箱由单片机控制主电路、LED模块、蜂鸣器、继电器模块和蓝牙模块组成。系统的结构框图如图1所示。

图1中单片机模块是整个控制系统的核心,通过单片机串口连接蓝牙模快,可以发送给手机蓝牙信号或者接收手机蓝牙发来的数据,还可以通过接收判断蓝牙数据从而控制LED灯亮灭、闪烁;控制蜂鸣器发声;控制继电器从而模拟锁开关。外围电路中蓝牙模块采用的HC08可以实现80m范围内通信,LED模块中有光敏电阻可以在开锁后,由单片机控制LED灯亮灭。蜂鸣器采用了无源蜂鸣器,可以编写程序自行实现音乐播放。

图1 智能百宝箱结构框图

2 智能百宝箱硬件设计

2.1 单片机最小系统

智能百宝箱项目采用STC89系列为核心控制器件。单片机想要工作,需要有时钟电路、供电电路及复位电路配合[1-2]。AT89C52为常用的时钟电路采用内部时钟电路,配合外部12M晶振和电容与XTAL1和XTAL2连接组成,为单片机提供基本的机器周期脉冲。单片机复位电路为手动复位电路,当单片机发生异常工作时可通过复位按钮让单片机复位[2],当然单片机复位电路也可以用上电自动复位,上电后自动复位。

单片机STC89系列共有40个引脚,4个8位I/O口,串口接口在P3.0和P3.1,连接蓝牙模块P1口接LED灯,蜂鸣器接P2.7口,继电器接P2.6口。

2.2 蓝牙模块

蓝牙是一种短距离无线技术标准,可实现设备之间的短距离无线通信,最新版的5.0协议通信距离100m。蓝牙通信可以让有线的通信变为无线,代替全双工通信时的连线。智能百宝箱项目采用了HC08蓝牙模块,采用蓝牙4.0协议,通信频段2.4KG,通信参考距离为80m[3]。

蓝牙模块与单片机的连接方式如图2,蓝牙模块的发送接单片机的P3.0串口接收,蓝牙模块的接收接单片机的P3.1串口发送。即可进行串行通信,实现数据的收发。

图2 单片机与蓝牙模块连接

在智能百宝箱项目中,将蓝牙设为发送,单片机写入接收程序即可实现,手机蓝牙控制LED灯亮灭,控制蜂鸣器发声功能。

手机端采用串口调试软件,可实现数据的发送,以及接收数据观察。

2.3 蜂鸣器模块

常见的蜂鸣器分为有源蜂鸣器和无源蜂鸣器。源是指内容是否有振荡源。有源蜂鸣器加电压即可发声,无源蜂鸣器则需要一定频率的方波信号驱动。智能百宝箱利用单片机的P2.7口输出方波信号驱动蜂鸣器发声。蜂鸣器实际使用中需要加PNP三级管进行驱动,驱动电路如图3所示。

图3 蜂鸣器驱动电路

2.4 继电器模块

继电器是用较小的输入电流控制较大的输出电流的一种开关器件,当输入量达到规定值时,开关闭合或者导通从而控制外围电路开闭[4]。

图4 继电器驱动电路

如图单片机控制的为一个双路继电器,继电器有常闭端和常开端,当单片机控制三极管B极高电平时三极管截止,从而线圈流过一定的电流后,产生的磁效应将常开端接通,从而发光二极管点亮;反之当单片机控制三极管B极低电平三极管导通,从而继电器断开。智能百宝箱的锁可以用继电器来进行模拟开合。当继电器闭合时LED点亮,代表开锁。

2.5 LED模块

LED模块采用普通彩色发光二极管,与单片机采用低电平驱动方式进行连接,采用此种连接方式驱动电流大。即单片机P1口控制位低电平则发光二极管点亮。通过程序还可实现不同的LED点亮状态,从而形成炫彩LED效果。

项目具有可扩展性,甚至可以加入点阵模块,在播放歌曲同时可以显示相关字符。比如在之前的课程环节,加入了“我爱我的祖国”点阵显示项目。

3 智能百宝箱软件设计

3.1 主程序流程

智能百宝箱项目的核心问题就是采用了蓝牙连接单片机的串口,并通过手机连接蓝牙模块。手机和蓝牙模块的连接采用一般的蓝牙助手软件即可实现连接。主要问题是单片机的串口程序。

单片机的串口项目较常见的如双机通信、多机通信可以观察数据在多机之间传输并通过LED灯的亮灭进行验证数据正确与否,项目具有一般性,没有蓝牙项目具有有趣适用性,更能激发学生的学习兴趣。

智能百宝箱中单片机和蓝牙的通信可以采用串口的方式1或者方式2,3均可实现。本文采用了串口的方式3。总体流程如图5所示,首先确保手机和蓝牙模块连接成功,连接成功后蓝牙模块进入慢闪状态,接着单片机进行串口初始化,然后一直等待手机发来的数据,如果有数据进行比对,并根据比对结果跳转到相应功能。比如比对数据发现是开灯指令,就让单片机控制LED灯点亮。

串口初始化过程,首先设置串口工作方式寄存器SCON,SM0和SM1为11,即选择了串口工作方式3,REN=1允许接收,其余各位设为0。所以初始化SCON=0XD0。波特率不倍增,PCON寄存器为0。接着设置波特率,蓝牙模块通信波特率为9600,所以设置定时计数器波特率也为9600。采用定时计数器T1方式2,设置TCON=0X20,TH1=0XFD,TL1=0XFD。最后启动定时计数器,单片机串口初始化完成[5]。串口接收程序当通过while(RI==0)判断接收完成后进行RI清零。

图5 主程序流程图

3.2 蜂鸣器播放音乐原理

智能百宝箱采用无源蜂鸣器,当单片机产生不同频率方波信号时,就能发出不同音调。不同音调的频率可以在网上查找。比如低音5所对应的频率为392Hz,那么周期就是频率分之一,可计算出周期T,让单片机引脚持续T/2的高电平再持续T/2的低电平即可控制蜂鸣器发出低音5。项目重点在于串口,所以定时采用了普通的延时,比如1个12us的延时程序,装入不同次数即可得到低音5的音调,根据以上原理就可以得到不同音调的延迟时间。

想要播放音乐除了音调还需要控制每个音调播放的音长,根据谱子可以设定不同音长的值,假设一拍为12个时间单片,那么1/2拍为6,1/4拍为4,从而写成一段音乐的音长数组。

有了音符和音长数组就成功了一半。通过判断数组是否完毕从而判断歌曲是否播放完毕,如果没有播放完毕就在音长的时间内以音符的频率让蜂鸣器不断取反,直到歌曲播放完毕。从而实现利用无源蜂鸣器播放自己喜欢的歌曲。将课程思政融入单片机课程项目的点点滴滴,百宝箱项目中,带领同学们实现了《我和我的祖国》歌曲的片段演奏,并顺便观看了建国70周年短视频,让学生们时刻心怀爱国情愫。

核心代码如下:

while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)

{

for(j=0;j

{

BEEP=~BEEP;

delay12u(SONG_TONE[i]);

}

i++;

}

4 仿真

百宝箱项目课下设计时,学生可通过Proteus软件实现对LED,继电器和蜂鸣器控制的仿真。Proteus软件是较为强大的单片机仿真软件,平时学生自己设计没有硬件时可通过仿真软件先验证设计的思路,课上再利用实物进行验证,大大提高了设计效率。

蓝牙通信模块,可通过电脑串口助手观察数据。

5 结论

智能百宝箱通过单片机实物验证,可以正常使用。智能百宝箱不仅具有实用的存储功能还满足了少女梦、宝箱梦,也可以作为孩子重要物品的收纳箱。

单片机课程采用百宝箱项目可以让学生形象的掌握串口通信的内容,项目本身具有趣味性,更能增强学生的兴趣,相较最初课程使用双机通信单片机甲按键控制单片机乙按键的历程,有更好的教学效果。

百宝箱项目实现中,项目的每个细节都可以有不同,有创新。例如,蓝牙串口可通过不同串口通信方式实现;LED灯的点亮状态,流水灯,闪烁,闪烁快慢可以进行个性化设计;蜂鸣器播放的音乐可以实现个性化设计;继电器和蓝牙模块结合,有的同学还实现了蓝牙密码锁项目。项目有低配,有高配,可以让不同层次,不同想法都融入其中,每个学生最终做出来的项目都不尽相同。实现了因材施教,也拓展了学生的创新性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!