建置植物生長監控網站:
如何建立 + 資料傳輸與網路架構 + 開發與設計 + 物聯網整合

這是一篇完整的「建置植物生長監控網站的架設教學」。

這裡,我將會手把手帶你從零開始「 架設植物生長監控」網站,章節如下。

    Add a header to begin generating the table of contents

    要建置一個植物生長監控的物聯網網站,可以分為以下幾個步驟來進行,包括硬體選擇、軟體設計、資料傳輸以及網站開發。以下是具體的步驟與建議:

    1.硬體設備選擇

    硬體設備包含
    為了實現植物生長監控,您需要選擇合適的感應器和微控制器,這些裝置將負責收集植物生長數據並傳送到您的網站。常用的硬體設備包括:
    technology (1) 1. 感測器(Sensors)
    • 土壤濕度感測器:測量土壤中的水分含量,幫助判斷植物是否需要澆水。
    • 溫度與濕度感測器:監控周圍環境的溫度和濕度。
    • 光照感測器:測量光線強度,以確保植物得到足夠的光照。
    • 二氧化碳感測器(可選):監測空氣中的二氧化碳濃度,有助於植物生長分析。
    • 繼電器(Relay)(可選):當感測器偵測到需要啟動抽水馬達或是光線不足需要開啟光源時使用。
    Untitled Sketch_bb 2. 微控制器
    • 使用 ESP32或 ESP8266 作為核心控制板,它們支援Wi-Fi功能,能夠將感測器數據傳輸到雲端或網站資料庫中。
    • 使用 ESP32 CAM 作為遠端監看植物生長,設定定期每30分鐘或每1小時等,拍照並將圖片上傳到雲端或網站資料夾中紀錄。
    cpu 3. 網站伺服器主機 - 這裡我用樹莓派(Raspberry Pi 4 Model B)
    • 伺服器主機:可以用個人電腦切出一個虛擬主機,或是購買一個雲端主機,這裡我使用的是一塊即有的Raspberry Pi 4 Model B,主要是它體積小、省電;要在上面安裝作業系統架設NodeRed、MQTT、資料庫接收感測器數據,並跑WordPress網站很方便。

    感測器介紹

    土壤濕度感測器( Soil Moisture Sensor )

    說明

    把土壤濕度感測器插入土壤時,利用泥土內所含水分電解質的導電度,改變感測器兩端電壓的數值,來顯示土壤含有的水分多寡。

    搭配ESP32所顯示的數值為 0-4095。越乾的土壤,數值越高;反之,越濕的土壤,數值越低。

    一般乾溼判斷的數值為3000。若數值在3000以上代表土壤較為乾燥,需開啟灑水系統灑水;當數值在3000以下,則可以關閉灑水系統。

    • 1.比較器採用LM393芯片,工作穩定
    • 2.工作電壓3.3V-5V
    • 3.PCB尺寸:3.2cm * 1.4m
    DHT22 溫濕度感測器

    說明

    一款含有已校準數位信號輸出的溫濕度複合感測器。它應用專用的數位模組採集技術和溫濕度傳感技術,確保產品具有極 高的可靠性與卓越的長期穩定性。 DHT22 感測器包括一個電容式感濕元件和一個NTC 測溫元件,並與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快回應、抗干擾能力強、性價比極高等優點。

    • 1.工作電壓:3V–5.5V
    • 2.傳感器型號:奧松AM2302溫濕度傳感器
    • 3.信號輸出形式:數字信號
    • 4.溫度測量範圍:-40℃–80℃
    • 5.測量精度:0.5℃
    • 6.濕度測量範圍:0–100%RH
    • 7.測量精度:2%RH
    • 8.分辨率:16位
    光照(光敏電阻)感測器

    說明

    • 1.光敏電阻模塊對環境光線最敏感,一般用來檢測周圍環境的光線的亮度,觸發單片機或繼電器模塊等。
    • 2.模塊在環境光線亮度達不到設定閾值時,DO端輸出高電平,當外界環境光線亮度超過設定閾值時,DO端輸出低電平。
    • 3.DO輸出端可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環境的光線亮度改變。
    • 4.DO輸出端可以直接驅動本店繼電器模塊,由此可以組成一個光控開關。
    • 5.小板模擬量輸出AO可以和AD模塊相連,通過AD轉換,可以獲得環境光強更精準的數值。

    特色

    • 1.採用靈敏型光敏電阻傳感器
    • 2.比較器輸出,信號乾淨,波形好,驅動能力強,超過15mA。
    • 3.配可調電位器可調節檢測光線亮度
    • 4.工作電壓3.3V-5V
    • 5.輸出形式:DO數字開關量輸出(0和1)和AO模擬電壓輸出
    2路 5V 繼電器

    說明

    • 1.尺寸:50.6mm(長)*38.8mm(寬)*19.3mm(高)
    • 2.體重:30g
    • 3.繼電器選用優質松樂繼電器,單刀雙擲。一個公共端、一個常開端、一個常閉端
    • 4.光耦隔離,抗干擾性好
    • 5.低電平吸合,高電平釋放。吸合時狀態指示燈亮,釋放時狀態指示燈滅
    • 6.VCC為系統電源,JD_VCC為繼電器電源。默認發5V繼電器,插上跳線帽即可
    • 7.繼電器最大輸出:直流30V/10A,交流250V/10A

    微控制器介紹

    ESP32 微控制器

    說明

    ESP32 結合了天線開關、射頻 balun、功率放大器、低噪放大器、篩檢程式和電源管理模組,整體佔用了最少的印刷電路板面積。2.4 GHz Wi-Fi 加藍牙雙模晶片

    採用 TSMC 低功耗 40nm 技術,功耗性能和射頻性能最佳,安全可靠,易於擴展至各種應用。

    特色

    •  性價比高
    •  體積小。方便嵌入到任何產品
    •  功能強大,支援LWIP協定,freertos
    •  支援三種模式:AP,STA,AP+STA 共存模式
    •  Lua程式設計,讓你開發更簡單
    ESP32-CAM 微控制器

    說明

    ESP32-CAM是一款基於ESP32的低成本開發板,配有板載攝像頭,體積小巧。它是物聯網應用,原型構建和DIY項目的理想解決方案。該板集成了WiFi,傳統藍牙和低功耗BLE,以及2個高性能32位LX6 CPU。主頻調節範圍為80MHz至240MHz。

    完全符合WiFi 802.11b / g / n / e / i和藍牙4.2標準,它可以用作主模式來建構獨立的網路控制器,或作為其他主機MCU的從屬設備,為現有設備添加網路功能。

    ESP32 -CAM可廣泛用於各種物聯網應用。它適用於家庭智能設備,工業無線控制,無線監控,QR無線識別,無線定位系統信號和其他物聯網應用。它是物聯網應用的理想解決方案。

    注意

    • 請確保模塊的電源至少為5V 2A,否則圖像上可能會出現水波紋。
    • ESP32 GPIO32引腳用於控制攝像機的電源,因此當攝像機工作時,將GPIO32引腳拉低。
    • 由於IO引腳連接到攝像機XCLK,因此在使用時應懸空,不要將其連接到高/低電平。

    微控制器 串接 感測器 示意圖

    Pin 接線

    • ESP32  5V  –接—  麵包板 5V
    • ESP32  GND  –接–  麵包板 GND
    • ESP32 GPIO26  –接–  光敏電阻感測器(光敏電阻一端接5V,另一端先接1K歐姆電阻再接GND)
    • ESP32 GPIO25  –接– 土壤濕度感測器訊號端Pin
    • ESP32 GPIO32  –接– DHT22 溫濕度感測器的訊號端Pin(這裡需要串接一個4.7歐姆電阻再接5V)
    • ESP32 GPIO16及GPIO17  –接– 繼電器的訊號端Pin

    網站伺服器主機-樹莓派(Raspberry Pi 4 Model B)

    說明

    • 使用 Broadcom 2711 四核心晶片(原本為 BCM2837B0)Quad-core Cortex-A72 64-bit SoC,單核心時脈可達 1.5GHz,和 Pi3B+ 使用的 BCM2837B0 比,有三倍速快。
    • 四種記憶體(LPDDR4 SDRAM)大小可選擇,分別是 1GB, 2GB, 4GB, 和 8GB。
    • 乙太網路(Ethernet)達 True Gigabit Ethernet。
    • 支援藍牙5.0 (Bluetooth 5.0)。
    • 兩個 USB 3.0 和 兩個 USB 2.0。
    • 支援雙銀幕輸出,解析度可達 4K。
    • 使用 VideoCore VI,可支援 OpenGL ES 3.x。
    • 可硬體解 4Kp60 HEVC 影片。

    2.資料傳輸與網路架構

    資料傳輸與網站架構主要是 MQTT 通訊協議

    資料傳輸是物聯網應用的關鍵部分,選擇合適的通訊協議可以提高系統的穩定性與效率。

    unnamed 1. 通訊協議
    • 使用 MQTT(Message Queuing Telemetry Transport) 協議,這是一種輕量級的通訊協議,適合物聯網應用。它可以有效地管理感測器數據的發布與訂閱,使設備之間的數據交換更加高效。
    MySQL.svg 2. 資料存儲與處理
    • 將收集到的感測器數據儲存在雲端資料庫(如 Firebase、MySQL 等),或者使用 NoSQL 資料庫(如 MongoDB),以便於即時存取和分析數據。這裡配合WordPress網站,我使用MySQL資料庫。

    通訊協議 - MQTT

    MQTT 是什麼?

    MQTT 是一種以標準為基礎的訊息傳遞協定或規則集,用於機器對機器的通訊。智慧型感應器、可穿戴裝置和其他物聯網 (IoT) 裝置,通常必須透過頻寬有限的資源受限網路來傳輸和接收資料。這些 IoT 裝置使用 MQTT 進行資料傳輸,因為它易於實作並且可有效地傳輸 IoT 資料。MQTT 支援裝置到雲端和雲端到裝置間的訊息傳遞。

    MQTT 如何運作?

    下面概述了 MQTT 的運作方式。 

    1. MQTT 用戶端與 MQTT 代理程式建立連線。
    2. 連線後,用戶端可發佈訊息、訂閱特定訊息,或兩者兼而有之。
    3. 當 MQTT 代理程式收到訊息時,它會將其轉傳給感興趣的訂閱者。

    我們來分解細節以進一步了解。

    MQTT 主題

    術語「主題」是指 MQTT 代理程式用於針對 MQTT 用戶端篩選訊息的關鍵字。主題依階層整理,類似於檔案或資料夾目錄。例如,假設在多層房屋中運作的智慧型家居系統,每層都有不同的智慧型裝置。在這種情況下,MQTT 代理程式可按以下方式整理主題:

    家/一樓/客廳/燈

    家/一樓/廚房/溫度

    MQTT 發佈

    MQTT 用戶端以位元組格式發佈包含主題和資料的訊息。用戶端確定資料格式,如文字資料、二進位資料、XML 或 JSON 檔案。例如,智慧型家居系統中的一盞燈可能會針對主題客廳/燈,發佈亮起訊息。

    MQTT 訂閱

    MQTT 用戶端向 MQTT 代理程式傳送 SUBSCRIBE 訊息,以接收有關感興趣主題的訊息。此訊息包含不重複識別符和訂閱清單。例如,您手機上的智慧型家居應用程式想要顯示您家中有多少盞燈亮著。它將訂閱主題,並增加所有亮起訊息的計數器。

    MQTT 測試

    最後,這裡我們使用的是免費測試用的test.mosquitto.org:1883 port作為測試MQTT通訊協議的連線運作。

    資料存儲與處理

    資料的來源與傳輸

    在物聯網系統中,資料的來源主要是來自於感應器或設備(如 ESP32),這些感應器會持續監測植物的生長狀況,包括土壤濕度、溫度、光照等參數。這些數據會通過網路傳輸,經由 MQTT 或 HTTP 協議傳輸到您的 WordPress 網站資料庫中。

    資料存儲的選擇

    在 WordPress 環境中,數據存儲通常使用 MySQLMariaDB 資料庫進行。以下是針對資料存儲的具體設計:

    • 建立自訂資料表:儘管 WordPress 自帶的資料表結構主要用於文章、頁面、用戶等內容的存儲,但您可以根據物聯網應用的需求,為植物監控系統建立自訂的資料表。例如,您可以創建一個資料表來存儲感應器讀取到的數據,欄位包括 設備 ID讀取的時間土壤濕度環境溫度光照強度 等。
    • 資料表的設計:為了確保數據存儲的效率和檢索的方便,應考慮數據表的索引設置以及資料格式的選擇。時間戳和設備 ID 應設置為主要索引鍵,這樣可以加快資料檢索的速度。
    資料的寫入與處理

    當數據從感應器傳輸到網站時,需要處理這些數據並進行儲存。可以通過以下步驟來完成這個過程:

    • 這裡我使用Node-RED的mysql節點(node-red-node-mysql)進行資料傳輸:當物聯網設備(如 ESP32)將數據透過MQTT傳輸時,Node-RED接收這些數據,並使用node-red-node-mysql節點判斷,將資訊新增到MySQL資料庫欄位中。每當 ESP32 傳送一組植物生長的數據,MQTT會透過 Node-RED 將這些數據提交給後端,並將數據寫入到 MySQL 資料庫的自訂表中。
    • 資料校驗與過濾:在寫入數據之前,應當進行資料的校驗與過濾,確保資料的完整性與準確性。例如,檢查讀取值是否在合理範圍內,防止感應器故障導致的錯誤數據進入系統。
    資料處理與分析

    儲存數據的同時,後端應提供對這些數據的即時處理和歷史數據的分析功能。可以通過以下方式進行資料處理:

    • 即時處理:使用後端的 PHP 程式來處理即時數據,根據用戶的需求將即時監測到的數據展示在前端儀表板上。比如將當前的土壤濕度、溫度等數據即時更新到用戶的界面上。
    • 歷史數據分析:系統應支援資料的長期儲存和分析功能。透過資料庫中的時間戳記,您可以分析過去一段時間內的數據變化,生成趨勢圖或報告。這可以幫助用戶了解植物的長期生長狀況,並進行相應的調整。
    資料展示與視覺化

    資料展示是用戶體驗中的關鍵部分,通過視覺化的方式可以更好地幫助用戶理解數據。

    • 數據圖表展示:使用 WordPress 的資料可視化插件(如 VisualizerwpDataTables),將存儲在資料庫中的數據以圖表、折線圖等方式呈現,讓用戶可以直觀地了解植物的成長狀況。
    • 儀表板設計:設計一個用戶友好的儀表板,展示各個感應器的即時數據和趨勢圖,例如土壤濕度的即時讀數以及最近一週的變化趨勢。使用像 Elementor 這樣的頁面設計工具,幫助快速構建美觀的用戶界面。
    資料備份與恢復

    最後,為了確保系統的穩定性與安全性,應該定期對資料進行備份。可以透過 WordPress 外掛如 UpdraftPlus 進行自動備份,確保數據不會因意外丟失。

    3.網站開發與設計

    網站開發與設計主要核心是WordPress

    網站是用戶進行數據監控和管理的主要介面,您需要建立一個友好且直觀的網站來展示和分析植物生長的數據。使用 WordPress 的好處在於,它是一個靈活且易於擴展的平台,並且擁有豐富的插件和主題資源,能夠快速構建並整合各種物聯網應用。

    wordpress 1. WordPress 安裝與配置
    • 選擇主機與安裝:選擇合適的主機(如 Hostinger、Bluehost 或其他支持 WordPress 的主機),這裡我選擇自架雲端主機,然後安裝最新版本的 WordPress。
    • 選擇合適的主題:選擇一個簡潔且適合物聯網應用的 WordPress 主題,例如 Elementor、Astra 或 GeneratePress,這些主題支持高度的自定義並能夠提供優秀的用戶體驗。
    plugin 2. 使用外掛進行物聯網整合
    • REST API 整合外掛:使用 WP REST API 外掛來建立與物聯網設備之間的通訊接口,這樣可以接收來自感應器的數據並將其顯示在網站上。
    • MQTT 外掛整合:安裝類似 MQTT for WordPress 或其他支持 MQTT 通訊協議的外掛,使您的 WordPress 網站能夠與 ESP32 等物聯網設備進行即時數據交換。
    • 自己開發外掛:因為找到不上面兩項建議的外掛整合,所以這裡我會自己撰寫類似的功能,跟物聯網架構整合,下面會一步步介紹我是如何開發。
    database-management 3. 資料庫管理
    • 資料儲存優化:使用 WordPress 自帶的資料庫(通常是 MySQL)來管理來自物聯網設備的數據,並利用外掛如 WP Data Access 來輕鬆存取和顯示數據
    • 數據圖表與視覺化:使用外掛如 Visualizer: Tables and Charts Manager for WordPress 或 wpDataTables,將植物生長數據以圖表或圖形的方式顯示在網站頁面上,提供用戶直觀的資料視覺化效果。
    tablet 4. 即時數據顯示與控制
    • 自訂儀表板(Dashboard):使用 Elementor 或 Beaver Builder 等 WordPress 頁面編輯器設計一個自訂的用戶儀表板,展示植物的即時狀況,包括溫度、濕度、光照強度等數據。
    • 用戶遠端控制功能:設計用戶可操作的界面,通過 WordPress 表單外掛如 Contact Form 7 或 Gravity Forms,讓用戶能夠遠端控制灌溉系統或調整植物照明設置。
    verified 5. 安全與效能優化
    • 安全性外掛:安裝 Wordfence Security 或 Sucuri Security 外掛來保護網站安全,防止駭客攻擊或資料外洩。
    • 網站加速優化:使用快取外掛如 W3 Total Cache 或 LiteSpeed Cache 來提升網站的載入速度,提供流暢的用戶體驗。

    WordPress 安裝與配置

    WordPress是什麼?

    WordPress 是全球知名的網頁設計軟體,全球有 40 % 以上的網站,都來自於 WordPress

    擁有上萬個佈景主題(樣板)和功能外掛,只需一鍵安裝即可成為多功能網站。

    WordPress 可完成多種網頁設計,如:部落格架設、個人品牌或公司企業官網、購物網站架設 等 ..

    最大好處是,它是免費開源的軟體,可完全掌握自己網站資料,不需被任何網路平台、網頁設計公司牽制。

    且不會因為任一網頁製作平台的營運問題,造成網站消失(舉例來說,無名小站結束營運,原來的內容也隨著關站而消失,但這不會發生在 WordPress 身上)。

    選擇主機與安裝

    選擇合適的主機(如 Hostinger、Bluehost 或其他支持 WordPress 的主機),這裡我選擇自架雲端主機,然後安裝最新版本的 WordPress。自架主機我是以樹莓派(Raspberry Pi)做為網站伺服器主機,首先會在樹莓派上灌Raspberry Pi OS作業總統,接著在上面灌Docker,然後再分別灌上WordPress、MySQL、Node-RED。

    選擇合適的主題

    選擇一個簡潔且適合物聯網應用的 WordPress 主題,例如 Elementor、Astra 或 GeneratePress,這些主題支持高度的自定義並能夠提供優秀的用戶體驗。

    這邊我個人習慣用Astra當作網站的主題,頁面編輯器我使用Elementor、因為需要將自己的php程式放置在頁面裡,所以我需要使用Insert PHP Code Snippet這個外掛,方便我可以將自己寫好的php code 放置在頁面中。另外,因物聯網的數據透過MQTT上傳到Node-RED後,再寫入MySQL資料庫,而前端的WordPress要即時優化資料庫的數據,所以需要另外安裝AJAX這樣功能可以實現即時更新數據的外掛。

    使用外掛進行物聯網整合

    • REST API 整合外掛:使用 WP REST API 外掛來建立與物聯網設備之間的通訊接口,這樣可以接收來自感應器的數據並將其顯示在網站上。
    • MQTT 外掛整合:安裝類似 MQTT for WordPress 或其他支持 MQTT 通訊協議的外掛,使您的 WordPress 網站能夠與 ESP32 等物聯網設備進行即時數據交換。
    • 自己開發外掛:因為找到不上面兩項建議的外掛整合,所以這裡我會自己撰寫類似的功能,跟物聯網架構整合,下面會一步步介紹我是如何開發。

    上面三點中的前二點是我問AI的回覆,而我自己則是用第三點建議,自己寫外掛,再配合自己寫的php程式,利用外掛將自己寫的php程式放在頁面中及/var/www/html/目錄下,然後做到物聯網跟WordPress網站的整合。

    大致的作法為在安裝WordPress後,在它的外掛目錄下,自己新增一個資料夾,作為安裝MQTTClient程式用。我們會在該目錄下用composer來建立。待建立完成後,接著會將MQTTClient函式庫放在phpMQTT.php程式中。最後就是像物聯網端呼叫MQTT一樣,我們也另外再寫php程式,呼叫MQTTClient。可以利用在WordPress上的按鈕,當按下該按鈕後,它會呼叫phpMQTT.php程式,然後下命令給物聯網端,最後啟動繼電器開關。

    資料庫管理

    資料儲存優化

    物聯網數據傳輸到WordPress自帶的資料庫(通常是MySQL)資料表。因若是要檢視資料庫資料,需要另安裝phpMyAdmin來檢視編輯MySQL上的資料欄位。如下圖示:

    只是一般的使用者或未學過資料庫語言的朋友,應該會不知所措。且若是操作不當,很容易變更了資料庫端的設定,造成無法恢復就不好了。

    所以一般我們會在 WordPress 的外掛中,安裝 WP Data Access ,來存取和顯示數據。

    數據圖表與視覺化

    使用外掛如 Visualizer: Tables and Charts Manager for WordPress 或 wpDataTables,將植物生長數據以圖表或圖形的方式顯示在網站頁面上,提供用戶直觀的資料視覺化效果。

    Visualizer: Tables and Charts Manager for WordPress

    wpDataTables

    即時數據顯示與控制

    即時數據顯示與控制是智慧物聯網應用中的重要功能,讓使用者可以不間斷地監控植物生長環境中的各項數據(如溫度、濕度、光照強度等),並可以通過網頁界面即時控制相關設備(如灑水系統、燈光控制等)。以下是這個系統的作業內容:

    即時數據顯示

    即時數據顯示的目標是確保網站頁面能夠持續不斷地更新感測器的數據,而不需要使用者手動刷新網頁。

    • 技術架構:使用 AJAX 技術或 WebSocket 來實現即時數據更新。這兩種技術都能夠在後端接收到新的數據時,自動推送到前端頁面,並且在不重新載入整個頁面的情況下更新數據。
      • AJAX:它可以在定期(如每隔幾秒)發送後台請求以檢查是否有新的數據需要更新,適合即時性要求沒那麼高的情況。
    • 數據呈現:透過直觀的圖表或儀表板來展示感測器數據。使用 圖表外掛(如 Visualizer: Tables and Charts Manager for WordPress 或 wpDataTables、WP DataTables 等)來將數據可視化。這樣,使用者可以在瀏覽器中直觀地看到溫度、濕度、光照等變化情況。
    遠端控制功能

    遠端控制功能允許使用者從網站上對各種設備進行即時操作,無論身處何地,都能通過網站來控制灑水系統、調整溫控設備、控制燈光等。

    • 控制指令傳輸:控制指令同樣通過 AJAX 或 WebSocket 傳輸到物聯網設備。使用者點擊網站上的控制按鈕後,系統會通過 API 或 MQTT 協議將指令傳輸到 ESP32 或其他物聯網裝置,從而實現設備的即時反應。
      • API 工具:網站前端通過 MQTTClient 發送控制命令至後端伺服器,後端伺服器再將這些命令轉發給物聯網設備。
      • MQTT 協議:MQTT 是一種輕量級的物聯網通信協議,適合於即時控制和低功耗設備。透過 MQTTClient,網站可直接將控制指令發送至設備所在的 MQTT Broker,然後設備根據接收到的指令執行相應操作。
    使用者介面(UI/UX)

    為了使數據顯示和控制更加人性化,介面設計必須簡潔明瞭,方便使用者快速查閱數據或控制設備。

    • 儀表板界面:即時數據顯示通常使用儀表板風格的界面,讓使用者能夠一次性查看所有關鍵數據,並能直接進行設備的控制。
    • 響應式設計:確保網站可以在桌面電腦、手機或平板電腦上自動調整介面,方便使用者隨時隨地管理設備和查看數據。
    數據推送通知

    除了在網站上即時查看數據和進行控制外,還可以設計一個數據推送系統,當某些數據超過設定的範圍時,自動向使用者推送通知(例如:溫度過高、濕度過低等情況)。

    • Email 或 Line 推送:通過 API 或第三方服務(如Node-RED上的E-mail節點或是LINE Notify節點等),將關鍵警報通過郵件或Line推送給使用者。
    • 網頁即時通知:可以設計成網站自動彈出通知,提醒使用者設備的異常數據,並引導其進行操作。
    設備故障診斷

    如果感測器或控制設備出現異常,系統可以通過自動診斷功能,提供即時反饋並顯示錯誤訊息。

    • 設備狀態監控:除了數據顯示,系統也應該具備監測各設備的運行狀態功能。一旦某設備失去響應或故障,系統將通知使用者進行排查。

    安全與效能優化

    安全性外掛

    安裝 Wordfence Security 或 Sucuri Security 外掛來保護網站安全,防止駭客攻擊或資料外洩。

    • Wordfence Security:WordFence Security 是一款 WordPress 非常熱門的安全性外掛(高達 500w 次下載),提供多種網站資安防護,幫助站長抵擋外來的惡意攻擊。更多完整 WordFence 資安教學。
      • 網站防火牆(Web Application Firewall,簡稱 WAF)
      • 惡意軟體掃描(網站漏洞掃描)
      • 後台登錄防護
      • 多種資安控管功能

    • Sucuri Security:Sucuri Security 提供下列功能:
      • 網站安全監測 – 可以記錄網站的活動或者與網站安全相關的事件。
      • 安全通知 –可以根據需求來設定需要安全通知的事件。
      • 深層惡意軟件掃描 –藉由資料庫的資料掃瞄惡意的軟件。
      • 雲端防火牆(付費) – Sucuri 是採用雲端防火牆,可以從遠端過濾並清理惡意的流量。
    網站加速優化

    用快取外掛如 W3 Total Cache 或 LiteSpeed Cache 來提升網站的載入速度,提供流暢的用戶體驗。

    • LiteSpeed Cache:LiteSpeed Cache 縮寫為 LSCache,設定 LiteSpeed Cache 前,我們應先了解 Cache 是什麼,才能更清楚知道 LiteSpeed Cache 這些設定的作用。Cache (快取)用來緩存一份您的網站在主機空間裡,讓網站訪客想再次瀏覽您的網站時,主機能夠找到已緩存的網站資料,並更快速的加載頁面。如果主機沒有 Cache (快取),那當網站訪客再度拜訪時,主機就要一次又一次的加載整個網站後才能讓訪客瀏覽,不僅浪費主機資源,也會導致網站訪客需耗費長時間載入網站頁面。透過 LiteSpeed Cache 可優化網站程式碼、圖片與資料庫等等,來降低主機資源的耗用,提升網站加載速度!
    • W3 Total Cache:W3 Total Cache是最受歡迎的WordPress緩存外掛之一,它之所以出色,是因為它完全免費。您可以獲得所有需要的功能,而無需支付任何升級費用。它還可以與CDN(內容傳遞網絡)集成,有助於將您的網站內容分發到全球不同的服務器,使世界各地的人們更快地訪問您的網站。

    4.物聯網整合

    物聯網整合要了解Arduino IDE、ESP32、Node-RED及基本的程式語言

    為了使您的網站能夠與物聯網裝置進行無縫整合,您需要進行以下配置:

    remote-access 1. 設備連接與控制
    • 配置微控制器(如 ESP32)連接到 Wi-Fi 網路,並將它設計成能自動將感應器數據發送到網站後端。
    • 利用 API 接口,實現從網站到設備的雙向控制功能,比如遠程開關澆水系統或調節光照強度。
    system-integration 2. 智能自動化
    • 實現自動化控制邏輯,例如當土壤濕度低於某個值時,自動啟動灌溉系統。
    • 利用機器學習技術分析歷史數據,預測植物未來的需求,並提出智能化的建議。

    設備連接與控制

    1.設備連接

    設備連接是物聯網系統的基礎,指的是網站與各種感測器和控制器之間建立穩定的數據傳輸通道。植物監控系統需要連接各種物聯網設備(如溫度、濕度感測器,光照傳感器,水泵控制器等),以獲取實時數據並控制操作。

    • 感測器數據傳輸:每個感測器通過無線或有線的方式將其收集到的數據傳輸到系統伺服器或雲端伺服器。這可以通過 Wi-Fi 或其他低功耗通信協議(如 LoRa、Zigbee 等)實現。
      • ESP32:在此架構中,ESP32 是一個核心元件,它能夠收集感測器數據,並通過 Wi-Fi 將這些數據傳送到雲端伺服器或網站後台。下面我列出用Arduino IDE開發工具撰寫的部分程式碼參考。
      • MQTT 通訊:在這個過程中,MQTT 協議是一個理想的選擇,它能夠通過發布/訂閱模式進行輕量級的數據傳輸,保證感測器數據能夠及時傳送到後台。下面是在Node-RED上處理MQTT得到數據後的處理流程函式。
      • 資料庫:物聯網數據經由MQTT上傳到Node-RED後,再由函式庫判斷處理,最後將數據新增到WordPress後台的資料庫。
    • 控制器操作:除了收集感測器數據,網站還能夠遠程控制設備,進行操作如灑水、開啟/關閉植物照明設備等。這部分的控制同樣通過設備連接通道(如 Wi-Fi)來實現。
      • 網站發送控制指令:當使用者在網站上進行操作,網站將通過 MQTT 協議或 REST API 將控制指令發送給 ESP32,然後由 ESP32 觸發相應的硬件控制,如開啟灑水系統或調整燈光亮度。
    2.連接架構
    • 網站後端與物聯網設備之間的連接:網站後台需要通過 MQTT或MQTTClient 或其他 API 接口來實現與物聯網設備的即時數據交換。伺服器定期從設備獲取數據,並將控制指令發送回設備。 
      • 雙向通信:ESP32 之類的控制器能夠發送數據到網站,網站也可以向其發送控制指令,實現雙向即時通信。
    • 即時監控與通知:設備連接還涉及到即時的狀態監控和通知功能,一旦連接出現中斷或故障,系統將通知管理者進行排查。

    下面是在WordPress網站中,將自己撰寫的php程式碼,可以在使用者按下按鈕後,去呼叫MQTTClient API的片斷程式碼。

    智能自動化

    智能自動化是物聯網架構的一大優勢,能夠在不需要人工干預的情況下,自動執行預設的操作。智慧植物監控系統中的智能自動化功能能讓使用者預設觸發條件,並根據這些條件自動執行相應操作,從而提升管理效率並確保植物在最適宜的環境下生長。

    1.自動化條件設定
    • 基於感測器數據的自動控制:系統可以根據感測器提供的數據,自動執行特定操作。例如:
      • 溫度控制:如果溫度感測器檢測到溫度超過或低於設定範圍,系統可以自動啟動風扇或加熱設備,調整環境溫度。
      • 灑水系統:當濕度感測器檢測到土壤濕度低於某一閾值時,系統可以自動開啟灑水系統,進行自動灌溉。
    • 時間排程控制:使用者可以在網站上設定時間排程,使系統在特定時間自動進行操作。這特別適合於植物生長所需的光照控制或灑水控制等操作。例如:
      • 自動光照:系統可以根據預設的排程,自動開啟或關閉植物照明燈,以確保植物獲得足夠的光照時間。
    2.智能決策與自學習
    • 規則引擎:網站後端的規則引擎允許使用者設定不同的規則,系統會根據這些規則來自動調整設備。例如,在監控濕度、溫度和光照強度時,系統根據感測器數據的綜合評估來決定是否需要啟動或停止某些設備。
    • 自學習與調整:高階系統甚至可以利用人工智能和機器學習來分析歷史數據,並自動調整最佳操作。例如,系統會根據過去的數據來優化灌溉時間,從而實現精準灌溉,避免浪費水資源。
    3.自動警報系統
    • 異常情況自動報警:當系統檢測到設備或感測器異常(如設備無法正常運行,或數據顯示異常情況)時,系統會自動向使用者發送報警通知,提醒及時處理問題。
      • 報警通知可以通過手機推送、電子郵件、Line等多種方式進行,以確保使用者在異常情況發生時能夠及時響應。
    4.整合智慧語音助手
    • 語音控制功能:通過整合智慧語音助手(如 Google Assistant 或 Amazon Alexa),使用者可以使用語音指令來控制系統中的設備。例如,說出「開啟灑水系統」或「關閉燈光」的指令,語音助手將通過網站將這些指令傳輸到物聯網設備,執行相應的操作。

    5.用戶體驗與優化

    用戶體驗與優化可以進一步將產品推廣到更多層面

    為了提高用戶體驗和增加用戶的使用黏性,可以考慮以下的功能設計:

    notification 1. 用戶通知
    • 提供即時通知功能,如植物需要澆水、光照不足或溫度異常時,自動發送提醒到用戶的手機或郵件。
    customer-analysis 2. 歷史數據與報告
    • 提供詳細的數據歷史記錄和分析報告,讓用戶了解植物在不同環境條件下的生長情況,並為未來的種植提供參考。
    social-media 3. 社群功能
    • 建立一個用戶社群平台,讓使用者能夠分享他們的植物生長經驗和問題,並向其他用戶請教解決方法。

    用戶體驗與優化 是智慧植物監控物聯網網站的重要部分,直接關係到使用者如何與網站互動,並確保使用者可以順暢、直觀地操作系統,獲取他們需要的數據或功能。下面我們來詳細說明 用戶通知歷史數據與報告 以及 社群功能 這三個主要方面。

    用戶通知

    用戶通知 功能在物聯網系統中至關重要,旨在即時向使用者傳遞重要信息,確保他們能夠及時了解植物的生長狀況或系統的異常情況。

    1.1 即時通知
    • 當系統檢測到異常狀況(例如溫度過高、濕度過低或設備故障)時,系統會立即向使用者發送通知,提醒其進行相應的操作或檢查。
    • 通知方式可以包括:
      • 電子郵件:當發生重大事件或需要注意的情況時,系統會發送電子郵件到用戶綁定的郵箱,提供詳細的異常信息。
      • Line通知:對於緊急狀況,系統可以發送Line給用戶,以保證及時收到關鍵信息。
    1.2 自訂通知設定
    • 使用者可以根據自身需求,自訂接收通知的條件和方式。例如:
      • 設定當溫度超過某一範圍時才收到通知,或當植物生長進入某個階段時收到系統提示。
      • 設定不同類型的通知接收方式,如僅當發生緊急情況時接收簡訊通知,而日常信息則通過電子郵件傳遞。
    1.3 通知日誌
    • 所有的通知都會被記錄在網站的後台,使用者可以查看過去的通知日誌,方便追蹤和分析歷史事件。這也有助於診斷問題和制定後續的優化方案。

    歷史數據與報告

    歷史數據與報告 功能讓使用者能夠查看並分析長期累積的數據,從而了解植物的生長趨勢和環境變化,為未來的管理和決策提供依據。

    2.1 數據存儲與視覺化
    • 數據存儲:系統會將每個感測器所收集的數據(如溫度、濕度、光照強度等)以時間為軸進行存儲,並保存在資料庫中。這些數據可以長期保存,供未來參考。
    • 數據視覺化:網站會以圖表的形式呈現歷史數據,例如折線圖、柱狀圖或餅圖,讓使用者可以直觀地查看不同時間段的數據變化,從而掌握植物的生長條件和趨勢。
      • 趨勢分析:使用者可以根據這些圖表來查看特定時間段內的環境變化,如溫度的上升或下降、濕度的變動等,並通過趨勢預測來制定未來的管理計劃。
    2.2 自訂數據範圍與報告
    • 篩選歷史數據:使用者可以選擇特定的時間範圍來查看數據,例如選擇過去一週、過去一個月或某一具體時間段的數據,以便更準確地進行分析。
    • 生成報告:系統可以根據歷史數據生成報告,這些報告包括環境數據的變動情況、植物的生長記錄以及系統的運行狀態等。報告可以是 PDF 格式或其他數字格式,供使用者下載或分享。
    2.3 分析與預測功能
    • 高階的數據分析功能可以利用人工智能或機器學習技術,對過去的數據進行深入分析,並提供未來的趨勢預測。例如:
      • 灌溉需求預測:根據過去的濕度數據,系統可以預測未來幾天內可能需要進行灌溉的時間。
      • 生長條件建議:系統可以根據數據提供最佳的生長條件建議,如調整光照時間、溫度控制等。

    社群功能

    社群功能 可以幫助使用者在網站上互動和交流,分享經驗與知識,並建立一個關於植物養護與物聯網應用的社群,進一步提升用戶的參與感和忠誠度。

    3.1 使用者互動
    • 討論區或留言板:網站可以設置討論區或留言板,讓使用者分享他們的植物養護經驗、技術問題以及使用物聯網設備的心得。
      • 經驗分享:例如,某些使用者可以分享他們如何利用系統的自動化功能來優化植物生長,或如何解決設備連接中的常見問題。
      • 問題解答:初學者可以在討論區提問,其他有經驗的使用者或管理者可以提供解答,形成知識共享。
    3.2 設備與技術分享
    • DIY 設備製作:某些進階使用者可以在社群內分享他們的 DIY 物聯網設備方案,展示如何自製感測器、控制器,甚至是改進現有的系統。
      • 使用者可以上傳圖片、影片等,展示他們的改進或創新應用,進一步促進創意的流通。
    3.3 評價與反饋機制
    • 產品評價:使用者可以對系統中的設備或功能進行評價,這些評價能幫助系統開發者不斷改進系統,優化使用體驗。
    • 功能建議:使用者還可以提出他們的建議,系統開發者可以根據這些建議來進行功能的迭代和更新。例如,如果很多人希望增加特定的自動化功能或更詳細的數據報告,開發團隊可以考慮進行升級。
    3.4 社交媒體整合
    • 網站可以與其他社交媒體平台整合,讓使用者輕鬆地將他們的監控結果、植物生長的照片或系統的操作視頻分享到 Facebook、Instagram 等社交平台。這有助於提高網站的曝光度,吸引更多使用者加入。
    3.5 成就系統與排行榜
    • 成就獎勵系統:可以設置一個成就系統,當使用者完成特定操作或達成特定目標(如種植某種類型的植物、使用自動化功能超過一定次數等),他們將獲得相應的成就徽章。
    • 排行榜功能:使用者可以互相比較植物生長的狀況、系統使用的頻率或其他數據,透過排行榜的方式激發使用者之間的良性競爭,增強他們的參與感。

    6.行銷推廣與商業化

    行銷推廣與商業化是開發產品的最終目標

    為了讓您的網站能夠吸引更多的使用者,並將其商業化,可以考慮以下策略:

    seo 1. 行銷策略
    • 在社交媒體平台如 Facebook、Instagram 和 LinkedIn 上進行推廣,增加網站曝光率。
    • 撰寫物聯網與植物監測相關的博客文章,提高網站 SEO 排名,吸引更多有機流量。
    feature 2. 產品套餐
    • 提供不同層級的服務套餐,如基礎版、高級版與專業版,以滿足不同用戶的需求。
    • 針對 B2B 客戶,提供客製化的植物監控解決方案。

    行銷策略和產品套餐是智慧植物監控網站商業化的兩個核心部分,這兩者有助於提高產品的市場認知度、吸引潛在客戶並最終促進銷售。以下就行銷策略產品套餐分別詳細分析這兩個要點。

    行銷策略

    行銷策略是針對智慧植物監控網站進行市場推廣的計劃,目的是讓更多的人了解該產品的價值,並且吸引潛在客戶購買或使用該產品。以下是幾個關鍵行銷策略的具體操作和優化方向:

    1.1 目標市場與客戶分析
    • 目標市場:首先要清楚識別出產品的目標客戶群體。智慧植物監控網站的潛在用戶可能包括:

      • 專業或業餘的植物愛好者、園藝師
      • 農業經營者(尤其是溫室農業、都市農業等)
      • 生態環保領域的研究人員或專業人士
      • 智慧家居愛好者
      • 物聯網技術的開發者和愛好者

      對這些目標群體進行深入分析,瞭解他們的需求、興趣以及購買行為,可以幫助制定更精確的行銷活動。

    1.2 內容行銷
    • 部落格與文章撰寫:在網站上或其他相關平台上撰寫高質量的內容,分享植物養護知識、物聯網技術應用、成功案例等,吸引有興趣的讀者。透過SEO優化和關鍵字佈局,讓內容更容易被搜索到,並為網站引入潛在的流量。
    • 影片行銷:製作教學影片,展示如何利用該系統監控植物生長、調整環境條件或實現自動化功能。這類影片可以發佈在YouTube、Instagram或其他社交媒體平台上,藉此吸引潛在客戶的注意力。
    • 案例分享:分享實際使用系統的成功案例或用戶的正面反饋,提升產品的公信力,讓潛在客戶更容易接受和信任該產品。
    1.3 社群行銷
    • 社群媒體活動:在 Facebook、Instagram、Twitter 等社交媒體平台上建立官方帳號,並定期發布產品信息、技術文章和用戶互動,吸引更多潛在用戶關注。也可以舉辦線上活動或比賽,激發用戶的參與感,如分享植物生長照片或監控系統的應用視頻等。
    • 合作推廣:與物聯網、園藝、智慧家居領域的意見領袖 (KOL) 或影響者 (influencers) 合作,透過他們的受眾群體來擴大產品的知名度,這有助於快速提高品牌的曝光率。
    1.4 付費廣告與關鍵字投放
    • Google Ads 與 Facebook Ads:利用付費廣告來精確定位目標客戶。透過設定特定的關鍵字或興趣標籤,可以將廣告推送給更精確的用戶群體,如「物聯網」、「智慧家居」、「植物監控」等。
    • SEO 優化:提升網站的搜索引擎排名,讓潛在客戶更容易在 Google 等搜索引擎中找到你的產品或網站。可以利用物聯網、智慧農業、植物養護等相關關鍵字進行SEO優化,吸引自然流量。

    產品套餐

    產品套餐指的是針對不同用戶需求,提供多樣化的產品方案,讓用戶可以選擇最適合他們的購買計劃,這也有助於提升銷售轉換率。以下是設計產品套餐時的具體考量:

    2.1 多層次的產品方案

    根據不同的客戶需求,提供從基礎到高階的不同產品方案,讓每位客戶都能夠找到符合他們需求和預算的選擇。例如:

    • 基礎版套餐

      • 適合初學者或小規模應用者,提供簡單的植物監控系統,包含基本的感測器(如溫度、濕度感測器),以及基礎的數據顯示功能。
      • 價格親民,吸引對智慧植物監控有初步興趣的用戶。
    • 進階版套餐

      • 適合有一定需求的植物愛好者或小型農業經營者,包含更多種類的感測器(如光照、土壤濕度、PH值等),並支持自動灌溉和環境控制的自動化功能。
      • 進階版會有更完整的數據視覺化功能,並且可能提供更多歷史數據的儲存和分析功能。
    • 專業版套餐

      • 適合大型農業經營者或研究機構,提供全套的監控與控制系統,包含高精度感測器、自動化灌溉與環境控制、智能通知功能,甚至還可以整合 AI 分析和機器學習模型來進行未來生長趨勢的預測。
      • 此外,專業版會有大規模的數據存儲空間、專屬的技術支持以及定制化的功能設置。
    2.2 產品組合與附加服務

    除了基本的套餐方案,還可以提供附加的硬體設備或服務,增強產品的吸引力:

    • 硬體組合包

      • 提供植物監控所需的感測器、微控制器(如 ESP32)、無線網絡模組等設備的硬體包,讓用戶可以輕鬆購買整套系統。
      • 不同的用戶可以根據需求購買不同數量或種類的感測器,如多組感測器適合大面積的農田監控,而單組感測器適合小型植物園或居家使用。
    • 雲端服務

      • 提供基於訂閱制的雲端數據儲存與處理服務,讓使用者可以安全、方便地存取大量歷史數據,並透過雲端進行數據分析和報告生成。
      • 這類附加服務可以按月或按年收費,進一步增加產品的長期收益。
    2.3 價格策略
    • 分層定價:根據不同的功能級別和客戶需求進行分層定價,讓使用者可以靈活選擇符合預算和需求的方案。
    • 促銷與優惠:針對特定時間段或活動(如黑五、雙11等)推出優惠折扣,吸引潛在客戶購買,或者提供首月免費試用的服務,以降低用戶的嘗試門檻,提升轉換率。
    2.4 售後服務與技術支持
    • 提供完善的售後服務和技術支持,幫助客戶解決在使用過程中的問題。
    • 高階方案的客戶可以享有 VIP 支持服務,包含24小時的技術協助、專屬客服和定期的系統更新,這有助於提高客戶的忠誠度。

    總結

    架設一個智慧植物生長監控網站平台,是將物聯網技術與網站系統結合,提供用戶即時掌握植物生長狀況的高效解決方案。總結以下幾個主要步驟和要點:

    1. 硬體準備與感測器連接:首先,準備所需的硬體設備,如ESP32微控制器和各種感測器(溫度、濕度、光照等)。這些感測器將收集植物環境中的關鍵數據,並透過物聯網技術傳送到伺服器或雲端。

    2. 資料傳輸與儲存:透過通訊協議(如MQTT),感測器收集的數據會被傳輸到後端伺服器或雲端資料庫進行儲存與處理。確保選擇可靠且具備擴展性的資料庫架構,以便儲存大量即時數據。

    3. WordPress網站設計與整合:使用WordPress作為網站架設的基礎平台,並透過相關的外掛實現即時數據更新和呈現。可以運用AJAX技術實現即時數據顯示,讓用戶無需重新載入網頁即可查看最新的植物數據。

    4. 即時數據顯示與自動化控制:在網站前端顯示各種感測器收集到的數據,如植物周圍的溫度、濕度等,並加入自動化控制功能,如自動灌溉或調整環境條件,從而提升系統的智能化。

    5. 用戶體驗與行銷推廣:透過用戶通知、歷史數據分析和社群分享等功能,提升網站的互動性與易用性,並藉由行銷推廣和產品套餐設計,吸引更多潛在用戶了解與購買該系統。

    整體來說,架設植物生長監控網站平台的過程不僅涉及到物聯網設備與資料處理的整合,還需要透過網站技術來實現數據的即時呈現和控制功能。通過合理的設計與架構,這樣的系統可以有效提升植物管理的智能化,讓用戶輕鬆掌握植物生長狀況並進行適時調控,最終實現智慧農業或園藝的目標。

    返回頂端