給大家分享一個用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文章
2974瀏覽量
156299 -
穩壓器
+關注
關注
24文章
4256瀏覽量
94045 -
RGB
+關注
關注
4文章
801瀏覽量
58641 -
LED封裝
+關注
關注
18文章
359瀏覽量
42184 -
ESP8266
+關注
關注
50文章
962瀏覽量
45254
發布評論請先 登錄
相關推薦
評論