KSB039透過MQTT控制Lumex燈板

之前曾為了micro:bit寫了Lumex LDM6432燈板的擴充積木,讓micro:bit能夠很容易便能控制燈板的內容。最近Lumex又為這個燈板推出了ESP32的無線控制器,只要能連上網路透過MQTT傳送訊息的任何裝置,便能夠無線控制燈板。凱斯電子在原本的KSB039上加裝了一個ESP8266的晶片,並且將相關的micro:bit積木開發完成,因此,KSB039物聯網擴展板也具有連接網路傳送MQTT訊息的功能,因此,我便將之前寫的Lumex LDM6432燈板的擴充積木改寫成MQTT網路可控制燈板的積木,讓micro:bit可以擺脫線的限制,可以在連得上網路的任何地點便可以控制燈板。而且透過MQTT訂閱相同Topic的特性,micro:bit除了可以單獨控制某一個燈板之外,也可以同時控制多個燈板,讓使用者一人便可以管理分散在各地展示的燈板內容!連同我之前寫的7697無線控制燈板的積木,目前便有micro:bit和7697具有積木blockly編寫控制燈板的工具。

之前相關的燈板教學文件如下:

micro:bit控制Lumex64*32燈板

7697無線控制燈板

KSB039的物聯網擴展板,直接將ESP8266的WIFI模組焊在擴展板的背面。如果之前已經有KSB039的擴展板的人,可以直接購買一個IoT物聯網模組插到序列埠的接口,舊有的KSB039便一樣具有連接WIFI的功能。

KSB039物聯網擴展板,IOT模組已焊接在背面

KSB039加上IOT模組

每一個燈板的ESP32控制板,在連上網路時會自動訂閱一個Topic,Topic名稱是「ezDisplay/LumexXXX」,其中LumexXXX是每一個ESP32控制板的裝置名稱,在板子的背面可以查得到,所以如果想要控制這個燈板的話,micro:bit以及KSB039只要也訂閱相同的Topic即可。如下圖,LumexXXX即是這個無線控制器的裝置編號。剛購買到的無線控制板,必須先設定您自己的WIFI及密碼才可以使用,且必須要透過藍芽設定。手機可以安裝「Serial Bluetooth Terminal」,執行以下二個指令,更改ESP32無線控制卡內的WIFI的SSID及密碼才可以連上家中的AP,指令必須包含括號:


  • ssid=(家中無線WIFI的SSID)
  • password=(家中無線WIFI的密碼)

以上兩個指令透過藍芽設定給ESP32控制板後,需要將電關掉,再重新接電,設定才會變更。

積木的安裝:

micro:bit無線控制燈板的擴展積木網址如下:

https://github.com/lioujj/pxt-LumexLDM6432_MQTT

因為這個積木是專門設計利用KSB039來連上WIFI以及MQTT,所以在安裝完這個燈板控制積木時,會自動安裝凱斯電子的KSB039物聯網積木。所以如果你手上持有的WIFI模組不是KSB039的模組,那麼你沒辦法使用這個積木。


因為KSB039的無線模組是連接到P15以及P8腳位,所以積木的設定TXD要設定P15,RXD要設定P8,同時擴展板上P15以及P8的開關要往上撥到ON的位置。

範例一:單頁顯示無特效頁面

micro:bit啟動後,會無特效的重覆顯示儲存在燈板內部的七個頁面

範例二:單頁顯示動態特效

按下A鍵以B鍵,會往前或往後顯示儲存在燈板內的單頁頁面,並且帶有特效的動態效果。當按下A+B鍵時,會開啟或關閉燈板的時鐘模式。

範例三:多頁動態效果顯示

當按下A鍵,會以向左飛進並飛出的特效顯示所有七個頁面;當按下B鍵,會以向右飛進並飛出的特效顯示所有七個頁面;當按下A+B鍵,會以閃爍的特效顯示所有七個頁面

範例四:偵測數值的動態呈現

當啟動時,會顯示第6頁已經儲存在燈板內部的頁面,然後每一秒鐘會將micro:bit感應到的溫度及光線值呈現在燈板上。

範例五:幾何動態繪圖

群控燈板

以上的範例都是控制某個單一燈板,只要設定好某個燈板的裝置編號即可。假如您有多個可無線控制的燈板,讓這些燈板訂閱相同的MQTT Topic,便能讓其他的裝置群控燈板,就算這些燈板在不同的位置,只要它們能夠連上網路,您在任何一個地方都可以控過網路控制它們。再搭配控制個別燈板裝置的積木,您就可以同時群控或個別控制某個燈板了。但是在群控之前,必須要為每個燈板的ESP32無線控制器設定群控的Topic。Topic的設定,必須透過藍芽連線燈板後設定群控的Topic,手機透過「Serial Bluetooth Terminal」這個APP連線之後,連接個別的燈板後,執行以下的指令便能設定共同的Topic,所以您的不同的燈板您要先想好一個共同的Topic名稱,便可以群控了。指令如下,指令都必須別含前後的括號:

  • broadcast1=(共同的Topic名稱)

以上指令透過藍芽設定給ESP32控制板後,需要將電關掉,再重新接電,設定才會變更。請注意,這個Topic名稱請不要用中文,並且能夠想個別人不會和您重複的Topic,以免您的Topic和別人的Topic互相干擾。

以下範例當啟動時,會控制某一個裝置編號的燈板,按A鍵、B鍵、上側偏低、下側偏低,分別會讓目前燈板的全畫面向左、向右、向上、向右捲動。按下A+B的按鈕,則會切換目前要單獨控制某個燈板或是要群控。