samuel0318
🏅🔰🔰
- 金幣
- 932
前言
我使用兼容Arduino 的 ESP8266 板子,連結 pH 和溫度傳感器,經由 Wifi 連線, 將傳感器數據透過 MQTT 協議發佈到自建私有雲服務。 在雲上,使用Node-RED訂閱MQTT傳感器數據並將其存儲到InfluxDB數據庫。 Grafana用於顯示傳感器數據圖表,並且設定警報條件,若符合條件就會發 Slack 訊息通知。也可以用語音要求 Siri 回報魚缸的最新狀態。
系統架構圖
成果
1.用語音要求 Siri 回報魚缸的最新狀態(謝謝齊大教學文)
2.Slack (手機或是電腦App) 接收到的通知
pH 低於 8.4 (測試用), 發通知
pH 回到 8.4 以上, 通知狀態解除
溫度告警,通知溫度低於 24度(測試用)
3.雲端網頁(Grafana),可顯示 pH 以及溫度的歷史資料
- 由於 pH 值與燈光有很大的關係,所以在 pH 圖表上,白底表示主缸開燈,黑底表示藻缸開燈
- 在 temperature 圖表上,紅底表示白天(06:00),黑底表示晚上(18:00), 左側鋸齒狀表示那幾天天氣冷,加溫棒開始運作了。我還需要調整,目標是讓溫度變化低於1度 (或 0.5度)
- 可以加上自己的註解,如pH 圖表上的垂直藍線
- 可以在這裡設定警報條件
準備項目及費用
以下是需要準備的項目
以上總共花費 NT$2,965, 主要是貴在這個 pH electrode 是工業等級比較貴,因為網頁上面寫著 "本pH計非常適合需要長期線上監測的場合”, 我就買了,但 pH electrode是消耗品,下次換便宜的試試。
這次DIY不強調手工藝,不需要焊接,只需插麵包板,也還沒有好看的外殼封裝, 目前還在規劃中
自己動手做, But...
所需要的技能:
Let’s Go!
Github 開放原始碼, 並且 README 會教如何設定。 為了國際化,我用英文寫文件
https://github.com/samuelchiang/auto_tank
我使用兼容Arduino 的 ESP8266 板子,連結 pH 和溫度傳感器,經由 Wifi 連線, 將傳感器數據透過 MQTT 協議發佈到自建私有雲服務。 在雲上,使用Node-RED訂閱MQTT傳感器數據並將其存儲到InfluxDB數據庫。 Grafana用於顯示傳感器數據圖表,並且設定警報條件,若符合條件就會發 Slack 訊息通知。也可以用語音要求 Siri 回報魚缸的最新狀態。
系統架構圖
成果
1.用語音要求 Siri 回報魚缸的最新狀態(謝謝齊大教學文)
2.Slack (手機或是電腦App) 接收到的通知
pH 低於 8.4 (測試用), 發通知
pH 回到 8.4 以上, 通知狀態解除
溫度告警,通知溫度低於 24度(測試用)
3.雲端網頁(Grafana),可顯示 pH 以及溫度的歷史資料
- 由於 pH 值與燈光有很大的關係,所以在 pH 圖表上,白底表示主缸開燈,黑底表示藻缸開燈
- 在 temperature 圖表上,紅底表示白天(06:00),黑底表示晚上(18:00), 左側鋸齒狀表示那幾天天氣冷,加溫棒開始運作了。我還需要調整,目標是讓溫度變化低於1度 (或 0.5度)
- 可以加上自己的註解,如pH 圖表上的垂直藍線
- 可以在這裡設定警報條件
準備項目及費用
以下是需要準備的項目
- NodeMcu 物聯網開發板 ESP8266 wifi模組 NT$205
- Analog pH Meter Pro Sensor (工業等級 pH 探針) NT$2,457
- 標準校正液20ml(ph7 + ph10) 迷你瓶 NT$84
- 2米防水探針型熱電偶溫度感測器 不銹鋼封裝 防水型 DS18b20溫度感測 NT$114
- 麵包板 NT$57
- 麵包板連接線 NT$48
- MicroUSB 以及 USB 插座:拿沒在用的,free
以上總共花費 NT$2,965, 主要是貴在這個 pH electrode 是工業等級比較貴,因為網頁上面寫著 "本pH計非常適合需要長期線上監測的場合”, 我就買了,但 pH electrode是消耗品,下次換便宜的試試。
這次DIY不強調手工藝,不需要焊接,只需插麵包板,也還沒有好看的外殼封裝, 目前還在規劃中
自己動手做, But...
所需要的技能:
- Arduino 基本操作,會編寫程式碼更好
- MQTT 的運作原理, publish / subscribe
- Linux (Ubuntu) 的基本指令
- Docker, Swarm 的基本操作
- Node-Red 基本操作
- InfluxDB SQL 語法
Let’s Go!
Github 開放原始碼, 並且 README 會教如何設定。 為了國際化,我用英文寫文件
https://github.com/samuelchiang/auto_tank