運用 M5Stack Core Basic 打造 IoT 智慧植栽

一、前言

在氣候變化、資源減少和人口增加的情況下,全球農業受到了前所未有的壓力,隨著不可預測的氣候因子加劇,許多農夫引進先進技術以提高生產效率和作物的抗災能力。智能化的溫室就是一個很好的例子,在傳統農業框架下導入物聯網(IoT)技術,除了數據化管理作物的生長歷程,更可以隨著極端氣候調整栽種品質。

M5Stack IoT智慧植栽即是一個智慧照顧植物的系統,透過M5Stack Core Basic 搭配土壤溼度感測器光強度感測器,感測環境參數並記錄於雲端,再依據感測器所得到的數據,使用抽水馬達、植物燈條、風扇主動調整環境。

(1)零件清單

(2)使用軟體與線上服務連結

UiFlow

台灣 NTP Poolhttps://www.pool.ntp.org/zone/tw

ThingSpeakhttps://thingspeak.com/

二、硬體架構與設定

智慧植栽使用M5Stack Core BASIC 作為主控板,透過側邊Port A(M5Stack Core常用的接腳定義) 連接M5Stack 環境感測模組,考量到需要驅動一顆抽水馬達(12V)、一顆散熱風扇(5V)、植物燈(5V),同時需要獲取感測器數值(光感測、土壤溼度),M5Stack提供了一款擴充性極高的BASE模組 M5Stack Goplus2 馬達驅動器模組 ,控制核心搭載了STM32F030C8T6,支援2路直流馬達、4路伺服馬達,可擴充3個GPIO,恰好符合我們的需求,以下是硬體配置圖。將M5Stack Core BASIC 拆開,透過排插擴充 GOPLUS2模組。

將繼電器模組、光感測模組、土壤溼度模組依序連接GOPLUS2的左側三個GPIO連接埠(expand PortB Pin out ),風扇、抽水馬達連接GOPLUS上方兩個DC馬達連接埠,將12V變壓器連接於下方額外供電。

三、UiFlow 設定

Step.1 更新韌體

在建立連線以前,必須先下載官方燒錄器(M5Burner)將韌體版本更新至最新。接上傳輸線後燒錄器會顯示COM Port編號,選擇最新版本的CORE UiFlow韌體版本,按下”Burn”完成燒錄。

Step.2 建立連線

更新完韌體後,將Core切換至「Internet Mode」,選擇「Wi-Fi via AP」,進入連線頁面後會看到地球符號閃爍。

打開筆電的Wifi搜尋AP熱點SSID名稱,每台Core的名稱都不一樣筆者這裡預設是M5-FB50 ,成功連線後開啟瀏覽器分頁,在搜尋欄輸入 : [192.168.4.1]導入連線設定頁面,輸入欲連線的SSID與密碼。

成功連線後瀏覽器如下圖所示,Core的顯示器左上角的Wifi與連線的圖示皆會顯示綠色,下方會顯示遠端連線所使用到的API KEY,透過這樣的設定,Core會存取SSID與密碼,之後使用網路模式就可以直接連線,使用過多台AP也可以至Setup > Server select 進行選擇。

接下來打開電腦的瀏覽器,重新連上網際網路,進入Uiflow 網頁版,將API KEY 填入,選擇Core的類型後按下「OK」。

最下方的狀態列會顯示目前建立連線裝置的API KEY ,並顯示「Connected」,表示成功遠端連線,可以開始使用Blocky積木撰寫程式。

四、功能設計與程式撰寫

Step.1 設定模組

在開始撰寫Blockly前,要先導入這次會使用到的Unit模組函式庫,點選左下加號,勾選環境感測模組並選擇連接埠為Port A,按下OK確認。

導入模組後會顯示在左方顯示面板,打開Unit選單確認是否正確導入模組。

Step.2 網路連線與HTTP功能

首先設定智慧植栽 Core的Wifi連線功能,打開Uiflow的Advanced選單,選擇Network中的「Connect to Wi-Fi SSID」、「 PASSWORD 」 並填入欲架設門禁系統位置可以連線到的AP名稱與密碼。為了確認Wifi是否連線,加上一個判斷邏輯函式與螢幕的UI標籤元件,當Wifi連線時呈現綠色,為連線時呈現紅色,網路連線設定結束。Uiflow使用到的功能列 : 判斷邏輯函式Wifi設定UI元件

Step.3 設定UI介面與顯示

UIFlow提供了方便的使用者顯示介面元件,包含標題(Title)、文字標籤(Label)、Rect(方形)、Circle(圓形)、image(圖片),使用者僅需要透過拖拉方式即可新增/移除。

透過UI 選單撰寫UI元件的顏色、形狀、顯示狀態,image(圖片)功能目前僅支援BMP、JPG、PNG格式,大小必須低於50kb,使用前必須先導入圖片後方可使用,圖片大小限制為50kb。

首先撰寫顯示器功能,將環境感測器、土壤濕度感測器、光感測器收集到的資料顯示在示於畫面,創建一個函式(小編這裡命名為Display)。Uiflow使用到的功能列 : Event、建立函式、Module(GOPLUS 2)、 環境感測器模組UI元件。(注意 : GO PLUS2的Uiflow函式庫目前僅支援線上版本。2021/01/24)

Step.4 植栽照護系統

1.自動加水

完成讀取並顯示感測器的資料後,接下來針對各項環境數據設計出相對應的動作,首先是自動加水功能,當土壤溼度低於一個定值時啟動抽水馬達進行加水的動作(濕度下限值為使用者根據植物特性自訂)。Uiflow使用到的功能列 : 建立函式、Module(GOPLUS 2)、 判斷邏輯函式UI元件

2.自動延長照時

此功能模擬一個調節開關植物燈的功能,當多肉植物或是一些特殊的季節作物需要調節光照時可以新增此功能,由於Core可以Wifi連線上網的特性,使用Uiflow 內建的NTP功能,NTP(Network Time Protocol)為網路時間協定,是在資料網路中可變的電腦系統之間通過封包交換進行時鐘同步的一個網路協定。首先必須先設定時區連線伺服器(https://www.pool.ntp.org/zone/tw),設定打開與關閉植物燈的時間即可。Uiflow使用到的功能列 :NTP建立函式、Module(GOPLUS 2)、 判斷邏輯函式UI元件

3.自動散熱

此功能模擬一個調節溫室內室溫濕度的功能,設定溫度上限值,當到達指定值時開啟風扇散熱。

Uiflow使用到的功能列 : 建立函式、Module(GOPLUS 2)、 判斷邏輯函式UI元件

4.Demo模式 手動開啟功能

使用者可以將抽水馬達、燈光、風扇等功能設定在CORE的按鈕A、B、C上,方便測試與Demo展示。

Uiflow使用到的功能列 : EVENT、 建立函式、Module(GOPLUS 2)、 判斷邏輯函式UI元件

Step.5 雲端儲存紀錄植物的環境參數

ThingSpeak 是一個開源的數據平台,在Wifi連線的情況下使用Http協定傳送感測器的資料紀錄。

首先必須先創建一個ThingSpeak帳號(建立帳號),進入主控頁面後建立新的Channel,為頻道取一個名字,並將欲紀錄資料填入(Field1、Field2…..)。

創建後,點選API KEYS,將寫入資料的網址複製起來,回到UIFLOW頁面(僅需要複製網址就好)。

進入UIFLOW介面後,導入HTTP 功能。

將複製的網址貼入URL選項內,這裡需要透過UIFlow文字功能做改寫,field為感測器的編號,必須根據感測器選定專屬的編號,並將欲傳輸的資料導入。

接著加入傳送成功與否的提示訊息,如果成功顯示綠色,失敗則呈現紅色。

完成後,重新啟動CORE。正確傳送資料後,ThingSpeak的統計圖表會開始顯示資料與時間戳記。

五、結語

本次範例程式透過M5Stack CORE Basic 搭配GOPLUS2模組快速搭建整個智慧植栽系統,針對不同環境參數設計出自動澆水、自動調溫、自動調光等功能,在間隔10-15秒的傳輸時間內做出紀錄,唯獨比較可惜的是CORE Basic 並不包含RTC 即時時鐘的功能,無法即時將感測器的資料與時間戳記做較為精準且無延遲的配對,使用者如果想追求精準的時間戳記,可以使用M5StackCore2作為核心(內建RTC),或是透過NTP(network time protocol)的方式連上Wifi後進行時間校正。

打造你的智慧植栽

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *