---
# System prepended metadata

title: 專案規格書

---

# 專案規格書
***寶寶房間智能監控與通知系統***
* 概述:
    此專案旨在開發一個綜合系統，結合Python、IoT設備、人臉辨識、和LINE Bot，來監控寶寶房間的環境和狀態，並通過LINE Notify進行即時通知。
    ![image](https://hackmd.io/_uploads/SJU4gepiC.png)
* 系統架構
    1. 前端介面：LINE Bot與LIFF表單
    2. 後端技術：Python (Flask)、OpenAI API、Google Search API、Apache、MySQL、PHP
    3. IoT設備：ESP32-CAM、Raspberry Pi、AMB82-MINI開發版
    4. 通訊協議：MQTT
    5. 資料存儲：MySQL、CSV文件
    6. 通知系統：LINE Notify
* 功能概述
    1. 寶寶活動紀錄與通知系統:
        * 透過爬蟲技術定時監控KuPON網站，並判斷產品價格變化。
        * 當發現價格下降時，自動發送LINE Notify通知。
        * 爬蟲數據將保存為CSV文件，便於後續查詢。
        * 紀錄寶寶飲食生活
    2. AI多模態問答系統
        * 連接OpenAI API進行文字生成。
        * 當AI無法回答時，通過Google Search API獲取資料進行補充。
        * LINE Bot提供使用者與系統的互動介面。
    3. 寶寶環境監測系統
        * 透過ESP32-CAM與多個感測器來監控房間內的溫度、濕度及人員活動。
        * 當偵測到人員活動時，自動拍照並通過LINE Notify發送通知。
        * 實時上傳溫濕度數據至Raspberry Pi，並在網頁上展示。
    4. 寶寶狀態AI辨識系統
        * 利用自採集數據訓練YOLOv4模型，並部署於AMB82-MINI開發版進行人臉辨識。
        * 當辨識到寶寶的狀態時，通過MQTT通知Raspberry Pi。
        * 透過LINE Notify提供狀態更新及RTSP串流連結，供即時觀看。
## 專案1: AI式寶寶聊天機器人
* 開發環境
    1. 語言：Python
    2. 框架：Flask
    3. 部署平台：Repl.it
* 功能需求
    1. 定時監控與通知系統：
        * 透過爬蟲技術定時監控KuPON網站，檢查產品價格變化。
        ![image](https://hackmd.io/_uploads/Bkclkv2sA.png)
        * 當價格下降時，自動通過LINE Notify發送通知。
        ![image](https://hackmd.io/_uploads/HkBEu6hi0.png)

        * 爬取的數據將保存至CSV文件，便於後續查詢與分析。
        ![image](https://hackmd.io/_uploads/H1fOxPnjC.png)
    2. 寶寶飲食生活紀錄：
        * 記錄寶寶的喝奶時間、換尿布時間、次數與劑量。
        ![image](https://hackmd.io/_uploads/rJJUd6hjR.png)
        * 數據將以圖表形式展示，方便家長查看與追蹤。
        ![image](https://hackmd.io/_uploads/rk8Y_6hoR.png)

    3. AI多模態問答系統：
        * 連接OpenAI API進行文字生成，為使用者提供智能回答。
        * 當AI無法回答時，自動通過Google Search API獲取相關資料，補充答案。
        * 使用者可通過LINE Bot與系統進行互動，查詢寶寶的飲食生活紀錄或其他問題。
        ![image](https://hackmd.io/_uploads/SJw5uTnjR.png)

* 技術細節
    1. 使用Flask建構Web應用。
    ![image](https://hackmd.io/_uploads/Bk4JB16o0.png)
    3. 使用scheduler和多執行緒來實現定時爬蟲。
    ![image](https://hackmd.io/_uploads/H1efHyasC.png)
    5. 通過LINE Notify展示爬蟲結果和通知。
## 專案2: 寶寶環境監測系統
* 開發環境
    1. 硬體：Raspberry Pi、ESP32-CAM
    ![image](https://hackmd.io/_uploads/Sklvt62oC.png)
    3. 軟體：Apache、MySQL、PHP、MQTT
* 功能需求
    1. 透過溫濕度感測器收集環境數據，並上傳至Raspberry Pi。
    ![image](https://hackmd.io/_uploads/rJiVrJ6j0.png)
    2. 當偵測到活動時，ESP32-CAM拍照並通過LINE Notify發送通知。
    ![image](https://hackmd.io/_uploads/By5ASJajR.png)
    3. 在網頁上展示收集到的溫濕度數據。
    ![image](https://hackmd.io/_uploads/Bkxrma3o0.png)
* 技術細節
    1. ESP32透過MQTT上傳數據至Raspberry Pi。
        ![image](https://hackmd.io/_uploads/H1sQ4J6iC.png)
    3. Raspberry Pi上架設Apache + MySQL來存儲和展示數據。
        ![image](https://hackmd.io/_uploads/S1x2fk6jA.png)
    4. PHP用於開發前端顯示網頁與數據存放功能。
        ![image](https://hackmd.io/_uploads/SytSXJTiC.png)
        ![image](https://hackmd.io/_uploads/rJJVB6hoR.png)
## 專案3: 寶寶狀態AI辨識系統
* 開發環境
    1. 硬體：AMB82-MINI開發版、攝像頭
    ![image](https://hackmd.io/_uploads/Sk6z51aiR.png)
    3. 軟體：YOLOv4、MQTT
* 功能需求
    1. 收集照片數據並進行YOLOv4模型訓練。
    ![image](https://hackmd.io/_uploads/Hydd_oFo0.png)
    3. 將訓練好的模型部署到AMB82-MINI上進行人臉辨識。
    ![image](https://hackmd.io/_uploads/BJNJ3z5o0.png)
    ![image](https://hackmd.io/_uploads/BkPHhz5oC.png)
    ![image](https://hackmd.io/_uploads/HyUnnGcoR.png)
    ![image](https://hackmd.io/_uploads/SkR8Tzqi0.png)
    5. 透過MQTT將辨識結果發送至Raspberry Pi。
    6. 當寶寶狀態改變時，透過LINE Notify發送通知並提供串流連結。
    ![image](https://hackmd.io/_uploads/rJ8NoJpiA.png)
* 技術細節
    1. 透過 google Colab 執行YOLOv4用於訓練人臉辨識模型。
    ![image](https://hackmd.io/_uploads/SkGWQTFjA.png)
    2. AMB82-MINI負責進行本地化辨識處理。
    ![image](https://hackmd.io/_uploads/r1WIhy6jC.png)
    3. LINE Notify用於發送狀態變更通知。
## 心得與結論
這個專案全面展示了三個月來在AIoT領域的學習成就，重點在於系統整合與架構設計。我將Python應用於數據處理和分析，設計了結合LINE Bot 與 Notify的通知系統和數據儲存功能。IoT方面，我整合了ESP32-CAM來監控環境，並通過MQTT實現感測數據的即時傳輸與通知。AI技術的應用則集中在YOLOv4模型的訓練和部署，用於面部識別。整體系統架構涵蓋了數據收集、分析、視覺識別及通知，實現了無縫的功能整合。而這些技術的整合不僅提升了系統的功能性與效率，也強調了各領域技術協同作用的重要性，為實際應用提供了更完善的解決方案。