ESP32-CAM

【ESP32-CAM 實作教學】第六篇:自動拍照取影像並透過 Gmail 發送 SMTP 電子郵件通知

在物聯網(IoT)的應用場景中,遠端影像監控與即時報警系統是非常熱門的專題。本篇教學將帶領大家使用高性價比的 ESP32-CAM 開發板,實作一個「智慧相機通知系統」。當 ESP32-CAM 啟動或觸發時,系統會自動拍攝照片,並透過 SMTP 協議(Simple Mail Transfer Protocol) 將影像作為附件,即時發送到指定的 Gmail 信箱。

本範例會將拍攝的最後一張照片暫時保存在 ESP32 的 LittleFS 檔案系統 中,確保檔案讀寫的安全與穩定性,非常適合用於居家防盜、溫室監控或門禁警報等專題。

🔑 一、Google 帳戶安全設定:申請 16 位元應用程式密碼

由於 Google 提高了安全性防護,傳統的 Gmail 密碼已無法直接在 Arduino 程式碼中登入。我們必須為 ESP32-CAM 申請一組專用的「應用程式密碼」。

💡 SEO 專家貼心建議:

強烈建議您為此專案申請一個全新的 Google Mail 帳號作為「寄件者」,請勿使用您日常的主要電子郵件帳號。若程式碼在測試過程中發生異常,導致短時間內發送過多電子郵件,該帳號可能會被 Google 判定為垃圾郵件帳號而遭暫停使用。

步驟 1:開啟 Google 兩步驟驗證

  1. 登入您的 Google 帳戶,進入「Google 帳戶管理」面板。

  2. 點選左側功能欄的 [安全性]

  3. 找到「如何登入 Google」,點選 [兩步驟驗證] > 按下 [開始]

  4. 按照畫面提示流程完成設定。

Google帳戶安全性設定介面,開啟兩步驟驗證步驟說明

 

步驟 2:產生 ESP32 專用應用程式密碼

  1. 啟用兩步驟驗證後,回到安全性頁面,在上方搜尋欄輸入 「應用程式密碼」 並點選搜尋結果。

  2. 應用程式密碼設定: 自行輸入一個容易辨識的名稱(例如:ESP32-CAMESP)。

  3. 按下 [建立],畫面會彈出一個視窗,顯示一組 16 位元的隨機密碼

  4. 📌 請立即將這組密碼記錄或截圖保存,接下來我們必須將它填入 Arduino 程式碼中。

在Google帳戶設定中搜尋應用程式密碼以供ESP32-CAM發信使用

 

應用程式密碼設定:

  1. 自行設定應用程式名稱:如ESP。
  2. 按下建立後彈跳出畫面顯示:16位密碼 。
  3. 將密碼記錄或截圖下來,接下來在程式內填入。

新增Google應用程式密碼,輸入自訂名稱ESP32-CAM設定流程

Google系統產生的16位元應用程式隨機密碼視窗,用於Arduino程式登入

 

📦 二、Arduino IDE 環境配置與程式庫安裝

在開始編寫程式之前,我們需要安裝專門處理郵件傳送的第三方程式庫。

  1. 開啟您的 Arduino IDE 開發環境。

  2. 點選左側的「程式庫管理員」圖示(或至選單:工具 > 管理程式庫)。

  3. 在搜尋欄輸入 ESP-Mail-Client

  4. 找到對應的程式庫後,點選 [安裝](您也可以至該專案的 GitHub 官方頁面下載 ZIP 檔手動安裝)。

Arduino IDE程式庫管理員搜尋並安裝ESP-Mail-Client郵件程式庫教學

 

💻 三、範例程式碼開啟與核心參數修改

安裝完成後,您可以直接開啟 ESP-Mail-Client 內建的範例程式,並根據您的網路與信箱環境修改以下主要參數:

點選安裝ESP-Mail-Client程式庫,用於ESP32發送Gmail SMTP通知

 

主要程式參數修改說明

  1. #define SMTP_HOST “smtp.gmail.com” <– (設定為 Google 的 SMTP 伺服器網址)。
  2. #define AUTHOR_EMAIL “<email>” <– (填入您剛剛專門申請的「寄件方」Gmail 帳號)。
  3. #define AUTHOR_PASSWORD “<password> <– (填填入剛才產生的 16 位元 Google 應用程式密碼,注意:中間不留空格)。
  4. #define RECIPIENT_EMAIL “<recipient email here>” <– (填入您用來接收通知的「收件方」電子郵件地址)。

請確保您的 ESP32-CAM 同時也已正確設定 Wi-Fi 的 SSID 與密碼,以便連上網路發送郵件。

ESP32-CAM範例程式碼修改,設定Wi-Fi密碼 設定SMTP伺服器與Gmail應用程式密碼

🏁 四、成果驗證與 Serial Log 測試

  1. 將程式碼成功上傳(Upload)至 ESP32-CAM 開發板。

  2. 拔掉下載線並重新上電(或按下板子上的 RST 復位鍵)。

  3. 開啟 Arduino IDE 的 序列埠監控器(Serial Monitor),將波特率調整至程式設定值(通常為 115200)。

  4. 當系統成功連線並完成拍照後,您會看到 Serial Log 顯示 「郵件傳送成功(Message sent successfully)」的訊息。

  5. 此時,您的手機或電腦便會跳出收到新郵件的通知。點開郵件即可看見內文,以及剛剛 ESP32-CAM 所即時拍攝的現場照片附件!

(本文參考來源:Random Nerd Tutorials – ESP32-CAM Send Photos via Email)

 

▼上傳完成esp32-cam重新上電,可以看到serial log傳送成功。

Arduino IDE序列埠監控器顯示ESP32-CAM發送Gmail郵件成功Log日誌

 

▼手機彈出收到MAIL通知,點開後可收看內文。

手機Gmail信箱成功接收ESP32-CAM自動拍照並透過SMTP發送的照片附件通知

 

 

🎯 延伸閱讀與相關 IoT 專題教學