给大家分享一个用ESP8266做一个高颜值的RGB时钟的项目!
这个时钟还具有自动亮度控制功能并配备了温度传感器!
材料准备
第1步: 准备工作
Neo Pixel是可寻址的LED,我们可以通过编程,让它显示任何一种颜色或者数字。
Neo Pixel有不同的smd封装,这个项目使用的是Ws2812b-5050 mini RGB。
这种迷你LED的额定电压为3.0V到5.5V,电流为16mA(每个LED)。
NodeMCU有3.3V的稳压器,可以正常驱动所有的LED。
第2步:使用Neo Pixel Led制作7段显示器
在这里,我们需要把所有的电源并联起来,把所有的数据连接串联起来,使用7段显示方法,如上图连接所有的LED。
每段有2个LED,整个面板总共有14个LED。
我们需要4个面板来显示时间(2个显示小时,2个显示分钟)。
当然还可以再连接两个面板来显示秒/任何其他数值,或者温度。
不管怎么连接,记住总是要把第一个面板的DOUT
连接到第二个面板的DIN
。
第3步:连接仪表盘
为了连接小时和分钟面板,在两面板之间有一个小的PCB板,名为Dash
,包含了2个LED作为二进制数字,这2个LED灯每隔一秒就会发光一次。
第4步:NodeMCU/ESP8266介绍
ESP8266集成了一个32位Tensilica处理器,标准的数字外围接口。
我们的ESP8266具有板载Wi-Fi支持,通过它我们可以连上互联网调整时间,而不需要任何RTC(实时时钟)模块。
这样子的话可以减少连接,使整个项目变得更简单一些。
第5步:代码中支持的功能
如果使用本文提供的代码,那么我们可以在这个7段时钟中增加2个额外的功能:
- 使用触觉开关的温度和湿度显示
在13号针脚上添加一个DHT11传感器,在12号针脚上添加一个触觉按钮,可以在屏幕上获得摄氏或华氏的温度值。
用一个10k电阻将按钮的第12针脚连接到5V,另一端连接到GND。也就是说,当按钮针脚被拉到GND时,显示器将显示温度读数。如果没有这个温度传感器,代码也可以工作,所以如果你想让项目简单一点,也可以不需要这些连接。
- 使用引脚A0的LDR传感器进行亮度控制
通过在A0引脚上做一个电阻分压器网络,添加一个带有10k电阻的LDR传感器,可以相应地改变亮度。
白天的亮度高,晚上的亮度低。如果你不想要可调节亮度,这部分代码也可以在没有这些传感器的情况下工作,它将会锁定在默认设置。
第3步:连接仪表盘
为了连接小时和分钟面板,在两面板之间有一个小的PCB板,名为Dash
,包含了2个LED作为二进制数字,这2个LED灯每隔一秒就会发光一次。
第4步:NodeMCU/ESP8266介绍
ESP8266集成了一个32位Tensilica处理器,标准的数字外围接口。
我们的ESP8266具有板载Wi-Fi支持,通过它我们可以连上互联网调整时间,而不需要任何RTC(实时时钟)模块。
这样子的话可以减少连接,使整个项目变得更简单一些。
第5步:代码中支持的功能
如果使用本文提供的代码,那么我们可以在这个7段时钟中增加2个额外的功能:
- 使用触觉开关的温度和湿度显示
在13号针脚上添加一个DHT11传感器,在12号针脚上添加一个触觉按钮,可以在屏幕上获得摄氏或华氏的温度值。
用一个10k电阻将按钮的第12针脚连接到5V,另一端连接到GND。也就是说,当按钮针脚被拉到GND时,显示器将显示温度读数。如果没有这个温度传感器,代码也可以工作,所以如果你想让项目简单一点,也可以不需要这些连接。
- 使用引脚A0的LDR传感器进行亮度控制
通过在A0引脚上做一个电阻分压器网络,添加一个带有10k电阻的LDR传感器,可以相应地改变亮度。
白天的亮度高,晚上的亮度低。如果你不想要可调节亮度,这部分代码也可以在没有这些传感器的情况下工作,它将会锁定在默认设置。
第10步:完整电路图
第11步:PCB设计(面板部分)
主要的PCB设计,用于显示数字和其他字母。
第12步:PCB设计(Dash部分)
第13步:故障排除
DIN
总是与DOUT
串联在一起,如果接反了或从任何地方断开了,整个装置就会停止工作;- 按上面的图连接Dash;
- 确保所有的连接都焊接好,干焊会导致数据值和颜色的改变;
- 在焊接时,不要把印刷电路板加热太多,温度保持在300度。
第14步:完整展示
希望大家喜欢这个项目!
-
温度传感器
+关注
关注
48文章
2918浏览量
155899 -
稳压器
+关注
关注
24文章
4218浏览量
93641 -
RGB
+关注
关注
4文章
798浏览量
58394 -
LED封装
+关注
关注
18文章
356浏览量
42106 -
ESP8266
+关注
关注
50文章
962浏览量
44851
发布评论请先 登录
相关推荐
评论