Skip to content

Latest commit

 

History

History
95 lines (83 loc) · 4.95 KB

README.md

File metadata and controls

95 lines (83 loc) · 4.95 KB

LSA_waterplant_LazyFarmer

Concept Development

有一位農夫日日夜夜辛勤的在田間耕種,但是人工種植的方式費時又費力,
農夫也想要子早點下班去打Game, 追劇,所以突發奇想使用 Raspberry Pi3
加上土壤濕度檢測器和澆水馬達,製作出一套全自動的植物澆水系統。
透過樹梅派主機上的Python程式設定每十分鐘偵測和讀取當前植物所在土壤的
乾濕度,並判斷在乾燥時澆水。同時將一整天的澆水次數和乾濕度數據紀錄
並上傳到用Nextcloud建立的雲端資料庫,農夫便能在家就能隨時用手機查看
植物的生長狀況 => 於是便能偷懶-躺著賺錢

Implementation Resources

  • Raspberry Pi3 x1(本課助教提供)
  • 土壤濕度檢測器 x1(自行購買)
  • 澆水馬達 x1(自行購買)
  • 繼電器 x1(自行購買)
  • 受試植物 x1(自願自備)
  • 寶特瓶 x1(自備)
  • 電焊槍 x1(管237 Moli實驗室借用)

Existing Library/Software

Nextcloud

以下是NextCloud的安裝步驟:
1. 更新
$ sudo apt-get update && sudo apt-get upgrade

2. 安裝Apache2 和 PHP
$ sudo apt-get install apache2 -y
$ sudo apt-get install php

3. 安裝 NextCloud
$ cd /**var**/www/html
$ curl https://download.nextcloud.com/server/releases/nextcloud-18.0.3.tar.bz2 | sudo tar -jxv

4. 建立同步資料夾
$ sudo mkdir -p /var/www/html/nextcloud/data
$ sudo chown -R www-data:www-data /var/www/html/nextcloud/
$ sudo chmod 750 /var/www/html/nextcloud/data

5. 用瀏覽器打開Nextcloud管理介面,設定帳號密碼

Implementation Process

messageImage_1736182405846

1.硬體電路:

  1. 將土壤濕度檢測器接上Pi的3V3 power, GROUND, GPIO 7(CE1) 腳位
  2. 將繼電器接上Pi的5V power, GROUND, GPIO 17 腳位
  3. 將澆水馬達的正極接上繼電器/負極接上Pi的GROUND 腳位
  4. 由於馬達的接口是裸線設計,所以我們使用電焊槍將裸線與杜邦線針腳焊接固定

2.軟體程式:

messageImage_1735751484024

  1. 首先在Pi中創建nc_getsoil.py程式檔,並import RPi.GPIO 和 Nextcloud => 完成初始化設定
  2. 在def main()中,透過感測器回傳的高低電壓判斷土壤是濕潤或乾燥,並同時決定是否開啟馬達
  3. 由於過量的澆水也會導致植物掛掉,所以我們設定每10分鐘偵測土壤濕度,每次澆水5秒鐘
  4. 當資料筆數達到144筆(也就是剛好過完一天時)就將資料上傳到Nextcloud的共享資料夾同步
  5. 接著定義login_to_nextcloud()函式,判斷是否成功登入Nextcloud
  6. 最後在upload_file()函式將資料nc以.txt檔上傳至指定路徑file_path,並刪掉樹梅派上記錄檔(避免佔用空間)

Knowledge from Lecture

  • 查詢Host-Server IP: ip addr show
  • 更改目錄的所有者: sudo chown
  • 更改目錄的權限:sudo chmod
  • Raspberry Pi3 的針腳, 構造知識
  • 使用vim在Pi中編輯Python程式碼

Installation

  1. 將土壤濕度感測器插入植物種植的土壤中
  2. 準備一個寶特瓶大小的容器裝水
  3. 將澆水馬達放入裝水的容器內並接上軟管,另一端則通向植物
  4. 依照上方指示在樹梅派上安裝Nextcloud
  5. 透過外接式螢幕或個人電腦用PUTTY打開樹梅派命令列
  6. 成品應如下圖範例所示 S__14868539

Usage

  1. 確認安裝過程無誤
  2. 在樹梅派命令列執行nc_getsoil.py
  3. 接著澆水系統便會自動運行
  4. 可以開始放心偷懶

Job Assignment

  • 組長: 梁灝 [寫程式]+[上台報告]
  • 組員1: 陳彥熏 [簡報製作]+[上台報告]
  • 組員2: 黃士瀚 [硬體線路連接]
  • 組員3: 王瑞呈 [主題構想]+[材料購買]
  • 組員4: 陳厚駪 [寫程式]

References

  1. https://absorbed-toaster-205.notion.site/NextCloud-16e29288588080b7acd2da254b46425a
  2. 學長姐報告
  3. 在Raspberry pi安裝Nextcloud
  4. How to Setup a Raspberry Pi Nextcloud Server
  5. 安裝Apache Web Server及PHP
  6. 焊接電子電路
  7. Arduino控制微型水泵(繼電器模組)