作者:賴桑
記得 2017 那時候還在幫老東家 Unabiz Taiwan 當顧問的時候,有一次就是要做 button alarm,結果當時沒有合適的硬體,就大家矇著頭硬幹,還好~~最後真的做出個差強人意的雛形 …XD
這幾年 Sigfox 可以說是後起之秀!越來越多人發現我們法國朋友的這無線通訊服務,具有長程、低功率、短訊息的好特色之後,現階段的應用場景可謂不勝枚舉。甚至很多國內外廠商也都競相標榜推出的軟體或硬體商品,可以直接支援 Sigfox,在國內很支持我們 Maker界的公司—邁特電子(Might),也是其中之一。
產品概述
收到邁特電子的 MTDuino 後,我心裡想到一件事:「你怎麼到現在才拿給我!?」,從外觀上來看 MTDuino 與一般市面上見到的 Arduino 系列商品相似,就連接腳也都對照著,如下圖:

MTDuino 正面及背面,可以看到與 Arduino Uno 的腳位幾乎一樣(圖片來源:sigfox)
為什麼我說 MTDuino 真的是為了 Sigfox 而開發的,很簡單,從正面(上圖下)就可以很清楚看到,設計上一點都不拖泥帶水,甚至增益天線、拿到戶外使用的電池座,都考慮到!不像我們用 Arduino 的時候那樣,要自己搞降壓電路、外掛通訊模組,甚至連程式碼都得因為這些外掛而修改。
要寫我們的程式進去的時候,先把天線扣上,再透過跟智慧手機一樣的 Micro USB 傳輸線接上電腦的 USB,就成了!
另外說明一下,MTDuino 的 D3、D5 被 Sigfox 給保留了,所以盡量別占用 D3、D5 兩個腳位;至於使用上,那倒是簡單:只要在 setup() 裡面把 D3、D5 設定為 OUTPUT 腳位,然後設定輸出為 HIGH,那麼 MTDuino 內建的 Sigfox 傳輸就啟動了!
系統安裝
由於MTDuino本身就是為了能直接支援 Sigfox 而設計的 Arduino,想當然之後開發程式上也是在我們熟悉的 Arduino IDE 下;如果你第一次使用,那就請先到官方網站下載安裝 Arduino IDE。
啟用 Arduino IDE 後,請注意 MTDuino 的微處理機晶片跟傳統 Arduino Uno 的不一樣!MTDuino 的微處理機晶片是 Atmel 的 32 bits 這個 SAMD21,而 Arduino Uno 的微處理機晶片是 Ateml 的 8 bits 那個 ATmega328。
SAMD21 本身是 Cortex M0+ 的系列,所以請在選單「工具」→「開發板管理員」中,指定要安裝 Atmel SAMD Boards 才可以讓編譯後的成果,正常燒錄給 MTDuino,而這個方面根本不用擔心!因為所要安裝的這個項目還是 Arduino 原廠自己提供的。
之後,透過 Micro USB 傳輸線把 MTDuino 插上電腦的 USB,看看裝置管理員是不是抓得到 MTDuino,像是這樣,那就大功告成啦!
向營運商登記 MTDuino
Sigfox 是由全球各地不同的營運商經營管理的,所以任何一個裝置想透過 Sigfox 達到無線通訊的傳輸訊息服務,當然就跟智慧手機要先有門市發給的門號以及 SIM 卡一樣囉。
首先,先到 Sigfox 的後台網站,設定開通的資料;要是你個人連帳號都沒有,那也請先上網申請、註冊後,再將你的帳號登錄,申請和登入的過程其實很容易一看就懂。
比較要提到的是第二個畫面,那就是有 Device ID 跟 PAC 這裡,這兩個註冊資訊一定要填對!Device ID 就在 MTDuino 的正面晶片上,舉例:我的是 004DAD58,那只要抓後面六位,所以我的 Device ID 就填 4DAD58。
至於PAC那就可以用手機的二維條碼讀取程式來掃描,特別叮嚀:這得用Google Drive下載的二維條碼專用程式,不可以用LINE的喔!
二維條碼的內容不難看出來吧?前面的 004DAD58 就是剛剛的 Device ID,若是已經輸入就不重複了!後面開始 66A1…共 16 bytes 就是 PAC,之後都是一般的個人資訊。
程式開發
MTDuino 本身是專門替 Sigfox 打造的 Arduino,可是又簡單到不用甚麼電路跳線等一大堆煩死人的東西,那怎麼做到的呢?很簡單,邁特電子在開發的時候,除了電路設計以外,連軟體都幫你把 Sigfox 的部份給包好了,你不用再花腦筋去改一堆程式碼!
那要動哪邊?就是我們熟知的 Serial 啦,目前 MTDuino 有兩個 Serial,一個對電腦、另一個對 Sigfox。
至於Baud rate,一般建議在 115200 bps 內。所以知道了,以後就照上表分門別類,然後用法都跟 Arduino 本來的 Serial 一樣,只是名稱不同而已。
實例展示
因此,就來玩個實例稍微過一下癮吧!一開始不是提到我們做了個 button alarm 的雛型嗎?那就拿這個來做實驗!元件也容易,就是一個按鈕而已,供電的部分如果你有像是掌上無人機那類玩具的鋰電池就插上電池座吧,沒有的話那就只好 USB 供電囉。
不過,Sigfox 到底比較擅長在戶外使用,假如用 USB 供電,那就麻煩你移駕一下,要測試的時候連筆電甚麼的一起帶著,不然就是可以讓 MTDuino 盡量靠近窗邊、陽台或開著的門口;幸好我們法國朋友設計 Sigfox 本來就是為了標榜長程又能省電力,所以可以這樣做!
話說 MTDuino 的 Sigfox 傳輸電路,本身就只需要透過類似傳統數據機那樣的 AT command 傳送給 Serial 1 便能操作,記得:一次一列命令,然後結尾要有 \r 。
這是 button_alarm 的程式範例:下載連結。
D7 上接個按鈕,按鈕另一端對 GND;電路接好、程式燒錄後,登入 Sigfox backend 吧!
好啦~~試玩時間到囉!別按太頻繁啊,間隔 10 幾 20 秒再按,要不然一天能上傳的量一下就不見了!
【延伸閱讀】