用 Arduino 做 自 動 淋 花 器 ,好 多 年 前 就 做 過 。那 時 候 以 教 學 示 範 為 主 ,用 的 是 超 低 電 壓 低 電 流 的 玩 具 水 泵 ,其 實 有 點 不 太 實 際 。
所 以 後 來 自 己 在 家 裡 做 ,就 改 用 了 一 些 比 較 強 力 的 小 水 泵 。常 見 的 小 水 泵 分 為 好 幾 類 ,最 簡 單 常 見 的 離 心 泵 ,更 為 好 力 的 隔 膜 泵 ,可 以 精 準 控 制 流 量 的 蠕 動 泵 等 等 。三 者 其 實 都 可 以 用 來 製 作 自 動 淋 花 器 ,但 真 正 最 好 用 的 還 是 隔 膜 泵 。
在 淘 寶 的 話 ,大 家 可 以 去 搜 尋 一 些 365 / 370 直 流 抽 水 泵 之 類 ,又 便 宜 又 好 用 。隔 膜 泵 是 比 離 心 泵 更 「好 力 」的 ,實 際 用 起 來 就 可 以 有 更 高 的 揚 程 。即 是 淋 花 系 統 的 儲 水 桶 可 以 比 植 物 放 低 許 多 ,例 如 水 桶 可 以 放 在 地 上 ,而 花 盆 可 以 放 在 窗 台 ,甚 至 掛 在 窗 花 上 。低 電 壓 的 離 心 泵 就 不 會 有 太 大 揚 程 ,有 些 連 1 米 揚 程 也 做 不 到 。
隔 膜 泵 的 水 壓 會 比 較 大 ,也 特 別 適 用 於 一 些 雨 林 霧 化 噴 頭 。如 果 用 一 般 的 離 心 泵 ,就 會 因 水 壓 唔 夠 而 噴 唔 出 水 。為 什 麼 會 用 霧 化 噴 頭 呢 ?因 為 我 之 前 也 有 玩 雨 林 缸 和 苔 蘚 缸 。雨 林 缸 和 淋 花 很 不 一 樣 ,一 般 室 內 植 物 你 可 以 兩 三 天 才 淋 水 一 次 ,但 雨 林 缸 就 最 好 久 唔 久 就 噴 淋 一 次 加 濕 ,所 以 很 多 玩 雨 林 缸 的 都 會 配 一 些 專 用 的 自 動 噴 淋 系 統 ,每 幾 個 小 時 就 噴 淋 10 秒 之 類 。
最 簡 的 DIY 噴 淋 系 統 ,其 實 就 只 要 一 個 Arduino、一 個 繼 電 器 ( relay ) 、一 個 365 隔 膜 泵 、一 個 水 泵 用 的 火 牛 。程 式 就 更 簡 單 了 ,只 要 設 定 每 隔 多 少 分 鐘 讓 水 泵 運 行 幾 多 秒 。如 果 是 初 學 者 就 可 以 用 delay,資 深 一 點 就 可 以 用 millis,再 高 級 的 就 可 以 用 眾 多 不 同 的 timer library。
隔 膜 泵 的 電 源 ,可 以 選 擇 一 些 3-12V 可 調 電 壓 電 源 。這 樣 就 可 以 調 節 摩 打 的 轉 速 ,亦 即 是 可 以 控 制 水 流 的 大 小 。
你 可 以 選 擇 不 同 的 出 水 口 。例 如 花 盆 就 可 以 選 用 「滴 箭 」,雨 林 缸 就 可 以 用 雨 淋 噴 頭 又 或 者 霧 化 噴 頭 。
下 圖 就 是 我 使 用 多 年 的 DIY 自 動 淋 花 器 。使 用 了 一 片 Arduino Nano,一 個 4 路 的 繼 電 器 模 組 ( 可 以 控 制 4 個 不 同 的 水 泵 ),還 加 了 一 個 7 segment display 來 顯 示 倒 數 的 時 間 。這 個 小 小 顯 示 器 也 能 讓 我 確 認 淋 花 系 統 是 在 正 確 運 行 。
其 實 一 個 水 泵 就 足 夠 為 多 個 盆 栽 供 水 ,為 什 麼 會 用 一 個 4 路 的 繼 電 器 呢 ?這 是 因 為 不 同 盆 栽 所 需 要 的 水 量 不 同 ,使 用 多 數 繼 電 器 和 多 個 水 泵 ,就 可 以 按 照 不 同 大 小 和 種 類 的 盆 栽 設 定 不 同 的 時 間 間 隔 和 不 同 的 供 水 量 。繼 電 器 也 可 以 控 制 照 明 或 者 其 他 設 備 。在 這 種 情 況 之 下 ,4 個 繼 電 器 都 會 有 自 己 的 開 關 間 隔 ,最 方 便 是 找 一 些 簡 單 易 用 的 timer library。
這 樣 的 Arduino 加 上 水 泵 的 DIY 自 動 淋 花 系 統 ,最 大 的 問 題 是 一 定 要 駁 電 ( 用 電 芯 玩 不 了 兩 日 就 沒 電 )。所 以 在 某 些 沒 有 電 制 的 位 置 ,我 就 從 網 上 找 了 一 些 自 動 淋 花 器 。自 動 淋 花 器 比 起 DIY 有 一 些 好 處 ,例 如 比 較 小 巧 和 美 觀 ,只 要 單 一 電 源 線 。還 有 就 是 面 板 可 以 直 接 設 定 時 間 間 隔 和 每 次 出 水 多 久 。我 的 Arduino DIY project 就 要 插 上 電 腦 修 改 程 式 碼 了 。
這 家 「votezio園 藝 店 」的 自 動 淋 花 器 ,我 原 先 只 買 了 一 個 最 便 宜 的 普 通 款 ,價 錢 不 到 一 百 蚊 人 仔 。它 可 以 插 USB 供 電 ,也 可 以 用 4 個 AA 電 池 。我 用 家 裡 的 AA 充 電 池 ,可 以 很 神 奇 地 連 續 用 幾 個 月 。所 以 我 再 買 第 二 個 的 時 候 ,就 直 接 選 了 最 貴 的 自 帶 鋰 電 池 的 充 電 款 。
超 省 電 這 個 事 情 是 DIY 和 商 業 產 品 的 一 個 主 要 分 別 。例 如 我 用 開 的 小 米 智 能 家 居 的 好 多 感 應 器 ,一 個 鈕 扣 電 池 可 以 用 2 年 ,自 己 DIY 是 十 分 難 以 達 到 這 種 程 度 的 。
本 來 故 事 至 此 就 告 一 段 落 ,但 後 來 我 又 迷 上 了 苔 蘚 。苔 蘚 據 說 是 沒 有 根 部 的 ,所 以 淋 水 也 會 有 點 不 一 樣 。苔 蘚 不 是 給 泥 淋 飽 水 就 可 以 ,而 是 要 用 噴 壺 直 接 把 水 噴 在 苔 蘚 的 葉 上 面 。而 且 最 好 時 常 噴 水 ,讓 苔 蘚 保 持 足 夠 的 濕 度 。
而 且 因 為 香 港 居 家 環 境 狹 窄 ,我 玩 的 主 要 都 是 超 迷 你 的 苔 蘚 瓶 。即 使 是 用 噴 淋 頭 ,每 天 只 噴 1 秒 鐘 ,苔 蘚 瓶 還 是 會 積 水 嚴 重 。於 是 我 又 在 網 上 找 了 一 些 加 濕 器 。
這 款 USB 加 濕 器 十 分 便 宜 ,一 整 套 連 瓶 子 才 ¥15 人 仔 左 右 。它 將 水 變 成 霧 氣 的 裝 置 叫 atomizer,如 果 在 google 搜 尋 arduino atomizer / atomization 之 類 就 會 找 到 教 學 。
這 個 加 濕 器 的 控 制 板 本 身 已 經 有 一 個 mini push button。按 一 下 就 出 霧 ,再 按 一 下 就 停 止 。要 用 Arduino 來 控 制 它 ,大 置 上 有 兩 種 方 法 。第 一 種 是 長 按 著 push button,然 後 USB 線 一 通 電 它 就 會 出 霧 ,而 USB 線 斷 電 它 就 會 停 止 出 霧 。這 個 方 法 很 適 合 使 用 繼 電 器 來 控 制 開 關 。
我 3D 打 印 了 一 個 小 部 件 ,再 用 膠 水 黐 實 在 按 鈕 的 位 置 。然 後 就 將 USB 線 加 工 一 下 接 駁 到 繼 電 器 ,就 可 以 用 Arduino 來 控 制 加 濕 器 的 開 關 。
第 二 個 方 法 ,就 是 用 Arduino 的 Digital Pin 直 接 傳 送 訊 號 給 加 濕 器 。加 濕 器 上 面 的 push button,是 使 用 最 常 見 的 push-up resistor 的 設 計 。即 是 平 時 的 訊 號 是 High,而 當 有 人 按 下 按 鈕 時 ,訊 號 就 會 變 成 Low。明 白 了 這 個 之 後 ,就 可 以 在 加 濕 器 接 收 訊 號 的 針 加 引 出 一 條 接 線 ,直 接 連 接 到 Arduino。這 樣 我 們 就 可 以 用 Arduino 來 輸 出 High 或 者 Low,模 擬 有 人 按 下 按 鈕 的 情 況 。
這 次 我 用 了 一 塊 Pro Micro 的 clone ( 原 來 應 該 是 Saprkfun 出 的 )。一 來 是 它 比 較 細 小 ,比 Nano 還 要 小 。二 來 是 它 和 加 濕 器 一 樣 使 用 5V 供 電 ,接 駁 會 比 較 簡 單 。除 了 訊 號 線 之 外 ,我 也 從 加 濕 器 的 USB 接 頭 上 引 出 了 5V 和 GND 給 Pro Micro 使 用 。
Pro Micro 和 Arduino 的 Leonardo 兼 容 ,如 果 唔 想 在 Arduino IDE 加 裝 Sparkfun 的 Addon,也 可 以 直 接 選 擇 Leonardo。我 把 加 濕 器 接 駁 到 Pro Micro 的 Pin 2。程 式 方 面 ,要 模 擬 按 鈕 的 動 作 ,我 們 一 開 機 就 要 把 Pin 2 設 定 成 High。到 想 要 按 按 鈕 的 時 候 ,就 把 Pin 2 設 定 成 Low,隔 一 個 短 時 間 ( 100ms ),再 設 定 成 High。
因 為 這 個 系 統 除 了 控 制 Pin 2 的 輸 出 之 外 什 麼 都 沒 有 做 ,所 以 就 算 是 用 最 入 門 的 delay 其 實 也 沒 有 什 麼 。 在 這 個 超 迷 你 苔 蘚 缸 ,我 設 定 了 每 30 分 鐘 噴 霧 5 秒 。
Pro Micro 其 實 不 算 十 分 便 宜 ,有 沒 有 更 好 的 選 擇 呢 ?有 !國 產 的 ESP8266 晶 片 就 是 一 個 超 級 便 宜 的 選 擇 。其 中 的 ESP-01 WiFi 模 組 ,更 只 要 不 到 10 蚊 。
ESP-01 非 常 小 巧 ,所 以 外 接 的 針 腳 不 多 。不 過 我 用 來 控 制 USB 加 濕 器 其 實 也 只 要 一 個 針 腳 。ESP-01 本 身 沒 有 USB port,要 連 接 電 腦 寫 program 的 話 就 要 另 外 買 一 個 燒 錄 器 。最 便 宜 的 燒 錄 器 大 概 要 十 幾 蚊 人 仔 ,比 ESP-01 本 身 還 要 貴 。不 過 一 個 燒 錄 器 就 可 以 對 應 無 限 多 個 ESP-01。
ESP-01 也 可 以 用 Arduino IDE 來 寫 program,詳 情 可 以 參 考 以 下 的 文 章 。
Getting Started With Esp 8266 Esp-01 With Arduino IDE
ESP-01 也 必 須 要 用 3.3V 電 壓 ,所 以 如 果 從 USB 取 電 的 話 ,就 要 加 多 一 個 5V 降 壓 到 3.3V 的 供 電 模 組 。因 為 ESP-01 十 分 省 電 ,所 以 選 一 個 最 便 宜 的 降 壓 模 組 就 可 以 ,通 常 兩 三 蚊 都 有 交 易 。
既 然 又 要 燒 錄 器 ,又 要 降 壓 模 組 咁 麻 煩 ,為 什 麼 還 要 用 ESP-01 呀 ?因 為 ESP-01 本 身 內 置 了 WiFi,於 是 我 們 就 可 以 寫 個 簡 單 的 網 頁 ,來 實 時 更 改 程 式 裡 面 的 一 些 參 數 。
例 如 我 就 簡 單 地 把 Interval 和 Duration 寫 了 入 網 頁 ,隨 時 想 改 就 改 。改 用 了 ESP-01 之 後 ,我 再 也 不 用 因 為 想 增 加 或 者 減 少 淋 水 而 把 控 制 器 拆 下 來 連 接 電 腦 修 改 程 式 。( 但 如 果 想 要 改 SSID 和 WiFi 密 碼 的 話 還 是 必 須 要 拆 下 來 插 電 腦 )
Arduino 本 身 的 很 多 Library 都 不 能 用 在 ESP8266 晶 片 上 運 行 ,所 以 很 多 library 都 要 重 新 再 找 過 。定 時 方 面 我 就 用 了 ticker,而 web server 就 選 擇 了 ESPAsyncWebServer library。都 是 以 簡 單 易 用 為 主 。
ESP8266 Timer and Ticker Example
Input Data on HTML Form ESP32/ESP8266 Web Server using Arduino IDE
好 了 ,現 在 你 也 學 會 了 多 種 不 同 的 方 法 去 淋 花 。甚 至 可 以 把 一 個 普 通 的 加 濕 器 改 裝 成 IoT 加 濕 器 。其 實 很 多 其 他 東 西 都 可 以 用 相 同 的 方 法 來 改 裝 和 控 制 的 。想 自 己 動 手 自 動 化 的 朋 友 可 以 參 考 參 考 。