发作品签到
专业版

#第九届立创电赛#桌面温湿度检测仪

工程标签

132
0
0
0

简介

#第九届立创电赛#核心板小物件——桌面温湿度检测仪,采用盛思锐传感器,主控芯片为STM32G030K6T6,数码管显示,两节5号电池供电,LINK烧入程序,低功耗睡眠模式,按键唤醒

简介:#第九届立创电赛#核心板小物件——桌面温湿度检测仪,采用盛思锐传感器,主控芯片为STM32G030K6T6,数码管显示,两节5号电池供电,LINK烧入程序,低功耗睡眠模式,按键唤醒

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2024-07-11 01:40:40更新时间:2024-08-05 02:07:34

描述

* 1、项目介绍

桌面温湿度仪项目使用STM32G030K6T6芯片作为主控芯片,该芯片使用Arm Cortex-M0+内核;最大主频64Mhz;
具有32KB的Flash以及8K的SRAM,供电电压在2.0V~3.6V之间,用来检测温湿度,默认采用两节5号电池进行供电,考虑到功耗问题,默认不开机,进入睡眠模式;
当有按键按下时,触发中断,此时结束睡眠模式,执行按键判断,获取温湿度并启动数码管进行显示;同时启动定时器中断,循环显示两次数据后再次进入睡眠,等待下次唤醒。

直接使用STM32CubeMX软件进行基础代码生成与配置,图形化的方式可以减少学习的时间,快速上手一款芯片,
代码均采用STM32CubeMX进行生成,默认会根据外设生成对应的文件

在桌面温湿度仪上,有两个测试LED,一个接入单片机-PB7引脚用于测试GPIO输出功能;另外一个接入74HC595用于测试移位寄存器输出功能;本次实验通过使LED闪烁来测试单片机GPIO输出功能是否正常以及延时函数是否正常。在LED灯的左侧是3V电源加入4.7K限流电阻,若此时GPIO输出高电平,两端没有电势差LED不点亮,若输出低电平,两端存在电势差,LED点亮,通过间接输出高电平与低电平来实现LED闪烁功能。

中断是指单片机在运行过程中,出现了某种需要紧急处理的事件,此时单片机会暂停当前运行的代码,转而执行更加紧急的事件代码。处理完毕后又返回原来被暂停的程序中继续运行。

STM32G030K6T6是Cortex ARM0+内核,具有NVIC(嵌套中断控制器)以及EXTI(外部中断事件控制器),支持4种优先级设置,且每一个GPIO均可作为外部中断/事件触发信号输入,通过这二者进行组合,使单片机能够对外部中断/事件进行快速响应。

这里对PB7也就是WAKE引脚进行下降沿读取,当发生下降沿时,单片机进入中断处理,执行相关的代码操作,这样就无需在代码中一直轮询按键引脚是否是低电平了。

在桌面温湿度仪上,有一个功能按键,通过这个按键可以用于执行各类操作,比如控制LED灯、读取温湿度或显示电池电量等信息;通过按键按下来控制LED灯点亮或熄灭来测试GPIO的输入功能。在按键的左侧连接是GND,右侧连接的是GPIO-PB5,也就是说,当按键按下时,是低电平。如果想要单片机能够准确的知道按下的状态,则未按下时需要时引脚保持高电平,这样才有变化。

在STM32 HAL库中,有一套独立的中断/事件处理回调逻辑,假设此时按键按下,导致下降沿到来;

  • 首先,系统会进入中断服务函数中(中断服务函数实现进行了弱定义,并在启动文件中进行声明);
  • 在中断服务函数中,调用中断类型处理函数(一个中断服务函数会作用与多种中断类型,比如上升沿中断、下降沿中断等等)并清除该中断;该函数HAL库一般也写好了,我们仅需要找到该函数位置然后观察其中有什么内容即可;
  • 获取具体的中断类型后,执行对应的处理功能函数;HAL库一般会写好一个弱定义的函数,我们需要对这个函数进行重新定义并将内容编写在其中即可。

桌面温湿度仪上使用一个SHT40温湿度传感器模块用于检测温湿度,SHT40采用IIC进行通信,模块上R8、R9是IIC通信的上拉电阻,起到“线与”的作用,支持挂载多个设备。

 

IIC是一种两线式双向同步串行总线协议,双向的意思是指通信双方均可发送与接受数据;同步是指通信双方具有相同的时钟脉冲(SCL线)。

在IIC中把设备分为主设备与从设备,一般来说,谁控制时钟线谁就是主设备;

IIC设备均有一个器件地址,在多个设备通信时,根据器件地址来进行辨别;

IIC是半双工通信,同一时间内仅支持单向通信(只有一根数据线);

单片机的IIC引脚通常设置为开漏输出,通过外部的上拉电阻来输出高电平,这样做的好处是防止多个设备通信时,信号混乱。

在整个IIC通信过程中,主要包含以下几个过程;

  • 主机开始时序;
  • 主机发送地址时序;
  • 主机等待从机应答时序;
  • 主机发送读/写数据时序;
  • 主机等待从机应答时序;
  • 停止时序;

    面温湿度仪使用两节5号电池用于整个系统供电,这里加入一个分压电阻用于检测电池电压,

    使用两个10K对电压值进行分压,然后通过单片机ADC进行电压读取,对于3V电池,其实可以直接输入到单片机的IO口进行读取,但是大多数情况都是使用分压电阻来进行

软硬件部分见设计图,BOM与官方案例些许不同,部分元器件使用手头已有元件封装代替。

 

 

*2、项目属性


 

项目由立创商城主办,盛思锐品牌冠名,训练营复刻,详细课程案例及教程步骤链接见:https://www.yuque.com/wldz/jlceda/dqetva01onq5tgdz

 

 

* 3、开源协议


 

GPL3.0

 

 


 

 

 

 

 

*4、大赛LOGO验证


 

 

 


 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
VID_20240803_102710.mp4
0
2
温湿度检测仪.7z
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航