【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例

一、Seeed Studio XIAO 家族

XIAO (小)系列開發板是 SeeedStudio 從 2020 年開始生產販售的微型開發板,主打超小體積、擴充彈性、性能強悍以及可以直接當作 SOM 量產使用!XIAO 系列到目前為止已經有量產七個產品,搭配五種常見的微控制器核心,包含 ESP32-C3、ESP32-S3、nRF52840、RP2040,以及今天要開箱的 SAMD21。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
XIAO SAMD21 外觀(圖片來源:Seeed Studio

XIAO SAMD21 是此列最早推出的產品,主因也是 Microchip 的 SAMD21 已被 Arduino 官方多次使用在不同產品上,包含 Zero 與 MKR 全系列超過 10 塊開發板,都是使用 SAMD21 作為核心處理器,除了 Arduino IDE 以外,SAMD21 還可以使用 micropython 與 circuit python 進行開發,相容性會較使用其他 MCU 的開發板來得好上許多。

Seeed Studio 將其小型化,但同時保有高性能與高相容性的優勢,對於 Maker 的產品接納度一定是會有所提升。本篇除了要開箱 XIAO SAMD21 之外,同時準備了 XIAO Expansion Board 擴充板,並且搭配環境感測器,實作一個 Data Logger 資料收集器,Let’s go!

二、外觀與硬體規格

XIAO SAMD21 有販售兩種不同的規版本,差異在於是否有焊接排針,如果是要當作開發板測試使用,建議直接買焊接好排針版本,若是想要當成模組打件在自行設計的 PCB 上的話就可以買未焊接的版本。剪開外包裝看到開發板的本體以及附帶的貼紙三張,這三張貼紙都是用於標示各引腳的功能,只是顏色不同,可以按照自己的喜好選擇並且貼在開發板鐵殼上方。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例

看到 XIAO SAMD21 的外觀,整個體積非常小巧,長寬分別只有 2 公分與 1.75 公分,比一個十元硬幣還要來得小。零件布局也非常簡潔,僅有一個 USB Type-C 傳輸介面與鐵殼。在 Type-C 旁邊保有四顆 LED,分別代表電源指示、使用者定義 P13、以及 UART TX RX 傳輸指示,雖說是 UART 指示功能,但這兩顆 TX RX 指示燈也可以透過程式碼控制。Type C 另一側有兩個測試點,上方寫者 RST 代表 Reset,為了節省體積省去了按鈕改以測試點替代,若開發者需要重置系統可以使用排針或杜邦線使其短路。翻過來背面部分完全沒有任何零件,這是為了可以讓 XIAO SAMD21 可以貼片在其他的電路板上,僅保留了 SWD 的測試點以及電源輸入測試點。側邊部分也做了類似郵票貼的銅箔,在執行貼片工序時可以更加牢固,不過我們今天拿到的是有焊接排針的版本,如果需要當成模組使用務必選擇沒焊排針版本。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
XIAO SAMD21 背面測試點(圖片來源:Seeed Studio)

三、XIAO Expansion Board

一般而言要使用開發板連接週邊模組通常會使用麵包板進行擴充,由於 XIAO 的體積非常迷你,官方也特別製作了 XIAO Expansion Board 方便擴充週邊設備。擴充板整體的體積也不大,上方有雙排母座可以對接 XIAO 的 pinout 引腳,或是 adafruit 生產 QT py 系列開發板,這兩系列是 pin to pin 相容的。插上開發板之後也可以再使用杜邦線連接旁邊的排母連接週邊。擴充板中間有一個 0.96” OLED 螢幕,解析度 128×64 可以顯示感測器與開發板資訊。周圍有四個 Grove 連接器包含兩組 I2C,一組 UART 與一組 GPIO,此外板上還有一個 RTC 時鐘晶片(型號為 PCF8563)、micro SD 卡槽與一個蜂鳴器。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
XIAO 擴充板 Pinout 引腳圖(圖片來源:Seeed Studio

供電部分除了透過 XIAO 開發板上的 USB Type-C 進行供電以外,可以使用 JST 2.0 連接鋰電池擴充板上帶有一個電池管理 IC 控制鋰電池的充放電,讓這塊擴充板能夠成為獨立的感測器節點。背面另外有一個 CR1220 的電池座,則是專門供給 RTC 時鐘 IC 電源做使用,確保系統斷電後 RTC 依然可以記錄時間變化。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
XIAO 擴充板元件布局指示(圖片來源:Seeed Studio)

四、Arduino IDE 設定

要使用 Arduino IDE (本篇使用 Arduino IDE 2.1.0 版本為例)開發 XIAO SAMD21 需要在「File」 > 「Preference」 中的 「Additional boards manger URLs」 (額外的開發板網址) 添加 Seeed Studio 開發板支援網址 https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json ,之後在「Board Manager」 開發板管理側邊欄輸入「SAMD」即會出現 Seeed SAMD Boards 支援,點選「Install」等待安裝完成。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
選擇對應的開發板與連接埠

安裝完開發板支援將板子接到電腦,開發版選擇「Seeed SAMD Boards」 > 「Seeeduino XIAO」 以及其對應的 COM Port,開啟 「Example」 > 「01.Basics」 > 「Blink」 直接進行燒錄,藉此即可驗證開發環境已設定無誤。這塊 XIAO SAMD21 板子上除了內建 LED 外,在程式中也可以使用「PIN_LED2」(連動 UART RX) 與「PIN_LED3」(連動 UART TX) 控制額外兩顆 LED。

五、實作溫濕度記錄器範例 Data Logger Example

接下來筆者將使用 XIAO SAMD21 與 Expansion Board 擴充板搭配 SHT30 溫濕度感測器與 SGP30 TVOC 感測器,實作簡易的 data logger 記錄器,將所有感測數據與時間戳記儲存在 micro SD 卡內。將上述模組以及鋰電池、 micro SD 卡依序連接到擴充板,呈現樣貌如下圖所示。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
將感測器與周邊元件連接到擴充板

為了順利跟周邊模組進行溝通,需要在 Arduino IDE 上安裝額外的函式庫 Library 包含:

  • Adafruit SHT31 Library
  • Adafruit SGP30 Sensor
  • U8g2
  • RTClib

程式碼在 setup() 階段會依序初始化 SHT30、SGP30、RTC(PCF8563) 與 SD Card,並將狀態顯示在 OLED 上,如果有模組沒辦法被順利初始化,便會卡在這一階段不會往下繼續執行。loop() 階段有四項任務(task),分別為讀取按鈕事件(切換OLED頁面)、讀取感測器數值、更新OLED顯示與寫入 SD Card。為了不讓各個任務會互相干涉,已將程式碼所有 delay() 都修改為使用時間戳記來判讀任務是否執行的方式進行規劃。若想要調整個程式的執行週期,可以修改程式碼最上方的 #define XXX_INTERVAL 的定義即可。

正常運作時 SAMD21 每秒會去讀取 SHT30 與 SGP30 的感測資訊並更新在OLED上,預設情況可以看到 OLED 上顯示溫度與濕度以及日期時間資訊,若想要看 TVOC 與 eCO2 的資訊可以按下擴充板右下角的按鈕進行頁面的切換,可以切換顯示不同的感測資訊。同時每 5 秒會將感測數值與時間已 CSV 的格式儲存在 SD 卡中,方便後續做數值分析使用。若有搭配鋰電池則此記錄器便能離機使用,放置到任何想要感測的位置。

大部分的程式碼皆是參考各模組的範例程式整合在一起,完整的範例程式可於 CIRCUS Pi 的 GitHub Repo 取得,程式碼內也有說明註解,歡迎自行取用參考。

【開箱評測】Seeed Studio XIAO SAMD21 and Expansion Board 溫濕度感測記錄器教學範例
OLED 上顯示各類感測器資訊

小結-能當量產品的開發板

XIAO 系列所有產品都維持著一貫小型化設計,除了當作開發板以外,要放在量產品上做為模組也絲毫不違和。XIAO SAMD21 和 Arduino 官方的 MKR 系列使用相同的微控制器,但價錢只要 USD $5.4,為 MKR Zero (USD $30.3) 兩成不到的價錢,算是相當的實惠。推薦給有小型化專案開發需求使用的 Maker!