站内搜索
发作品签到
专业版

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

工程标签

7.9k
0
0
10

简介

2024立创训练营【新手区】:基于STM32G030K6T6跟随立创官方复刻温湿度传感器。适用于吾等小白入门学习使用。使用盛思锐SHT40高精度温湿度传感器。

简介:2024立创训练营【新手区】:基于STM32G030K6T6跟随立创官方复刻温湿度传感器。适用于吾等小白入门学习使用。使用盛思锐SHT40高精度温湿度传感器。
第九届立创电子设计开源大赛

开源协议

GPL 3.0

创建时间:2024-07-06 11:14:50更新时间:2024-08-19 09:43:37

描述

写在最前面:

因七月份准备电赛,故本次温湿度传感器完成度和描述丰富度远不如上次的简易数字示波器,只是普通的学习笔记

2024.8.18

补:虽然这次活动没评到奖,但是准备的电赛拿省二啦~

前言

感谢嘉立创给小白提供本次学习机会!

感谢嘉立创的详尽视频和文档!

感谢嘉立创的各种券!

 

官方给出的描述大纲,是参加“立创电赛”语境下的参赛大纲,考虑到“训练营”语境的“小白”视角,综合考虑后,将大纲的部分内容专门放在“规定动作”中。

 

本开源工程描述目录有:

【一、前言】

【二、项目介绍】

【三、复刻建议】

【四、资料学习笔记(录播课、直播课回放、文档)】

【五、复刻过程记录(原理图、PCB、元件(自己重新整理的BOM)、焊接、代码)】

【六、规定动作(项目属性、开源协议、大赛LOGO验证、项目演示及视频上传)】

 

 

 、项目介绍

【注释:作为小白,本项目硬件软件部分几乎完全复刻立创官方】

 

1、主要器件

STM32G030K6T6贴片芯片、SHT40-AD18盛思锐温湿度传感器,5号电池座,共阴极3位数码管。其余元件参见后文【五、复刻过程记录——第3步:元件购买

2、功能

平常处于较低功耗睡眠模式以省电,按唤醒按键则轮流显示2次唤醒时的温度湿度,然后继续进入睡眠模式

3、供电

  • 日常使用时:两节5V干电池供电(3V
  • 调试与下载程序时用下载器连接其SWD接口处直连供电(3.3V

【3V与3.3V的区别主要影响ADC读取电压时设置的参考值

 

复刻建议

1、详细资料(嘉立创官方)很重要

(1)详细开源文档:(后文说“开源文档”都指的这个)【软件部分讲解

https://www.yuque.com/wldz/jlceda/nhdssggs78punq4a

(2)B站免费录播课硬件部分及软件部分讲解

搜索UP主:立创EDA,搜索关键词“手把手教你做温湿度仪”,24年7月份的一系列视频即得,与开源文档教程相辅相成

 

 2、建议

像我一样的小白将开源文档B站录播课一起看,因为二者十分详细,各有测重

 我对开源文档和B站录播课的部分笔记参见下文【四、资料学习笔记】。

 

四、资料学习笔记

以下B站录播视频笔记记得很零散,有箭头标记的为立创EDA的一些功能操作顺序,记录相对有结构的参见【五、复刻过程记录

 

【原理图设计-上】

(1)立创eda部分操作顺序:

原理图→图纸→图纸尺寸(一般维持默认的A4大小就够用了,否则原理图容易太空旷)

元件属性→更多属性→数据手册(查看引脚作用等)

数据手册→Description→查看电气特性

(2)其他

晶振在芯片上有专属引脚

两个5号电池(两个1.5V串联即3V)

BAT_VOL引脚需要查看是否有ADC功能

属性里的“封装”和“供应商封装不一样

无源晶振没有方向,接反了也没有问题

 

【原理图设计-下】

(1)立创eda部分操作顺序:

元件属性→更多属性→工作电压

元件(右键)→“扇出网络标签”批量更改

(2)其他

两个数码管的六个DIG引脚最好分配到同一个595芯片上,即一个595管理两个数码管的阴极

两个数码管的阳极由一个595管理

板框的大小是由电池盒大小决定的

 

【PCB布局技巧】

设计→设计规则(查看DRC设计规则)

设计→布局传递可以让原理图元件与PCB元件一 一对应

工程设计→网络→飞线(开始布线时可以再此处隐藏GND,最后再打开)

电池座(右键)→编辑封装→应用整个工程

元件(右键)→互换位置

元件相距不要太近,方便焊接

 

【PCB布线技巧】

(1)立创eda部分操作顺序:

设计→设计规则→规则管理→间距→安全间距→1oz(导线到导线改为6mil)

设计→设计规则→规则管理→物理→导线→1oz(可改线宽

设计→设计规则→网络规则(可以选择哪种网络应用哪种规则

属性(右侧)→常用设置→起始布线宽度(跟随规则)

(2)其他

布局先从的开始,连线先从的开始

背面只有电池盒,为了铺铜完整,背面的线要尽可能

晶振底下尽量不要走别的线

走线不要太靠近板子边缘

工具→泪滴

 

【PCB设计收尾工作&下单】

唤醒按键伸出被判报错:放置→约束区域→矩形

尖锐铺铜的干扰:放置→禁止区域

批量改丝印:选中丝印(右键)→查找→查找全部(右侧修改)

引脚要做标识:放置→放置文本

丝印不能放在焊盘上面

晶振区域不要铺铜

 

【硬件直播课】

晶振用内部即可,外部晶振用于RTC,磁珠隔离在低频电路中作用不大可以不加,模块上拉电阻10k也行只是速率不会那么快,模块引脚没注明根据手册自己看

若为了低功耗则电路优化:

  • 磁珠和连着的电感可以去掉,这里没什么大干扰(因为不是高频电路)
  • 595可以去掉一个,因为很多IO口还没用到,可以直接连上
  • 要是不扩展功能的话外部晶振也没用,可以删掉
  • SHT40的上拉电阻换成10k(7k电流还是有点大)
  • 电池测电压和防反接都可以删掉(为低功耗而舍弃部分安全性)
  • 电池换成纽扣电池,让体积进一步减小,不怕贵就换墨水屏体积就更小

数码管的功耗很高(实际mA级),但实际上按按键的时候才亮一下,平常只有静态功耗

嫌按键麻烦可以加一个“接近传感器”(感应到人接近就开始显示)

晶振旁边的两个电容是谐振电容,若不靠近晶振放置则无法起振

晶振不能靠近板边

 

【软件直播课】&项目开源文档的心得笔记

(1)注:文档里的测试代码(如LED的测试代码,按键key的测试代码的main.c部分并没有放在BEGINEND里,这样下次配置后就会覆盖,我的理解是这么写是因为它是测试代码,只要测试成功那么代码就只用应用一次即可)

(2)与标准库不一样,HAL库外部中断函数并不是直接写在EXTI4_15_IRQHandler(void)函数中,而是找到:

EXTI4_15_IRQHandler(void)里的自动生成的

HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_5);里的

HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)这个弱定义函数,

然后把它搬到别的地方进行重定义

(3)数码管GPIO:推挽输出,高速模式(因为要利用视觉暂留)

(4)温湿度数据读取:用的是IIC,最终要的是i2c的句柄变量

 

五、复刻过程记录

【第1步】原理图绘制

本次活动的推送一出来,我就根据公众号文章里的图片画原理图,我几乎完全对照官方原理图绘制。所有元件位号引脚选择以及电路连接方式都和官方一样,仅仅是原理图布局与官方原理图不同。

 

注:

(1)“常用库”和“smt基础库”是两个东西,前者的元件没有供应商编号

(2)电阻电容等在数值确定后仍然需要考虑:

  • 品牌是否是赞助商的(有优惠券
  • 由它的功能来决定它的精度,如ADC检测部分的两个10KΩ电阻精度应为1%
  • 用“smt基础库”代焊更便宜

 

【第2步】PCB绘制

(1)PCB绘制部分,我的布局基本上与嘉立创的推送上图片的一致,部分布局和走线有所不同

(2)刚开始走线时,我尽可能让背面走线条数降到最低,最后看了录播课时发现背面走线数量少不少并不主要,线路短不短才重要,因为要让背面铜皮尽可能完整,于是对走线进行了修改,尽可能让背面走线短一些,并将背面的走线尽可能聚合在一起

(3)最后为了正面铜皮的完整性,在满足线距规则的情况下,我让部分线相距的更紧密,同时挪动了SWD接口和唤醒开关的位置

(4)网络编号VBAT3VVDD之间的区别是什么,有待之后探索

(5)PCB布局的时候为什么不把SHT40放在整个板子的左边 ?这样其数据线就可以更短我的猜测是因为作为温湿度传感器,若靠近左边这些芯片较多的位置,可能会因为散热而干扰

 

以下分别是PCB正反面的连线图正反面的铺铜情况

 

 

 

 

【第3步】元件购买

本次训练营我学习最多的其实是元件的购买(bushi,以下贴出本次我使用的BOM和BOM清单的解释:

清单解释:

(1)开源文档描述最后有自动导出的BOM可以一键导入但都是英文,不够直观,因此整理出如下BOM清单提供给大家,在立创eda专业版顶端菜单点击放置,然后点击器件,输入表格中的供应商编号,就可以唯一对应这个元件。

(2)在嘉立创的元件商城购买元器件的好处有:

  • 批量购买一次买足,省事
  • 供应商编号与元件唯一对应,便于跟原理图和PCB的库符号及封装保持一致,不易错
  • 如经常需要购买元件,大量使用元件则可以了解其“私有库”概念,大有好处

(3)在嘉立创的元件商城购买元器件的不足有:

  • 邮费偏贵(不过嘉立创时不时有邮费券掉落)
  • 每种元器件都有“最小发货数”(如某器件只需要3个,但每次至少买50个)

(4)因本次活动参加“第九届立创电赛”,其赞助商有【盛思锐】【成兴光】【谱罗德微硕】【扬兴晶振】【中国兴坤】,使用赞助商生产的元件有优惠,故BOM里尽量选择相应的元件

(5)又因本次很多都是贴片元件,想要下单嘉立创SMT来帮忙焊,考虑到扩展库高昂的换料费,各种非赞助商的元器件都尽可能先选基础库,因基础库原件免换料费(最后运气好抽PCB券的时候抽到了PCB+SMT的券,最后扩展库的换料费也免了)

(6)表格备注中的“BOM2.0”指群中官方推荐的BOM

(7)SHT40-AD18(盛思锐温湿度传感器)为插件模块,在原理图和PCB图中都没有,购买时不要忘了

(8)2.54mm间距的排针排母平常常用,建议自己单独批量购买即可(我是因为自己有,没有单独再购买)

元件

供应商编号

备注

STM32G030K6T6(MCU)(ST,扩展库)

C529331

跟录播视频中一样

SN74HC595PWR(移位寄存器)(TI,扩展库)

C273642

跟录播视频中一样

WST3401(场效应管,微硕,扩展库)

C105162

跟录播视频中一样

XL-2012UGC(翠绿LED/成兴光,扩展库)

C965815

跟录播视频中一样

XKXGI-SUA-32.768K(晶振,扬兴晶振,扩展库

C5213671

跟录播视频中一样

TS-1010-C-A(唤醒按键,中国星坤

C692458

跟录播视频中一样

BH-AA-A5BJ012(5号电池盒)(美阳)

C5290180

跟录播视频中一样,跟BOM2.0不同

SP420361N(3位数码管)(方舟)

C98927

跟录播视频中一样

X6511WV-04H-C60D30(直插2.54/4P排针已有则不买

C706876

原理图和PCB中使用

X1311FR-04-C43D24(弯1.27/4P排母中国星坤

C2881475

跟录播视频中一样

GZ2012D101TF(电感,基础库

C1015

跟BOM2.0不同,因谱罗德的要订做

0805CG180J500NT(18pF电容,风华,扩展库)

C1797

跟录播视频中一样

SHT40-AD18(盛思锐温湿度传感器)【莫忘】

C22437501

跟录播视频中一样【原理图中无】

0805W8F4701T5E(4.7kΩ电阻,厚生,基础库

C17673

跟录播视频中一样

CL21B105KBFNNNE(1uF电容,三星,基础库

C28323

跟录播视频中一样

0805W8F1002T5E(1%/10kΩ电阻/厚生/基础库

C17414

跟录播视频中一样

CC0805KRX7R9BB104(100nF电容/国巨/基础库

C49678

跟录播视频中一样

RT0805BRD0710KL(0.1%/10kΩ/国巨/扩展库

C110775

跟录播视频中一样

 

【第4步】焊接

(1)我有幸抽到了免费SMT券可以免除价格高昂的换料费,于是本次所有的贴片元件都是让嘉立创焊接

(2)只有插件元件需要我手动焊接,依然是由低到高的原则,具体顺序为:

  • 先焊1.27mm间距4P弯插排母,因为其最低
  • 再焊2.54mm间距4P直插排针,或者两个共阴极3位数码管(后者记得剪短引脚
  • 最后焊两个五号电池盒(我的那个电池盒需要剪掉一些塑料凸起才能正常安装,另外电池盒不要装反!!!

(3)焊接相关可参照嘉立创的教学视频(BV号:BV1sJ4m1Y7Zp

(4)还有一件事,SHT40-AD18(盛思锐温湿度传感器)是面朝下插接到1.27mm间距4P弯插排母上的,不是焊接,方向不要弄反

【第5步】代码

代码部分我直接按照官方的开源文档进行操作,最后将开源文档中的最终示例代码烧录验证成功,该过程中遇到的问题主要集中在其【编程环境的搭建和配置】这部分,即软件CubeMX的准备部分遇到了问题,而烧录官方代码过程却通畅无阻

以下给出CubeMX的准备部分遇到的问题:

 

问题1ST注册账号说发验证码要20分钟,但是我没有收到

【解决方法】多次尝试并更换邮箱,总算收到

注意:其账号要求的密码要求同时拥有数字大写字母小写字母特殊字符

 

问题2进入CubeMX,点击Help点击Refresh Data,但是我显示这个……

第二天尝试又成了下述情况,试着登着梯子更新,也不行

【解决方法】我在CSDN上查询,发现有人没法下载crdb_full.zip于是换成手机热点连接就好了,我平常用的就是手机热点,于是我切换成校园网,果然更新没问题了(总之就是尝试着换一个网络)

 

问题3下一步,安装STM32G0的包,没发现问题,但是新建工程时还是会报错,如下

紧接着,直接打开工程(工程可以正常打开),然后去官网下载STM32G0的pack包(可以正常下载和安装)

但是将工程进行编译的时候有以下错误“No section matches selector - no section to be FIRST/LAST”

【解决方法】又在CSDN上查询发现是因为工程在中文路径,于是切换路径后再试,一切正常

 

 

六、规定动作

1、项目属性

(1)请说明项目是否首次公开;

答:是

(2)项目是否为原创;

答:是跟着嘉立创的温湿度传感器训练营制作的,不是原创

(3)项目是否曾经在其他比赛中获奖,若有获奖则叙述获奖详情;

答:无

(4)项目是否在学校参加过答辩:

答:无

2、开源协议

GPL 3.0

3、大赛LOGO验证

4、项目演示及视频上传

(视频参见本描述底部以及附件)

设计图

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

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
官方最终代码(并未整合ADC读取电平功能).zip
6
2
示意图.zip
2
3
演示视频.zip
25
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

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

底部导航