iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
ChatGPT & Codex

窮鬼冰箱升級計劃系列 第 5 篇

【Day 5】Raspberry Pi 相依環境安裝 / Repository 專案初始化

  • 分享至 

  • xImage
  •  

前言

昨天先搞定了樹莓派的遠端管理方協定 SSH 和 VNC,接著今天繼續後續的 beggarFridge 的主要後端環境安裝。

Prompt / Result

提示詞

以樹莓派3B 為 Server,產生智慧冰箱應用需要安裝部署的程式建議。

結果

sudo apt install -y \
  git \
  curl \
  wget \
  vim \
  htop \
  tree \
  build-essential \
  python3 \
  python3-pip \
  python3-venv \
  python3-dev \
  sqlite3
  • 都只是一些基本要使用的開發環境工具,選擇了 SQLite3 資料庫。

驗證安裝

  • 在樹莓派上運作下列指令
python3 --version
git --version
sqlite3 --version
  • 結果如下
Python 3.13.5
git version 2.47.3
3.46.1 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69aalt1 (64-bit)

IaC / 架構即原始碼

  • 架構即原始碼 / 架構即代碼
    • 代碼到底是不是支語⋯⋯我剛剛查了一下,是!
  • 不只是現在,從很早之前,對於系統上的套件管控,都會面臨同時存在「開發者」「測試環境」「線上環境」等多個環境,至少不太會直接在樹莓派上打程式。 所以在跨環境的狀態下,安裝和更新套件都要同步,那不是件輕鬆的事情。
  • 導入 「Infrastructure as Code, IaC」 將架構寫成程式碼,或是定義在文字檔案中,並且透過工具讀取這個程式碼來統一環境,都是工程師的血淚經驗談。
  • 接下來所使用到的套件,會獨立安裝在「所屬專案目錄下」的虛擬環境目錄。 如下方列出的 .venv
Raspberry Pi OS
│
├── System Python
│
└── beggarFridge
      │
      └── .venv
           ├── FastAPI
           ├── Uvicorn
           ├── OpenCV
           ├── Pillow
           └── ...

在開發機上初始專案吧!

  • 我的個人習慣在開發機上,使用者家目錄下,建立一個開發原始碼專屬的目錄,好比 /home/user/ 這個是家目錄。在家目錄下,建立一個和 github 帳號同名的目錄,拿分放 repo。
cd ~
mkdir -p exsky/beggarFridge
cd ~/exsky/beggarFridge
  • 接著先把下面幾個目錄都生出來
mkdir -p \
  app \
  photos \
  camera \
  barcode \
  database \
  logs \
  scripts

  • 不過因為還沒開始開發,想像之後可能會擺些程式,像下面這樣
beggarFridge/
│
├── app/
│   ├── main.py
│   ├── api/
│   ├── models/
│   └── services/
│
├── camera/
│   └── camera.py
│
├── barcode/
│   └── scanner.py
│
├── database/
│   └── fridge.db
│
├── photos/
│   └── *.jpg
│
├── logs/
│
├── scripts/
│
├── .venv/
├── requirements.txt
└── README.md
  • 初始化 venv
cd ~/exsky/beggarFridge
python3 -m venv .venv
source .venv/bin/activate

python -m pip install --upgrade pip

https://ithelp.ithome.com.tw/upload/images/20260921/20130149h4PdW18rcJ.png

架構

ESP32-S3-CAM                Raspberry Pi 3
     │                            │
     │                            │
  OV3660                       FastAPI
     │                            │
  microSD                     SQLite

小結

截至目前為止,透過 AI 餵入希望解決的問題後,都還在準備硬體和環境的調整,尚未真正地開發功能ㄛ。


上一篇
【Day 4】Raspberry Pi 架設
下一篇
【Day 6】從 FastAPI 出發
系列文
窮鬼冰箱升級計劃 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言