
【涂鸦智能】桌面智能小摆件
简介
这是一个由STM32+WB3S+WS2812桌面摆件,基本功能:显示时间、日期、闹钟、温度、湿度...
简介:这是一个由STM32+WB3S+WS2812桌面摆件,基本功能:显示时间、日期、闹钟、温度、湿度...开源协议
:GPL 3.0
描述
写在前面:
非常荣幸能够参加涂鸦智能和立创EDA的第二次训练营,但是非常可惜的是由于个人原因 没多少时间来完成此次项目(更可惜的是RTT的因为时间不够也没搞),所以这次作品提交的很晚...已经有300多号大佬提交工程了我才来。这次的作品是一个桌面摆件,灵感来自著名的开源项目Awtrix ,我也在尽量的节省经费,所以决定搞一个8*24的点阵就够了,电路已经基本绘制完成。
本次项目我主要分为两个部分来完成:
- 基本功能:当然是可以显示时间、日期、闹钟、本地温湿度和自动亮度调节,另外我还增加了一颗记忆电池,即使时钟在断电后离线,也能正确的显示时间。
- 扩展功能:显示当地天气、增加陀螺仪可重力感应、增加FFT频谱模式,信号源为麦克风或音频输入、一个触摸按键,可以覆盖整圈用来关闹钟等操作、然后再加一些好看的显示一些动画(看项目完成度,即使在训练营结束后我也会完善成自己心仪的样子)。
1、WS2812 8*24点阵显示原理
其实很简单就是把原本串成一条的灯串给它摆成点阵的样子,如图一;然后就可以通过指令让相应的LED点亮即可显示出任何数字、字母和图案(因为点阵行少,所以只能显示简单的图形或文字),如图二:
![]() |
![]() |
2、原理图分析
灯珠的话我选择的是WS2812E,总体的的电路部分还是很简单的,我就根据原理图布局分为4部分来进行说明:
2.1 电源部分、温湿度传感器、光线采集部分、蜂鸣器部分
电源的话,因为WS2812是5V电压,所以我采用5V供电,再用一个普通的LDO AMS1117给单片机和涂鸦模组使用。 | 温湿度传感器采用的是SHT30数字温湿度传感器,IIC通信,加了上拉电阻。 | 光线采集我用了一个光敏电阻,分压后单片机ADC采集。 | 蜂鸣器选择了一个贴片的85dB,用S8050一个NPN三极管进行驱动。 | 这颗LED主要用于写程序的时候调试用 |
![]() |
2.2 涂鸦模组、STM32、用户按键
涂鸦模组我选用的是WB3S,因为这个和ES12系列的封装相同,所以我也进行了适配,在这个32暴涨的时代,还可以用ESP进行点阵驱动 | MCU这里我还是选择了STM32F103C8T6(买不起系列),虽然买不起,但是决定从以前的某些板子上拆下来用...环保 | 这就是简单的按键了,设置了2个按键,功能可以程序添加 |
![]() |
2.3单片机外围电路
第一部分呢就是纽扣电池部分了,用来给单片机提供RTC电源。 | 后边也就没啥好讲的了,都是普通流程,boot可以通过电阻选择程序运行方式。 | |
![]() |
2.4扩展部分电路
陀螺仪用的是MPU6050,IIC通信 | 音频放大用了一个0-50可调增益的反向放大器来放大信号,信号源可通过SW1来切换是麦克风还是音频输入。 | 这个触摸按键是用了一个AM01B单通道触摸芯片 |
![]() |
可以发现在原理图中,有两个芯片(SHT30和MPU6050)都是通过IIC来通信的,所以我们要在数据手册中找到各个芯片的地址,如下:
SHT30数据手册第9页,列出了表格,当ADDR脚低电平时,地址为0x44(默认);高电平时,地址为0x45,我这里是接地的,所以写程序的时候从机地址是0x44. | MPU6050数据手册第15页,AD0引脚低电平时,地址为0x68,高电平时,地址为0x69,我这原理图里时接地,所以写程序的时候地址是0x68 |
![]() |
![]() |
3、PCB设计
![]() |
![]() |
PCB底层 | PCB顶层 |
![]() |
![]() |
3D正面 | 3D背面 |
4、实物搭建
下面是年前焊接好的板子,WS2812是用的183°锡浆和加热台贴的。
焊盘加锡浆 | 上加热台 | 成品 |
![]() |
![]() |
![]() |
5、涂鸦智能
涂鸦模块选用的是WB3S,直接获取网络时间,参考协议如下:
MCU发送 | MCU接收 | |
![]() |
![]() |
![]() |
过程中遇到的问题:
- 在这次项目过程中发现最大的一个问题就是自己会的东西实在太少,只会用STM32,别的单片机都没玩过,所以没办法这次项目还是选了32,虽然都说差不多,但实际上手肯定也是需要一定的时间,今后我会去尝试更多的单片机。
- 在涂鸦模块的天线部分并没有进行镂空,甚至还走了线,但是还好隔了2层,影响肯定是有的,不过应该问题不大...家里换个信号强的路由器就好hhh,待测试(暂时没发现问题)...
- 因为没时间看手册...还是不太清楚WS2812和WS2812B和WS2812C和WS2812E和WS2812F...有啥区别,不过应该区别不大。
- 计算的电牛可能有点大,没想好用什么端子接口,先开两个窗凑合用叭。
附件说明:
程序是基于STM32CubuMX HAL库编写
焊接好的板子展示是在年前,涂鸦模组还没到的时候录制的视频,所以还没焊接涂鸦模组。
视频所展示效果为:时间+温度+湿度显示 还有触摸按钮控制显示模式为蹦迪模式
功能还不是很多,由于本人自身问题,项目耽搁时间过久,在之后的日子里,会将它功能调试完成。
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | PJ-320B | AUDIO1 | AUDIO-SMD_PJ-320B | 1 |
2 | LMV321IDBVR | U7 | SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BR | 1 |
3 | CR1220-2ZX | BT1 | BAT-SMD_CR1220-2ZX | 1 |
4 | K1 | KEY1 | KEY-SMD_2P-L6.2-W3.6-LS8.0 | 1 |
5 | K2 | KEY2 | KEY-SMD_2P-L6.2-W3.6-LS8.0 | 1 |

评论