Skip to content
This repository has been archived by the owner on Jun 19, 2023. It is now read-only.

基於 Raspberry Pi 的雲端 IoT 🐟缸遠端監控暨餵食 Web App 應用

Notifications You must be signed in to change notification settings

NCNU-OpenSource/Yuan-Tuan-Wei-Yu

Repository files navigation

Yuan-Tuan-Wei-Yu

透過手機 Web app 遠端監控魚缸,監測水質,餵魚。
簡報: https://docs.google.com/presentation/d/1XILiHoCh-3hCT4_O94E6LjNnAZBM8lx6Rv6cTUsI5Ck/edit#slide=id.p

用戶端介面示意圖

系統架構

Server side

Node.js

Client side

Web app

設備

名稱 數量 來源
IC 自動控溫器 1 NTD 500 (水族館)
LED 1 MOLi
電阻 2 MOLi
繼電器 2 MOLi
ds18b20 1 RMB 10 (淘寶)
PH-Sensor-E-201-C 1 RMB 152 (淘寶)
TDS sensor 1 RMB 55 (淘寶)
ES08A II 1 MOLi
Logitech C910 1 MOLi 善心人士
麵包板 2 MOLi

1. LED

用來照亮魚缸,方便透過鏡頭觀看魚隻狀況。

實圖

接法 透過繼電器控制 LED 開關,GPIO 16,繼電器常關。

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(16, GPIO.OUT)
GPIO.output(16, GPIO.HIGH)

2. 水溫感測

感測魚缸水溫並即時顯示於用戶端。

實圖

感測器: ds18b20 接法

使用 node module ds18b20
https://github.com/chamerling/ds18b20

const ds18b20 = require('ds18b20');
ds18b20.sensors(function (err, ids) {
    const temp = ds18b20.temperatureSync(ids[0]);
});

3. IC 自動控溫器

可透過用戶端界面設定期望水溫,若溫度感測器測出水溫低於預期,則開啟予以增溫。

實圖

接法 將產品原溫控電路板移除,透過繼電器控制 110V 電源流通,GPIO 26,繼電器常關。

加溫控制

if (!!_targetTemp) {
    if (temp < _targetTemp) {
        if (!_bonOn) {
            // bonOn
            console.log('turn bon on');
            _bonOn = true;
            spawn('python', ['/home/pi/Yuan-Tuan-Wei-Yu/python/bonOn.py']);
        }
    } else {
        if (!!_bonOn) {
            // bonOff
            console.log('turn bon off');
            _bonOn = false;
            spawn('python', ['/home/pi/Yuan-Tuan-Wei-Yu/python/bonOff.py']);
        }
    }
}

/home/pi/Yuan-Tuan-Wei-Yu/python/bonOn.py

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
GPIO.output(26, GPIO.HIGH)

4. PH 值監測

監測水中 PH 值。

實圖

感測器: PH-Sensor-E-201-C 接法 參考 GitHub: e-Gizmo/PH-Sensor-E-201-C

感測器傳出訊號為類比訊號,因時間緊迫且無現有類比轉數位訊號模組,故無實作

5. TDS 總溶解固體監測

總溶解固體(英語:Total dissolved solids,縮寫TDS),又稱溶解性固體總量,為觀測水質的一種指標

實圖

接法 TTL 接線方式,如上圖,接地、TX 接 RX (GPIO 15)、RX 接 TX (GPIO 14)、5V 電源。

由於時間緊迫故來不及找出如何讀取數值的方法。

6. 餵魚

將飼料罐開洞並用金屬片堵住洞口,將步進馬達與金屬片固定在一起,透過控制步進馬達達到開關飼料罐洞口的效果,始能將飼料倒入魚缸中。

實圖

馬達: ES08A II 接法 正電、接地、GPIO 21

import RPi.GPIO as GPIO
import time
pin = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
while 1:
    GPIO.output(pin, True)
    time.sleep(0.01)
    GPIO.output(pin, False)
    time.sleep(0.01)

7. 影像監控

透過 Webcam 即時觀看魚缸現況

實圖

接法 將 Webcam 接至 Pi 上 USB port
透過 fswebcam 來進行截圖

fswebcam -r 1280x720 image.jpg

電路圖

分工

張育瑩

  • 功能需求討論
  • 系統規劃
  • 系統實作
  • 接線
  • 簡報製作
  • 報告
  • 文件

蔡富亘

  • 功能需求討論
  • 設備採買
  • 技術顧問

陳炫宇

  • 功能需求討論

後因身體不適無法參與課程

王仁佑

  • 題目發想
  • 功能需求討論
  • 設備採買
  • 跑腿
  • 電路圖

About

基於 Raspberry Pi 的雲端 IoT 🐟缸遠端監控暨餵食 Web App 應用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published