iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0

前言

關於窮鬼冰箱 beggarFridge 的功能,首要的功能要先能記錄食材,於是前一回初步規劃了架構也裝好硬體和資料庫等開發環境了。 這篇會從 API 的設計切入。

FastAPI

ESP32
   │
   │ POST /api/photos
   ▼
┌─────────────────────┐
│       FastAPI       │  ← 對外接口
├─────────────────────┤
│ Python Logic        │
├─────────────────────┤
│ SQLite              │
└─────────────────────┘

規劃

  • 用樹莓派當作伺服器,在上面執行較為複雜的程式、和後續維護都是比較容易操作的,因此這邊計劃透過常見的 框架 開發 應用程式介面(Application Programming Interfce,簡稱 API) 。 對於「介面」這個名詞,直白的說法就是,「牆壁上的開關 對應到 後面連結複雜的電路和邏輯」,使用者不需要懂電學,也可以開關電燈。
  • 這篇先來規劃如何用樹莓派,運行 FastAPI Backend,讓 ESP32-S3-CAM 丟照片到 Raspberry Pi 3。

尋找需要使用到的套件

  • 古早時代的工程師,要花蠻多時間累積經驗,去看別人怎麼用什麼工具解決問題,有些是口耳相傳,有些就是在網路上當鄉民看熱鬧,到處吸趴! 然後不一定是最佳解,而且要花蠻多時間驗證,並且要看一堆說明書才知道怎麼串。
  • 現在這種事情喔,交給奴隸 AI 去做就好了。

驗證想法 / 用哪些套件解決問題

  • 因為跨裝置丟東西,從 ESP32 丟資料到樹莓派,把圖 傳進 Pi。 對於 Pi 上就是要起個網頁伺服器,去等請求進來。
FastAPI
    │
    ├── REST API
    │
Uvicorn
    │
    ├── HTTP Server
    │
Requests
    │
    ├── ESP32 / Web API
    │
Pillow
    │
    └── Image processing

列出 ESP32 拍照完,傳相片到樹莓派的架構圖

                    Wi-Fi LAN
                        │
       ┌────────────────┴────────────────┐
       │                                 │
 ESP32-S3-CAM                     Raspberry Pi 3
  172.16.71.51                           │
       │                                 │
     SR602                               │
       │                                 │
       ▼                                 │
  Motion >= 3 sec                        │
       │                                 │
       ▼                                 │
     OV3660                              │
       │                                 │
       ▼                                 │
      JPEG                               │
       │                                 │
       ├──→ microSD                      │
       │    /photos/                     │
       │                                 │
       └──── HTTP POST ─────────────────▶│
                                         │
                                    FastAPI :8000
                                         │
                                         ▼
                                   /api/photos
                                         │
                                         ▼
                                      photos/

上一篇
【Day 5】Raspberry Pi 相依環境安裝 / Repository 專案初始化
下一篇
【Day 7】理解 FastAPI 和 Uvicorn
系列文
窮鬼冰箱升級計劃 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言