,

物聯網開發筆記 (一) 介紹

研究物聯網的介紹文章

物聯網開發筆記 (一) 介紹
Photo by Jorge Ramirez / Unsplash

動機及設備

家父的開心農場一直以來都是使用定時灑水,每天清晨時間一到計時器便會通電讓馬達自動灑水,這樣的好處是便宜方便,壞處可想而知就是不管三七二十一,潮濕、下雨、淹水等各種情況照樣灑水。

正好前陣子看了看 Arduino 感覺是蠻有興趣的,那就先拿改良灑水系統來玩玩看,以下為目前採購的裝置,邊開發編採購,日後可能會再增加。

  • NVIDIA Jetson nano 4GB Developer Kit * 1 (後稱 Nano)
  • ESP32 開發板 * 1
  • 四路繼電器 * 1
  • 土壤偵測器 * 1
  • 太陽能板 * 1
  • 太陽能儲電 * 1

架構

架構上目前僅為擬定階段,後續可能跟著實務或現場困難隨時修改。

ESP32 開發板

ESP32 搭配太陽能系統及土壤偵測器放置在農場裡,以 WiFi 無線方式連接,用途很單純的開機後上傳偵測原始數值到伺服器上。

Nano

Nano 作為農場中的中控設備,放在電路匯集的工具房裡,以有線網路方式連線,結合繼電器及原先馬達設備。

系統層面

  • 伺服器端採用 Google Cloud Functions 無伺服器架構,相關設備以 HTTPS 與其溝通。
  • 終端設備中ESP32採用C++語言開發,開機後上傳偵測值給予伺服器,並取得下次上傳時間後進入深度睡眠,以節省電力消耗;Nano開發上採用 Node.js、Python 並行開發,利用 Node.js 監聽 Server 數值,並透過Python 給 GPIO 指定腳位訊號。
  • 所有運算需求均在伺服器端實作,故終端上傳的資料均為原始資料,否則改 Code 要驅車幾個小時前往燒錄ESP32。

需求層面

  1. 冬夏不同灑水時段
  2. 手機 APP 可遠端監看、手動操作灑水
  3. 所有終端或伺服器數值,均可在 APP 即時調整
  4. 中控設備是否要有螢幕可直接顯示相關數值 (?
  5. 中控設備是否要有實體按鈕可按下直接灑水 (?