兩年多前,我被一些博主種草了一款能根據(jù)屏幕內(nèi)容同步的飛利浦流光溢彩燈帶。然而它 2000 多元的高售價讓我望而卻步,轉(zhuǎn)投淘寶的第三方產(chǎn)品又被折磨得難以忍受。無奈之下我只能自己怒學相關(guān)知識,用 WLED 手搓了一個類似功能的小玩意,于是就有了《 比肩飛利浦 Hue Play 的 HomeKit 流光溢彩顯示器氛圍燈是怎樣煉成的? 》這篇文章里所講述的故事。
但要說聲抱歉的是,當時的我在這篇文章的末尾給大家留了一個后續(xù)的更新迭代計劃,想著大家也能夠一起來「共創(chuàng)」,卻沒想到一下鴿了兩年多的時間。要說心里沒惦記著它是不可能的,但生活中遇到的困難最終讓我將它拋在了身后。直到 2024 年的秋天,我的狀況有所好轉(zhuǎn),腦海里那個聲音又重新浮現(xiàn):
是時候去兌現(xiàn)那個兩年多前的承諾了。
五天?兩年,兩年了,你知道這兩年我怎么過來的嗎?
▍ 舊版本有什么問題?
實際上,最初的 V1 Beta 在功能性和穩(wěn)定性來說沒有太大問題,對于我的日常使用已經(jīng)完全足夠了。然而它終歸是一個不會對外發(fā)售的「玩具」,與量產(chǎn)的產(chǎn)品有著天壤之別:不僅沒有很好的散熱,也沒有安全措施,只是最簡單的 WLED 系統(tǒng)。所以看著評論區(qū)大家「量產(chǎn)」的呼聲,我其實心里很沒底。而且產(chǎn)品化之后,需要考慮的問題數(shù)量就陡增了。
有問題,但能用
芯片
首先是之前采用的 ESP-01S 芯片。它是很小,能夠盡可能縮小模塊的體積,但致命傷是 沒法 OTA 升級固件 。雖然我可以使用 UART 模塊自己刷機,但肯定不能讓用戶這么做:這顯然不是一個「產(chǎn)品」該做的事。
其次,ESP-01S 芯片采用的是直插式封裝,小是小了,但為了極致壓縮體積,只能采用堆疊的設(shè)計。但這就好比 iPhone 那樣的雙層主板夾芯片的設(shè)計,優(yōu)雅是優(yōu)雅了,卻讓 A 系列芯片真正成為了「為發(fā)燒而生」,某種意義上也算是喬老爺子的理念一脈相承。還記得我在 V1.0 的介紹文章里就提到過,這個版本的散熱可能存在問題:
實測發(fā)現(xiàn),AMS1117-3.3 用手摸著還是挺燙的,溫度應(yīng)該能有 50-60 度左右。一方面是架在上方的 ESP-01S 模塊阻擋了散熱,另一方面是模塊體積太小,沒法假裝散熱設(shè)施,只能通過空氣散熱。
雖然當時安慰自己 AMS1117-3.3 的工作最高溫度可達 120 攝氏度,但要做成一個相對成熟的,可以給大家探索和共創(chuàng)的產(chǎn)品,這個問題就必須得要解決掉。
電源
說到發(fā)熱,電源也是不可忽視的一部分。1.0 的方案使用了淘寶商家附帶的 5V 8A 電源,能夠「全功率」點亮 2 米的 WS2812B 燈帶:
那么電源呢?賣家提供的電源規(guī)格是 5V 8A,電源模塊是否可以縮???也不行。查閱 WS2812B 燈帶的數(shù)據(jù)手冊可知,單個 WS2812B 的驅(qū)動電流是 60mA,而要將我的 32 寸屏幕四周圍一圈至少需要兩米的長度,共計 120 顆 WS2812B LED 燈。所以,我需要的電流最低門檻便是 0.06 × 120 = 7.2A,否則便無法提供足夠的電流來點亮燈帶。
但那時候的我并不了解這背后的一些技術(shù)原理,我只知道這個燈帶需要一個 5V 的電源,然后還要讓每個 LED 都能「吃飽」,以最高亮度來點亮它。
實際上,5V 8A 這種「奇怪」的電源市面上產(chǎn)品并不多,而且都需要一個形似磚頭的轉(zhuǎn)換器,不是那么優(yōu)雅。其次,如果我后續(xù)想要做一個環(huán)繞電視的燈帶,需要 5 米的長度,按照這個公式計算,我就需要 0.06×60×5 = 18A 的電源,看著還挺嚇人的。如此高的電流存在過熱乃至火災(zāi)風險,一旦電路板設(shè)計不規(guī)范、散熱不足或其它未曾發(fā)現(xiàn)的問題導(dǎo)致短路、局部過熱,帶來的后果是無法估量的。
除了電流之外,我還忽略了一個更為深層的技術(shù)性問題: 壓降 。假設(shè)有一條 5 米長的燈帶,電源輸入在燈帶的最左側(cè)起點,那么當我們將顏色調(diào)為白色并將亮度拉到最高的時候,我們就會發(fā)現(xiàn)越往后面的燈珠顏色就越黃,如果燈帶足夠長,甚至還可能會發(fā)紅 —— 這就是「壓降」帶來的問題。
詳細來說,燈帶上的 LED 是通過 PCB 上的銅箔來傳導(dǎo)電力的,雖然銅的導(dǎo)電能力好,但也并不是沒有電阻的存在,因此就會產(chǎn)生壓降問題,導(dǎo)致越往后的 LED 能獲取到的電壓就越低。根據(jù)一篇 文章 的介紹和測試數(shù)據(jù),當 LED 燈帶調(diào)節(jié)到更高的亮度時,壓降就會越明顯。我使用的 2 米 120 顆 LED WS2812B 燈帶,最后一顆燈珠相比第一顆燈珠就已經(jīng)有 1.4V 的壓降,只剩下 3.6V,接近 WS2812B LED 燈珠的最低工作電壓 3.3V 了。
而紅綠藍三色 LED 的工作電壓區(qū)間也是不同的。根據(jù) WS2812B LED 數(shù)據(jù)手冊 中的說明,藍色 LED 所需電壓最高,需要 3.2V - 3.4V 的電壓才能工作,其次綠色的 LED 需要 3.0V - 3.2V,紅色 LED 的工作電壓最低,為 1.8V - 2.2V。所以,當燈帶過長導(dǎo)致壓降明顯的時候,另外兩種顏色 LED 獲取的電壓不夠,甚至都無法工作,只剩紅色還能干活的的時候,你就獲得了一條紅白漸變的燈帶。
這篇文章還提到,由于壓降的產(chǎn)生,RGB 燈帶不僅看起來會發(fā)橙甚至發(fā)紅,進而導(dǎo)致消耗的電流也更少。這也就解釋了為什么我會在 WLED 的 Home Assistant 后臺控制界面發(fā)現(xiàn),這條 2 米長的燈帶跑過最高的電流是 6.6A 上下(燈帶拉到 100% 亮度的冷白光),并沒有到 7A 以上,平時開暖光的話所需電流就更低了。