可視化 Arduino 或 ESP 感測器資料的 5 種方法
對於深入探索令人興奮的 DIY IoT 世界的用戶來說,他們經常發現的一個常見挑戰是如何使用行動應用程式或網頁瀏覽器有效地視覺化其客製化裝置產生的數據。這些設備通常圍繞著 Arduino 或 ESP 板構建,使製造商能夠為各種應用打造創新的解決方案。然而,難題中缺少的一部分是找到一種簡單、直接且可靠的方法來視覺化感測器資料並與感測器資料互動。
想像一下,您的設備正在使用 ESP32 設備控制濕度,並且您希望能夠相當快速地即時可視化數據,以便您可以根據特定事件採取行動。嗯,發布感測器數據的方法有很多。有些需要時間,有些則需要更快的設定。在這篇文章中,我們將介紹五種最常見的方法,描述它們的優點和限制。我們將推出 Arduino Cloud,作為一種易於使用的物聯網解決方案,適合所有技能等級且零維護。
5種最常見的物聯網資料視覺化方法
1. 使用行動應用程式視覺化透過藍牙連接的數據
藍牙是將物聯網設備連接到行動應用程式的熱門選擇。用戶可以建立藍牙連接,將資料從物聯網設備發送到行動應用程序,並即時視覺化。
有許多專門為此目的而設計的行動應用程式和庫的範例。
對於中等技能的程式設計師來說,遵循其中一些範例可能很容易,但當需要更高級的視覺化解決方案時,可能會變得有點棘手。如果您需要自訂儀表板,即用型應用程式過於通用且不夠靈活。
本地解決方案(例如藍牙)要求您在實體上靠近物聯網設備才能存取數據,這限制了遠端監控和控制。
2. 在設備中嵌入Web伺服器
在 IoT 裝置中嵌入 Web 伺服器,您可以使用 Web 瀏覽器視覺化資料。它要求設備具有網路連接,通常透過將設備連接到 Wi-Fi 接入點或設備創建自己的 WiFi 熱點來實現。
儘管可以創建自己的 Web 伺服器實現,但最廣泛的解決方案之一是使用ESPAsyncWebServer庫。它允許您的 IoT 裝置提供顯示資料的自訂 HTML 頁面。這是一個非常靈活且可自訂的解決方案,但很複雜且最適合熟練的用戶。
有很多富有洞察力的例子,如下所示:
- ESP32 Web 伺服器 – Arduino IDE | 隨機書呆子教程
- Arduino 專案中心 – NodeMCU ESP8266 AJAX 支援的 Web 伺服器
- Arduino 專案中心 – WiFi 機器人汽車/遙控汽車 NodeMCU Web 伺服器
- ESP32 Web 伺服器:在儀表中顯示感測器讀數 | 隨機書呆子教程
此解決方案的範圍通常是本地的 – 您需要與設備位於同一網路上 – 儘管透過在路由器中啟用連接埠轉送進行更高級的配置,可以從任何地方遠端存取設備。
主要優點之一是其低延遲,因為網頁中顯示的資料直接來自設備,無需任何處理。
另一方面,它是一個需要較高程式設計技能等級的解決方案,此外,由於韌體的不變性,儀表板中的每次變更都需要程式碼重新編譯和韌體重新刷新。
此外,在裝置中嵌入網頁伺服器或藍牙堆疊可能會佔用大量資源。這可能會限制設備的功能或需要更強大的微控制器,從而增加成本和複雜性。
3. 將資料傳送到具有繪圖功能的外部系統
IoT 設備可以使用不同的協定(例如 MQTT 或 HTTP)將資料傳送到外部系統。雖然基於 HTTP 的實現有很多,但基於 MQTT 的實現是最受歡迎的,並且由於其輕量級、高效和發布訂閱模型,它已成為物聯網通信事實上的標準,非常適合資源受限的設備和可擴展的即時物聯網應用程式。
向外部系統發送資料依賴外部基礎設施。至少需要以下組件:
- 接收(並在需要時儲存)資料的伺服器
- 實作允許使用者存取和視覺化資料的應用程式的 Web 伺服器
這兩個組件可以運作在同一台機器上,也可以運作在不同的機器上。這些機器通常可以是自架或雲端託管。
- 自託管平台:您擁有基礎設施(通常在您的家庭或場所)以及執行監控應用程式的電腦。通常有兩種不同的方法來實現這些系統:
– 在您的電腦上部署可以立即使用的(開源)應用程式。
– 自己建構完整的系統。 - 雲端託管平台:基礎架構和機器位於應用程式供應商擁有的雲端。
無論您選擇哪種解決方案,某些系統都提供與外部系統整合的能力,從而提供跨各種平台傳播資料的機會。一種常見的方法是促進資料傳輸到 IFTTT 等平台,這是一種廣泛採用的選擇。IFTTT 可以進一步促進諸如將資料儲存在 MySQL 資料庫中或將行附加到 Google Sheet 等操作。
讓我們深入研究三個範例:兩個自架和一個雲端託管。
3.1. 使用現成的自架系統
自託管即用型解決方案非常流行,包括在您家中或場所的電腦(通常基於 Linux)上部署開源監控應用程式。為此,您需要建置和維護基礎架構,並保證運行應用程式的電腦 24/7 可用。
一些非常流行的開源範例是Domoticz、openHAB或Home Assistant。它們非常靈活,並且充滿了社區貢獻的附加組件或擴展。
在推薦的平台(硬體加作業系統)上安裝這些系統可能是一個簡單的過程,但當您想要在已經運行的系統上安裝它們時,可能會變得有點棘手,因為與作業系統(OS)或庫發生衝突系統的問題通常會出現,並且通常不太容易解決。因此,它可以從初學者可以完成的簡單任務變為僅適合熟練用戶的複雜任務。
處理應用程式或作業系統的軟體更新可能會成為一項複雜的任務,因為依賴項之間通常會出現衝突。
由於附加元件和擴充功能是由社群開發的,因此它們通常不會被維護,因此它們可能存在錯誤,並且可能無法在不同版本的應用程式中正常運作。
從互聯網遠端存取系統需要打開路由器連接埠並配置連接埠轉發,這對於初學者來說不是很直觀,並且可能會在網路中造成安全威脅。
3.2 建立您自己的基於MQTT的視覺化系統
這種自架解決方案是迄今為止描述的所有解決方案中最複雜的,但也是最靈活的。
舉個例子,假設您想要建立自己的監控系統,使用 MQTT 填充資料、儲存資料的資料庫以及繪製資料的視覺化平台。在這種情況下,您需要運行一台或多台機器:
- MQTT 代理。最受歡迎的開源軟體之一是Eclipse Mosquitto。
- 該應用程式將訂閱代理程式中的資料並將其儲存在資料庫中。使用像InfluxDB這樣的時間序列資料庫 (TSDB)越來越受歡迎。
- 視覺化平台可讓您建立可透過網頁瀏覽器存取的儀表板。Grafana是實現這一目標的最受歡迎的開源平台之一。
此外,您還必須配置網絡,以便機器和服務可以相互通信,並可以從互聯網遠端存取它們。與先前的方法一樣,這意味著打開路由器連接埠並在網路中建立安全漏洞。
最後但並非最不重要的一點是,您必須配置和維護伺服器和網路的完整基礎架構。
3.3. 使用 Arduino Cloud 儲存並視覺化您的設備數據
Arduino Cloud是一個雲端託管平台,它提供了一個用戶友好的環境來開發 IoT 設備的軟體並創建用於監視和控制 IoT 設備的可自訂的富有洞察力的儀表板。
主要特點是:
- 線上編輯器或 Arduino IDE 開發:您可以從任何地方線上開發您的專案。用戶無需進行任何配置即可使用線上開發環境。但是,儘管線上開發對於許多用戶來說非常方便,但使用流行且知名的 Arduino IDE 進行開發同樣有效。您可以選擇適合您的。
- 程式碼儲存和備份:無論您是離線還是線上開發,將程式碼儲存在雲端中都無需手動備份,並可以在任何地方進行開發。
- 可自訂的儀表板:您可以使用拖放小工具 透過直覺的介面建立和自訂儀表板。它們提供與物聯網設備的即時互動以及富有洞察力的歷史信息,可以額外下載這些資訊以進行離線分析。好處是您可以與朋友、同事和家人分享並設定即時警報。
- IoT 遠端應用程式:透過手機應用程序,您的儀表板隨時觸手可及。
- 協作工作:您可以與其他人分享您的程式碼和儀表板。
- 開箱即用的整合:您可以與 IFTTT、Zapier、Google Services 或Alexa等熱門平台無縫整合。
- 廣泛的相容設備:您不僅可以連接基於 Arduino 或 ESP 的板,還可以連接使用 Python、JavaScript 或 MicroPython 編程的任何設備。
它可以免費用於小型專案。如果您需要連接更多裝置或需要存取高級功能,例如擴充資料儲存、對大型專案的支援、無線更新、即時通知,您可以註冊月費或包年方案(起價 2美元)每月)。。
此系統的主要限制是您需要網路連線才能視覺化裝置的資料。
其他解決方案
這些只是一些例子,但當然還有更多。值得注意的是,一些用戶探索混合解決方案,他們維護自己的雲端託管基礎架構。然而,這些解決方案會帶來自託管和雲端託管解決方案所突顯的問題。其他人則使用websockets將資料直接串流到他們的網頁或應用程式。
結論
物聯網資料視覺化不一定是一項複雜、昂貴或依賴位置的任務。選擇適合您的解決方案取決於您的用例和特定需求。
在這篇文章中,提出了五種流行的解決方案,下表總結了它們:
從表中提取的一些想法:
- 本機範圍解決方案(例如藍牙或嵌入式 Web 伺服器)要求您在實體上靠近 IoT 裝置才能存取數據,這限制了遠端監控和控制。為其中一些解決方案提供完全的全球存取需要您的路由器連接埠轉送配置,這可能會在您的網路中造成安全漏洞。
- 在裝置中嵌入網頁伺服器或藍牙堆疊可能會佔用大量資源。這可能會限制設備的功能或需要更強大的微控制器,從而增加成本和複雜性。
- 由於其開源性質、靈活性、社群支援以及廣泛的附加元件和擴展,自架的即用型平台歷來是最廣泛採用的平台。這些解決方案要求您建置和維護基礎架構,這使得它們有時變得複雜且耗時。此外,儘管該軟體可以免費使用,但運行它們的硬體卻變得越來越昂貴且難以找到。
所有這些限制都促進了雲端託管解決方案的普及,主要是因為它們方便的無人值守特性,而且還因為它們簡化了設備韌體的開發、可擴展性和可用的客製化選項。這些解決方案的主要限制是它們對網路連線的依賴,並且在需要高級功能時可能會產生一些成本。
在這篇文章中,我們介紹了 Arduino Cloud,這是一個雲端託管平台,旨在簡化從韌體開發到從任何地方監視和控制設備的整個過程。Arduino Cloud 的創建目標是實現物聯網民主化,就像 Arduino 幫助創客輕鬆創作一樣。正如我們所探索的,Arduino Cloud 的線上開發功能、程式碼儲存和直覺的儀表板使其成為物聯網愛好者的有吸引力的選擇。
免費開始使用 Arduino Cloud
開始使用 Arduino Cloud 非常簡單。您只需按照以下步驟操作:
1.建立一個Arduino雲端帳戶。
2 將您的 IoT 裝置連接到 Arduino Cloud。
3. 建立您的物件並添加軟體以讀取感測器資料。
4. 建立資料視覺化儀表板。
就是這樣。它已經可以使用並且是免費的。您可以探索進階功能以增強功能。
因此,如果您希望簡化 IoT 資料視覺化,請考慮嘗試 Arduino Cloud,並釋放其專案的全部潛力。
發佈留言