我的订单 购物车(0)
联系客服
  • 4000800709

    点击QQ咨询

  • 0755-83865666

    0755-83865666

    拨打电话咨询

帮助中心

温馨提示

您上传的BOM清单格式不准确,当前支持上传xls、xlsx、csv、JPG、PNG、JPEG格式,请检查后重新上传

BOM正在分析中...
首页 > 应用与分享 >立创电赛展:《智能时钟》,参赛赢2万现金!
  • 立创电赛展:《智能时钟》,参赛赢2万现金!

  • 2024-07-23 15:22:38 阅读量:2154

“盛思锐传感器”第九届立创电子设计开源大赛火热报名中,现在点击报名立创电赛赢2万现金大奖,报名后全阶段可触发福利!

 

 

  大赛网址:DIY.SZLCSC.COM

 

为了给大家些创作灵感,今天带来第八届立创电赛优胜奖项目《智能闹钟》案例分享!本文作者:瑞萨MCU杯第八届立创电子设计开源大赛选手@lsjl66禁止商用,未经许可禁止转载

 

1、项目功能介绍

 

1.时钟显示-----通过按键设置保存后可显示时钟

2.温湿度显示-----电路中设计了DHT11传感器,可实时显示所测环境温度,湿度,每5秒刷新一次数据

3.闹钟设定-----可设定一个任意时间的闹钟,闹钟状态支持开启和关闭

4.联网校时------为了解决走时不准确,以及不想手动调时的问题,在原基础上增加了联网校时(使用esp01s模块),每两分钟更新一次,时间的误差调整在1S之内

5.掉电保存数据-----在掉电之前,每分钟保存一次数据到flash;闹钟在每次设定完成之后都会保存到flash,避免突然断电导致每次上电都需要重新设置闹钟

6.内置电池,可独立工作-----内置500mah电池,可供时钟在外部电源断开后工作一段时间

7.充放电保护电路-----设计了TP4056进行小电流给电池充电,及DW01A和FS8205组成的电池保护电路,保证电池在充放电及工作的过程中不会出现问题

8.电源切换-----由于此时钟一般是由外部电源供电,为了避免外部电源供电和电池供电冲突,因此设计了电源切换电路,保证两者同时存在时,由外部电源供电,没有外部电源时,由电池进行供电

 

 

2、项目属性

 

本项目来源于EDA暑期训练营2023,电路和软件设计参考官方方案,同时融入了自己的想法和设计,项目首次公开

 

 

3、开源协议

 

项目使用GPL3.0协议

 

 

4、硬件部分

    

时钟主控芯片电路,控制时间显示,以及其他功能的进行。

 

 

电源切换电路,电路虽然简单,却能起到重要的作用;当VBUS(外部电源)没有供电时,Q2的栅极被下拉电阻拉低,Q2Mos管导通,切换为电池供电;当VBUS(外部电源)供电时,Q2的栅极电平被VBUS拉高,Q2Mos管关闭,切换为VBUS(外部电源)供电。

 

 

DHT11温湿度传感器电路图,5V供电,这个上拉电阻用于协助数据传输。因为DHT11的数据口是漏极开路,如果不接上拉电阻,则只能输出低电平和高阻态,不能输出高电平,因此需要外接上拉电阻,否则无法输出1。DHT11的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ。一般3.3k~10k都可以。

 

 

ESP01S电路图,ESP01S和瑞萨单片机的通信方式使用串口通信的方式。这里本来设计的是和串口2通信的,但由于软件上没有调试出来,因此改为和串口9进行通信(串口9)是正常工作的,但是需要注意的是串口9是用来串口烧程序的,如果先焊接了esp01s,就会影响程序烧录,因此需要先用串口烧录好瑞萨芯片的程序,以及esp01s的程序,再焊接esp01s。

 

 

 

蜂鸣器电路电路图,用IO口控制mos管的开管,来控制蜂鸣器发声;这里使用无源蜂鸣器,因此使用IO输出PWM控制蜂鸣器发出声音。

 

 

3.3V降压电路,用于给esp01s供电,这款LDO具有低压降的特点,输入最低3.6V就可以输出3.3V的电压,刚好适合3.7V锂电池供电的降压电路。

 

 

功能按键电路,用于修改时钟的设定,以及查看设定等。通过将按键的一端接地,一端接瑞萨芯片的IO口,连接按键的IO口通过软件设置电平上拉;当按键按下时,对应的IO口电平被拉低,芯片可以读到对应IO口的电平并作出相应的工作。

 

 

复位,BOOT按键电路,用于串口程序烧录。

 

 

数码管电路图,直接连接主控芯片IO口,需要注意连接IO的各个数码管引脚字母顺序,以及网络名称,不然写出的程序可能达不到想要的效果。

 

 

电池充电电路图,TP4056作为经典的充电芯片,还是挺好用的,而且价格便宜。可以通过电阻设置充电电流,充电和满电都有指示灯提示。PROG设置充电电流大小,这里设置的10K,根据手册里公式计算,这里的充电电流大概是120ma。

 

 

充放电保护电路,DW01A和FS8205搭配,组成电池保护电路,当电压超过4.2V或者低于2.52V时,关闭FS8205mos管,避免电池过冲或者过放。

 

 

串口下载接口,用于下载程序。

 

 

 

 

5、软件部分

 

写的头文件,及源程序主要程序在src中

 

 

主程序,对各个功能或引脚进行初始化,以及主函数的编写

 

 

串口回调函数,用于串口发送和接收数据

 

 

串口对接收到的数据进行处理,由于接收到的数据是ASCLL码,因此不能直接使用,需要进行转化。由于对时间的数据只需要0到9即可,因此只对ASCLL数据中为48到57的数字进行处理,得到需要的数字,其他的字符当做无用字符,等于0,避免干扰串口调节时间。再将数组中数据一一转化为需要的时间数据,便于后面校时。

 

 

串口校正时间,当串口接收数据完成后,判断是否是正确的时间,如果是,则进行校正。

 

 

 将数据写入flash,避免数据丢失

 

 

在时间设定好后,时钟会一直运行此程序,获取RTC的时间,然后再显示。

 

 

闹钟程序,当到达设定的闹钟时间后,闹钟开启时,开始执行此程序,闹钟响起。在for循环里面有一个按键检测语句,如果闹钟响起,则进入for循环,此时按下按键3,就可以关闭闹钟。

 

 

蜂鸣器程序的编写,由于蜂鸣器是无源蜂鸣器,因此采用PWM驱动,先对PWM进行开启,再配置占空比,就可以进行驱动了,占空比大小决定声音大小,频率决定蜂鸣器音调。

 

 

定时器回调函数,用于数码管的显示,主要是时间显示,以及修改其他设定时的显示等,定时刷新数码管。

 

 

变量声明,方便后面使用,以及外部声明的使用,便于其他源文件里引用。

 

 

 数码管显示库函数,对需要用到的数字和字母写好对应的函数,后面可直接引用对应的函数显示对应的数字或字母。

 

 

 flash读取程序,在初始化中引用这个程序,就会在每次上电后,都会对flash里的数据进行读取。

 

 

 flash写入程序,在对应的地址写入对应的数据。

 

 

 对DHT11传感器进行初始化,每次接收数据前,向传感器发送高低电平信号,等待接收来自传感器的数据。

 

 

 DHT11传感器数据读取函数,对从DHT11收到的数据进行处理。

 

 

 

注:以上是对瑞萨芯片程序的分析,下面是对esp01s模块程序的分析

 

由于esp01s只用于获取时间,因此程序很简单。使用Arduino进行编写,下图是对一些库文件的引用,以及变量声明

注:const char *ssid     = "   ";引号里填的是需要连接wifi的名称,const char *password = "     ";引号里填的是wifi密码。

 

 

 

对串口初始化,以及需要执行的函数进行初始化(执行一次),先开启STA模式,连接需要连接的wifi,等待20S,如果20S未连接上设定的wifi,则开启AP模式,开启热点(智能时钟)供用户配置wifi,配置完成后连接用户配置的wifi

 

 

 

主函数,每两分钟向串口发送一次时间数据;小时,分钟,秒,输出的数据都是两位,便于瑞萨芯片收到数据后进行处理。

 

 

 

6、BOM清单

 

 |  DIY  |  时钟  |  立创电赛
热门物料
型号
价格
AD7616BSTZ/模数转换芯片ADC 76.82
STM32F103RET6/单片机(MCU/MPU/SOC) 9.18
STM32F103VCT6/单片机(MCU/MPU/SOC) 6.96
STM32F103CBT6/单片机(MCU/MPU/SOC) 5.62
TPS61040DBVR/DC-DC电源芯片 1.1
LM358DR/运算放大器 0.2356
STM32G070RBT6/单片机(MCU/MPU/SOC) 4.3
STM32G030C8T6/单片机(MCU/MPU/SOC) 2.7
STM8S003F3P6TR/单片机(MCU/MPU/SOC) 1
INA226AIDGSR/电流感应放大器 2.52
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 深圳市立创电子商务有限公司 版权所有

提示

您确定要删除此收货地址的吗?

请填写订单取消原因

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
投诉意见

紧急问题投诉电话:

18826549599

更快的受理通道

对常规通道处理结果不满意

请在此扫码

此意见箱直通立创管理层

优惠券 建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服