
大家好!!最近這個星星好紅喔,(以下省略中華隊感想2000字),總之事情的起源就是朋友在Facebook換上了一個很可愛的大頭貼,照片中他背了兩個可愛的無敵星星。原來是在日本環球影城玩的時候買的爆米花桶,在環球影城買爆米花桶我也是有經驗的,8年前去的時候也曾買過小小兵的爆米花桶,當時日幣售價2400大概折合台幣800。然後就在朋友貼出頭貼的下個月,我也去環球買了一個無敵星星爆米花桶,當時購買的時候就有一些想法,這種玩具如果不加以改裝,那就只會淪落成一個佔位的垃圾,然後要丟掉又會覺得當初花很多錢買的捨不得,所以在買前就有想到回來後就要魔改一下,最基本的就是來把無敵星星改造成小夜燈啦!!
無敵星星原本是一個爆米花桶,所以只有前面部分會發光,後面則是一個裝爆米花的空間(目前售價是5000日幣),所以我們要改裝的部分就是前面,前面部分跟後部是可以分離,原先設計是使用三顆AAAA電池串聯,這樣算起來電壓應該是3.6V~4.5V間,一看就知道可以用一般鋰電池取代(3.7V~4.2V)。所以最初的想法就是直接用一顆18650電池來取代原有的電池

我們直接把無敵星星拆開看一下,構造簡單易懂,五片LED燈版搭配上中間一塊亮燈開關,這個無敵星星有兩種亮燈模式,一種是恆亮,另外一種是閃爍。

我們只要把原本藍色框框部分改接到18650電池盒就完成了最基本的電池改裝啦,我是另外加了一塊TYPE-C電源控制板由TYPE-C 5V進來,Output出來4.2V,在不接電池下可以給LED燈板供電,如果有電池則可對電池充電。

基本上我最初想像的功能就完成了,但是接下來我就發現一個很大的問題,就是如果要當房間裡面的小夜燈,原有的亮度太亮了,完全沒辦法當小夜燈使用,所以必須要減少亮度。

減少亮度有兩種方式,一種是減少LED燈珠數量,另外一種是用可變電阻降低電流,這樣也就降低LED的亮度。這邊我選加上可變電阻的方式去改變亮度

亮度調暗的狀態

大致上做到這邊已經算是完全可以用的狀況了,但是TYPE-C、可變電阻、電池都沒辦法藏的很好,所以我就想直接把這些裝置藏到後面原本爆米花桶的空間裡面應該是最佳的解法,既然要藏到後面,那麼就要把開關也拉到後面控制才行,因為供電也拉到後面,所以等於前後部分會變成無法輕易拆開的情況。既然有心要做,我們就要來好好的重新計劃一下,要有哪些功能,要準備哪些材料
整合一下計劃要有的功能如下:
- 使用18650鋰電池取代原本鹼性電池
- 要能對18650電池方便充電
- 不用電池也能插電使用(TypeC)
- 開關拉出來好按
- 可以調整亮度
- 可以用手機控制(接入HomeAssistant. or Apple HomeKit)
- 接入HomeKit後可以附加其他功能(捷徑開關、溫濕度監控、冷氣開關....)

- 杜邦線+杜邦pin,這部分只是連接用,可以用焊的手法就好
- 可變電阻500Ω (1K底下的可變電阻比較少,我覺得50Ω~500Ω都可以)
- 可變電阻的旋鈕蓋(成品比較美觀)
- TypeC 母座
- 開關(可選有燈無燈、及不同鍵程的)
- 5V充電模組,轉4.2V輸出
- NodeMCU(ESP8266) 開發板(HomeKit 用)
- 18650電池盒,如果是多電池的要選並聯

接下來我們就一步一步來介紹怎麼自己改裝吧!
1.把前面LED部分到開關及電源拉出來
開關部分1接2 or 4 ,跟3接2 or 4 都可以。 5是LED電源正極、6是電源負極(通常紅色線會是正極,黑色線是負極)。以上用4條杜邦線接到另外一面電池盒那邊

另外一邊像這樣不用太長,用杜邦是跟另外一邊爆米花桶那邊還可以拆開。原則上LED側這樣就OK了,接下來另外一邊會比較困難

結合的示意圖

2.把開關、TypeC輸入拉出來
另外一邊我們要先開幾個孔,基本上只要開關按鍵跟TypeC的母座即可,可變電阻的旋鈕可以放在內部就好不用特別挖出來
前面也要鑽一個孔,要接LED這邊的杜邦用,我是買這種有固定尺寸的鑽頭,用bosch電動螺絲起子就可以使用

可以先把後殼的蓋子先拿掉比較好施工,拿四條杜邦線從這個孔穿過去,可以跟LED側的杜邦線接起來,盒子這邊的線可以留長一點,到時候會需要卡著盒子焊接

接下來挖TypeC孔,挖在那邊都可以,我個人選擇左下角,要注意的是要避開星星盒子內部的有加強結構的地方(開關開孔也一樣避開結構加強地方)

- 鑽孔
- 鑽孔完成
- 鎖上TypeC母座
接下來開關部分跟TypeC流程一樣,如果是有帶燈的開關會多兩條電源線,不帶燈的只有兩條線
- 先將開關焊接好電線
- 開孔並鎖上開關
- 成果
接下來就是要接上電源板,板子的焊接點如右邊顯示,有一個Vin(接TypeC母座),Vout跟Vbat其實是通路,所以接那邊都一樣,一共有三個輸出會用到
- 接到電池盒給電池盒充電
- 接到可變電阻,可變電阻再輸出給LED
- 接到NodeMCU(ESP8266)板子

全部的線路接法如下(非專業,噴小力一點),虛線部分是帶燈開關要再多接電源部分

- LED側的電源要接到可變電阻Vout
- TypeC的線接到電源控制板的Vin
- 其餘電源都從電源控制板的Vout 出來
- LED側的開關跟外接開關都接到nodeMCU板的D3跟G
我是從
https://github.com/Mixiaoxiao/Arduino-HomeKit-ESP8266
這個專案的Example2修改而來的,因為我的nodeMCU版本是有一個1.96吋的螢幕,所以我就多加了一段畫星星的code,修改的部分我放在自己的GitHub
https://github.com/ln1202/MarioStart/
總之就是把nodeMCU接入電腦,打開Arduino,選好板子nodeMCU跟port之後,把code編譯進去板子就可以了

如果成功你可以看到底下serial 會出現Homekit跑起來的訊息

上面這個方法是把wifi直接寫死在code裡面,這樣不管是電池還是插typeC都可以正常連線到家裡WiFi,我的GitHub裡面有另外一段code是把nodeMCU WiFi做成初始為AP模式,第一次可以從手機或是電腦連進去自行設定要連接到家裡的WiFi SSID,但是我只有在nodeMCU插著TypeC供電情況下才能進入AP模式,如果是透過電源控制板過來的情況下是沒有辦法進入AP模式的,我個人判斷可能是nodeMCU在電源板供電下的電壓不足(只有4.2V),導致無法進入AP mode,所以有大神可以解決的可以分享給大家
3.設定HomeKit配件
拿出你的iPhone 打開家庭 APP,依照下面圖片設定- 右上角 + 加入配件
- 更多選項
- 找到配件(可能需要一點時間)
- 輸入密碼(1111-1111)
- 選擇房間
- 選擇開關形式
- 右上角+號按下去
- 有一個更多選項按下去
- 搜尋一下,找到星星
- 輸入密碼1111-1111
- 設定位置
- 設定成開關形式
之後就是加入成功啦!因為我在code裡面已經寫了200ms後關閉開關的程式,所以我們就可以撥動一次開關打開,撥動第二次就會變成閃爍的狀態
操作影片如下
最後的成品如下,第一次買到的nodeMCU有螢幕,第二次沒有買到有螢幕的。我是覺得根本不需要有螢幕的啦,單純浪費電而已

第二次做線就會抓長短了,不像第一次留那麼長

後記:
由於個人知識能力有限,改裝到這個程度已經很滿意了,如果文章中有什麼電路有問題還請不忘提點一下讓我能改進一下。另外我在https://www.mobile01.com/topicdetail.php?f=121&t=6872145 有自製溫濕度感測器,後來我也都用nodeMCU改接入Apple 家庭了,然後也參考了homekit 冷氣這個也把家裡冷氣都併入Apple 家庭中,目前是分開好幾個板子來達到感測都目的,接下來說不定無敵星星還可以整合感測器的功能。我先想想就好啦!
