20230112 鳳山國中
主題:micro:bit 連雲模組應用與遠端控制
本教材網址:http://gg.gg/20230112fs
研習日期:112.01.12 (四)上午09:00~12:00
地點:鳳山國中藝術大樓二樓
講師:黃文玉老師 (shspswenyu@gmail.com)
一、軟體部份
MakeCode:微軟設計的積木式推疊的程式語言平台
網址:https://makecode.microbit.org/ (今天以此平台的教學為主)
線上編輯器,還有模擬器可用
也有離線版,但我很少用:https://makecode.microbit.org/offline-app
適合國中小學生的使用
二、認識【Logyun連雲WiFi模組】
因為micro:bit不具備連網功能,所以透過【Logyun連雲WiFi模組】來連上網路
官方資料:
硬體連接方式
使用最一般的擴展板
注意!!這樣的硬體組合(簡易擴展板+ 連雲模組),用micro:bit V1.5會有問題,要改用micro:bit V2才可以運作
如果使用其他外部供電的擴展板+ 連雲模組,micro:bit V1.5就比較沒問題!
連接連雲WIFI模組
連雲的接線說明:
VCC的紅色線接在擴展板的3V3
GND的黑色線接在擴展板的GND
RX的黃色線接在micro:bit的P1(還有其他腳位可接)
TX的白色線接在micro:bit的P2(還有其他腳位可接)
makecode下的連雲積木擴展
連網基本測試
顯示取得的IP
程式如下
連上OLED顯示器
接線說明:
VCC的紅色線接在擴展板的3V3
GND的黑色線接在擴展板的GND
SCL接在擴展板的SCL(P19)
SDA接在擴展板的SDA(P20)
makecode下的OLED積木擴展
輸入OLED(如右圖)
顯示測試
顯示micro:bit的溫度及亮度
程式如下:
發現:
此積木最長顯示13個字母、最多4列(0~3)
color=1正常顯示、color=0反白顯示
三、網路爬蟲應用
校園空氣盒子的PM2.5查詢
校園空氣盒子查詢
查詢設備ID
零時空汙觀測網:https://list.airmap.g0v.tw/
查詢高雄市鳳山區鳳山國中的PM2.5及溫濕度
發現:網站上顯示的PM2.5會比我們取得的值慢一點
台灣空氣品質指標查詢
空氣品質監測站:https://airtw.epa.gov.tw/
政府資料開放平臺之【細懸浮微粒資料(PM2.5)】查詢:https://data.gov.tw/dataset/34827
從上資料取得【監測站 】的中文名稱
無法取得資料,沒有成功
OpenWeather
需要至OpenWeather (https://openweathermap.org/ )註冊並取得API Keys。
查詢台灣股票資訊
想一想,如何設計一個可以輸入股票代碼的介面?
可能要動一動腦筋
四、上傳資料
上傳資料到Google試算表
預計收集micro:bit上的【溫度】及【光線感測值】
請先開啟【Google 雲端硬碟】並新增一個【試算表】,點選【共用】並設定權限為【編輯者】。
讀取Google試算表上的資料
預計播放全家的歡迎音樂
全家的歡迎音樂
簡譜:3 1 5(低音) 1 / 2 5~ 2 / 3 2 5(低音) 1 (共11個音)
各音的頻率:330、262、196、262、294、392、294、330、294、196、262
各音的長度(亳秒):500、500、500、500、500、1000、500、500、500、500、500 (1拍為500ms)
在google試算表建立如下資料
這邊只有讀取資料,所以用【檢視者】即可
程式如下:https://makecode.microbit.org/_2fWhpjbkvFYU
由於讀取網路的資料比較慢,所以先【按A鍵】先把Google試算表的資料存成【陣列】
按B鍵播放音樂
除了上傳Google試算表外,還有可上傳到Thingspeak的積木可用
Thingspeak網站:https://thingspeak.com/
線上雲端資料庫
免費版的功能:
可建立三個Channel
每15秒可上傳資料一次
每次可上傳八個數值(field)
五、Line通傳
參考資料:
申請 LINE Notify:notify-bot.line.me/
教學參考:自建 LINE Notify 訊息通知
申請 LINE Notify 權杖
打開 LINE Notify 的網站 ( https://notify-bot.line.me/zh_TW/ ),使用自己的 LINE 帳號登入。
登入後滑鼠移至上方個人帳號,選擇「個人頁面」
申請權杖:UWTHY3QRhgrgNjMBCbXBTItr5QafkEWW6mqKdFgZiLv
測試:按A鍵,傳LINE出去,包含micro:bit的溫度、光線值
六、遠端控制
MQTT測試
認識MQTT
這是目前物聯網最夯的應用
相當於youtube的訂閱機制(youtuber為【發布者】、youtube網站為【Broker】、你我為【訂閱者】)
MQTT由三種角色構成,分別是Publisher(發布者)、 Broker(代理人)和Subscriber(訂閱者)
MQTT的主題(Topic)名稱:MQTT主題名稱是UTF-8(萬國碼)編碼的字串,我們可以自行決定主題名稱,例如,傳送溫度的訊息主題可命名成「溫度」、傳送亮度的訊息主題叫做「照度」…等等。主題名稱也支援類似檔案路徑的階層式命名方式 ,如: wenyu/home/1f/led
MQTTGO.io:mqttgo.io 、TCP Port:1883
HiveMQ:broker.hivemq.com 、TCP Port:1883
EMQX:broker.emqx.io、TCP Port:1883 / 8883(TLS)
利用MQTTgo.io網頁工具來控制遠端設備的開關燈
利用電腦網頁當【發布者】 http://mqttgo.io/
MQTT Broker:mqttgo.io (夜市小霸王尤濬哲公司出品)
TCP Port:1883
WebsocketPort:8000
MQTT定義了0、1和2三個層級的QoS(QualityofService)服務品質
實際支援情況依Broker主機而定
0:最多傳送一次(at most once)
1:至少傳送一次(at least once)
2:確實傳送一次(exactly once)
遠端控制
micro:bit當訂閱端
MQTT Broker:mqttgo.io
訂閱一個主題:wenyu38 (取一個獨一無二的名稱)
收到的訊息為1時開燈、訊息為0時關燈
MQTT 使用小提醒
為了確保連線正常且穩定,Logyun連雲一旦進入MQTT 連線後,除了MQTT 的相關功能,其餘功能將無法使用,需要使用「關閉MQTT」這個程式積木才能跳出以恢復其他功能。
所以若是有使用過MQTT 功能,但最後卻沒有執行「關閉MQTT」而燒錄其他功能的程式時,建議按下Logyun連雲上面的RESET(按鈕),讓Logyun連雲重新啟動,或是重新啟動總電源,讓Logyun連雲重新開機以跳出MQTT 的功能循環。
遠端控制
訂閱二個主題:wenyu38、wenyu39 (取一個獨一無二的名稱)
micro:bit當發送端
按A鍵發送訊息1
按B鍵發送訊息0
程式如下:https://makecode.microbit.org/_dhX3WdKLcaYg
發現:按鍵要按久一點才有作用
micro:bit當發送端
自動發布溫度及亮度
程式如下:https://makecode.microbit.org/_80qCd3Av30MY
發現:發布資料每筆要間隔1秒以上
電腦版MQTT平台
手機版MQTT平台
安裝手機版APP:IoT OnOff APP
好處是:Android手機及Iphone手機均可使用
參考資料:https://sites.google.com/site/wenyunotify/05-esp32/03-%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8
利用手機當【發布者】,控制micro:bit的燈亮或燈滅
利用手機當【訂閱者】,顯示溫濕度數據
發現:這邊測試好久,總有一些問題