不寫程式做物聯網 - Adafruit.io WipperSnapper

Adafruit.io WipperSnapper

不寫程式做物聯網專案咁有可能!?Adafruit.io WipperSnapper 是一種物聯網(IoT)工具,專為初學者設計,使他們可以在不編寫程式碼的情況下建立物聯網專案。這個工具讓你可以連接和控制各種感測器,並將數據輕鬆上傳到雲端,以便在任何地方進行觀察和分析。無論你是想建立一個智慧家居系統,還是只是想追蹤溫度或濕度,Adafruit.io WipperSnapper 都提供了一個簡單易用的解決方案。這篇文章實際操作在不寫任何程式碼的情況下,介紹使用 Adafruit.io WipperSnapper 完成物聯網專案。

硬體接線 Hardware

WipperSnapper 支援多數 ESP32 為核心的開發板,其大多都是 adafruit 自行設計生產的,這也都相當合理,畢竟肥水不落外人田。除了 ESP32 之外也支援樹莓派的 Pico W,因此本篇將使用 Pico 搭配擴充板與感測器進行實作,完整材料清單如下:

上述的兩種感測器,SHT3x (SHT30) 溫濕度感測器和 SGP30 VOC & eCO2 感測器,都是使用 I2C 介面。因此,它們的 SDA (資料線) 和 SCL (時脈線) 需要連接到 PICO W 的對應 I2C 介面上。PICO W 預設引角 SDA 為 GP4、SCL 為 GP5,歸納連接方式如下表:

PICO WSHT3xSGP30Relay Module
SDAGP4SDA (白)SDA (白)
SCLGP5SCL (黃)SCL (黃)
3.3VVCCV (紅)V (紅)V (紅)
0VGNDG (黑)G (黑)G (黑)
PINGP15S (黃)

使用 GPIO 擴展板可以更方便連接周邊各模組,首先需要將它與 Raspberry Pi Pico 正確地連接起來。接著,將 SHT3x 和 SGP30 感測器以及繼電器模組連接到擴展板的對應位置。確保所有接線都正確無誤後,就可以開始設定和使用這些硬體設備了,完成後接線後的實體如下圖所示:

燒錄韌體 Burning Firmware

STEP 1: 註冊並登入 adafruit io 後,可以在右上找到一個名為 “New Device” 的按鈕,點選其進行新增 WipperSnapper 設備。在搜尋欄輸入 “pico w” 找到後點選 “Choose Board” 按鈕進行新增設備。

STEP 2: 準備一條 micro USB 傳輸線連接電腦與 Pico W,由於 Pico W 沒有電源指示燈,不用擔心沒有顯示任何燈號的狀態是否為異常。

STEP 3: 這邊提醒如果有之前使用的程式可以先進行備分,若無則可以略過此步驟。

STEP 4: 點選下方 “Download WipperSnapper” 按鈕下載韌體。

STEP 5: 按壓 Pico W 上方的 “BOOTSEL” 按鈕不放,再按壓 GPIO 擴展板上的 ”RUN” 按鈕將其 Reset 進入燒錄模式。(若無使用 GPIO 擴展板則需移除電源後重新插入來進行 Reset)

STEP 6: 接著將剛下載完成的 WipperSnapper 韌體在檔案總管用拖拉的方式拉到名為 “RPI-RP2” 的卸除式磁碟,Pico W 將會自動進行燒錄。完成燒錄後 Pico W 會自行重新啟動,此時卸除式磁碟名稱已轉為 “WIPPER” 代表韌體已成功燒錄。

STEP 7: 設定連線資訊,於對應欄位填入要讓 Pico W 連線的 WiFi SSID 名稱與 Password,完成後點選 “Generate Secrets File” 按鈕,瀏覽器會開始下載一個名為 “secrets.json” 的檔案,裡面包含 WiFi 與 Adafruit IO 物聯網平台的連線參數。

STEP 8: 將 “secrets.json” 複製到 “WIPPER” 卸除式磁碟,完成後再將 Pico W 重開機一次。

STEP 9: 重開機後 Pico W 會讀取連線設定自動連線到 Adafruit IO 平台。

約莫兩~三分鐘可以看到右下角冒出個提示訊息,顯示有心的裝置連線到自己的 adafruit IO 後台,點選其可新增裝置到平台上。

輸入自行命名的裝置名稱,點選 “Continue to Device Page” 來管理裝置。

設定感測器 Setup Sensors

STEP 1:進入裝置設定頁面,點選剛剛新增的 Pico W,首先,打開您的設備頁面,並在頂部選擇 “New Component” 選項或是右側 “+” 符號,來添加新的感測器或其他元件。

STEP 2: 點選上方 “I2C Scan” 可以列出目前 Pico W 偵測到的 I2C 模組有哪些,筆者的結果如下圖所示,偵測到 0x44 (SHT30) 與 0x58 (SGP30)。若所連接的感測器沒出現在此表格上,可以重新檢查硬體接線或是電源供應是否正確。

STEP 3:彈出對話框中列出所有可用的感測器和元件,以本篇實作來說,我們將依序新增 SHT3x 溫濕度感測器、 SGP30 VOC & eCO2 感測器與繼電器模組。可於上方搜尋欄直接輸入” SHT3″ 找到 SHT3X 模組點選新增。

STEP 4:設定感測器的參數,這包括了設定模組 I2C 匯流排位址、要上傳的感測數值、上傳間隔等資訊。以筆者的設定來說取消了並不常用的華氏溫度,並且將上傳資料間隔改為每一分鐘一次。點選 “Create Component” 完成新增模組。

STEP 5:接著再依序新增 SGP30 與繼電器模組,將這些元件加入到 Pico W 裝置中。

STEP 6:最後,在設備頁面可以看到所有已連接感測器的狀態和數據,除了能即時查看每個感測器的讀數,並在需要的時候隨時修改感測器的設定,以符合實際使用需求。

製作儀錶板 Build Dashboard

STEP 1:在 Adafruit IO 主頁面,點選 “Dashboards”,然後選擇 “New Dashboard”。

STEP 2:為儀錶板命名,並提供描述(非必要)。完成後,點選 “Create”。

STEP 3:重導向至新的儀錶板頁面,點選右側齒輪按鈕,再點選下拉式選單中的 “+ Create New Block” 按鈕開始添加元件。

STEP 4:選擇要添加的元件類型,例如方塊、圖表或文字框。常用的有滑動按鈕(Toggle,用來控制開關)、環形計量表(Gauge,用來顯示數值)、趨勢圖(Line Chart,用來顯示長時間數值變化)等。這邊筆者先選擇第一個滑動開關(Toggle)來對應所要控制的繼電器模組。

STEP 5:選擇對應的數據源(Feed)。,然後配置其他選項,如元件的尺寸和顏色。完成後,點選 “Create”。

STEP 6:配置對應選項,參數如下:

  • Block Title: 元件名稱
  • Button On Text: 開關打開時顯式的文字
  • Button On Value: 開關打開時要對數據源寫入的數值,筆者將其改為 ”1”。
  • Button Off Text: 開關關閉時顯式的文字
  • Button Off Value: 開關關閉時要對數據源寫入的數值,筆者將其改為 ”0”。

設定完成點選 “Update block” 即可在儀表板中遠端控制繼電器模組了!

STEP 7:選擇 Gauge 對應溫度、濕度、VOC等各種感測數值,常設定的參數如下:

  • Block Title: 顯示名稱
  • Gauge Mini Value: 最小數值,可以依據感測器範圍調整
  • Gauge Max Value: 最大數值,可以依據感測器範圍調整
  • Gauge Width: 計量條的寬度,保值預設 25px 即可
  • Gauge Label: 顯示於中間的標籤,通常填入該數值的單位,閱讀起來較為直覺。

STEP 8:選擇 Line Chart 趨勢圖,其可以對應對應1~5個數據源(Feeds) 顯示在同一張圖表中,這邊雖同時勾選溫度與濕度進行顯示,但還是建議同類型的感測數值一起顯示較不會妨礙判讀。

Line Chart 所對應的選項如下:

  • Block Title: 顯示名稱
  • Show History: 顯示數值範圍
  • X-Axis Label: X 軸標籤
  • Y-Axis Label: Y 軸標籤
  • Y-Axis Minimum: Y 軸刻度最小值,落留空則為自動
  • Y-Axis Maximum: Y 軸刻度最大值,落留空則為自動

STEP 9:調整儀錶板布局。依序新增完成顯示元件後,點選右側齒輪選擇 ”Edit Layout”,可調整各顯示元件的大小與位置,完成後就有美美的儀表板啦! 若需要與他人共用也可將儀表板設定為公開並分享連結。

小結 Wrap Up

Adafruit.io WipperSnapper 是一款功能強大且易於使用的物聯網工具,主要優點在於其直觀的用戶介面和強大的功能,讓我們無需編寫任何程式碼,即可設置和控制各種物聯網硬體設備。無論是物聯網的新手,還是有經驗的開發者,相信都會在這款工具中找到所需要的功能。後續有機會筆者將再介紹串聯 Adafruit IO 的自動化工作流,也千萬別錯過了!