iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
自我挑戰組

第一次團體專題系列 第 25

Day 25 : ESP32-CAM 行動監控神器!打造 Wi-Fi 攝影機

  • 分享至 

  • xImage
  •  

ESP32-CAM可以達成很多有用的小工具 , 這幾天將介紹幾個有趣的小設計哦~

完成一台能用手機、平板、筆電即時監控畫面的 Wi-Fi 攝影機。
你將學會:
✅ 讓 ESP32-CAM 上傳即時影像
✅ 找出它的 IP 並連接
✅ 設定自動拍照排程


準備材料

名稱 數量 備註
ESP32-CAM 模組(AI Thinker) 1 主角本人
USB-TTL 轉接模組 1 幫忙燒錄與供電
杜邦線 約 5 條 母對母
電腦(已安裝 Arduino IDE) 1 版本建議 1.8+ 或 2.0+
Wi-Fi 網路 1 要能上網、穩定信號

步驟 1:接線(非常關鍵)
請用下表方式把 ESP32-CAM 與 USB-TTL 模組連好

USB-TTL 腳位 接到 ESP32-CAM 腳位 說明
5V 5V 電源輸入
GND GND 接地
TXD U0R 傳送資料線
RXD U0T 接收資料線
IO0 GND 只在燒錄程式時接!(上傳完要拔掉)

💡 小提醒:
如果接錯 TX/RX,電腦會無法找到 COM Port 或無法上傳程式。
如果畫面出現「Brownout」錯誤,請用 5V 供電(不要只靠 3.3V)。


步驟 2:設定 Arduino IDE

  1. 開啟 Arduino IDE → 偏好設定
  2. 在「額外開發板管理員網址」輸入:
https://dl.espressif.com/dl/package_esp32_index.json
  1. 工具 → 開發板 → 選擇 AI Thinker ESP32-CAM
  2. 工具 → 序列埠選擇對應的 COM Port

步驟 3:載入範例程式
在 Arduino IDE 中打開:
File → Examples → ESP32 → Camera → CameraWebServer

然後修改以下兩行 Wi-Fi 資料:

const char* ssid = "你的WiFi名稱";
const char* password = "你的WiFi密碼";

確認攝影機型號設定為:

#define CAMERA_MODEL_AI_THINKER

步驟 4:上傳程式

  1. 確保 IO0 已接 GND(進入燒錄模式)
  2. 按下「上傳」按鈕
  3. 出現「Connecting...」訊息時,快速按一下 Reset 鍵
  4. 上傳完成後,拔掉 IO0 與 GND 的連線
  5. 按一下 Reset 讓它重開機

步驟 5:找到 IP 位址

打開 序列埠監控器 (115200 baud)
會看到類似以下訊息:

WiFi connected
Camera Ready! Use 'http://192.168.0.105' to connect

👉 複製這個 IP 位址(例如 192.168.0.105),
在你的手機或電腦瀏覽器輸入它。

🎉 恭喜!現在你就能即時看到 ESP32-CAM 的畫面了!


步驟 6:加入自動拍照排程
如果你想讓它自動拍照並存在 SD 卡,可在 loop() 裡加入這段:

unsigned long lastCaptureTime = 0;

void loop() {
  if (millis() - lastCaptureTime > 300000) { // 每5分鐘
    capturePhotoSaveSD();
    lastCaptureTime = millis();
  }
}

記得在模組插入 microSD 卡(格式 FAT32)
拍下的照片會依時間自動儲存。


應用範例
🐶 寵物監視器:看看家裡毛孩在幹嘛
🌿 植物生長日誌:每天自動記錄變化
🚗 停車位監控:偵測車位是否空出
💬 Tip:想遠端看?可以搭配 Ngrok
把你的本地端串流開到外網,
或學 MQTT,把影像上傳到雲端平台(像 GCP、AWS IoT、Adafruit IO)。


小補充:調整畫質與影像延遲
在網頁右上角設定可以切換:

  • Frame Size(影像解析度)
  • Quality(品質)
  • Brightness / Contrast / White Balance
    高畫質會增加延遲,建議在家用 Wi-Fi 下選 SVGA (800x600) 比較穩定。

上一篇
Day 24 : USB-TTL 模組到底是誰?
系列文
第一次團體專題25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言