ESP32-CAM

【ESP32-CAM 教學】第八篇:實作智慧物聯網上課簽到系統:結合紅外線感測與 Gmail 照片即時通知

ESP32-CAM 物聯網智慧上課簽到系統與 Gmail 照片即時通知成果展示

在校園或辦公室中,傳統的簽到系統非常廣泛,例如:NFC/RFID 打卡簽到、QRCode 掃碼簽到或 GPS 定位簽到。然而,這些方法都無法完全避免「代打卡」或「代簽到」的漏洞。

本篇教學將帶大家利用 ESP32-CAM 開發板 結合 紅外線感測模組,打造一套具備防代簽功能的智慧拍照簽到系統。當有人員靠近簽到機時,系統會自動觸發紅外線感測,讓 ESP32-CAM 拍攝人臉影像,並透過 Gmail (SMTP) 即時將照片傳送給管理員。

              📌 課前準備提示: > 在開始本篇實作前,請務必先閱讀前置教學:【ESP32-CAM】第六篇:拍照取影像 Gmail 發送通知 (SMTP 基礎設定),確保您的 Google 應用程式密碼與 SMTP 服務已正確啟用。

 

🛠 硬體配置與所需材料

要完成這個物聯網(IoT)專題,您需要準備以下核心硬體材料:

  1. ESP32-CAM 開發板:具備 WiFi 與相機功能的主控板。

  2. 紅外線感測模組(避障感測器 / PIR):用來偵測是否有同學或員工靠近簽到。

  3. UART 燒錄器 (TTL 轉 USB 模組):用於將程式碼上傳至 ESP32-CAM。

  4. 杜邦線:用於連接開發板與感測器。

ESP32-CAM 與紅外線感測器接線圖

ESP32-CAM 連接 PIR 紅外線感應器與 USB 轉 TTL 燒錄接線電路圖

 

 

💻 Arduino 程式碼撰寫與邏輯優化

在原始的程式範例中,通常會把發送 Email 的功能直接寫在 void setup() 中,這會導致系統只能在開機時發送一次。

為了符合實際的「簽到簽退邏輯」,我們將發送 Mail 的程式封裝成獨立的函式(Function)。當紅外線感測器傳送數位訊號(Digital Signal)通知有物體靠近時,程式才會觸發相機拍照並執行該發送函式。

關鍵程式參數設定說明:

在燒錄程式前,請記得修改程式碼中的以下核心參數:

  • 相機型號設定:保留定義 #define CAMERA_MODEL_AI_THINKER(大部分市售 ESP32-CAM 皆為此型號)。

  • WiFi 資訊:填入您的無線網路 ssidpassword

  • 寄件者設定:填入 AUTHOR_EMAIL(寄件方的 Gmail)。

  • 應用程式密碼:填入 AUTHOR_PASSWORD(請注意,這不是您的 Gmail 登入密碼,而是 Google 帳戶後台產生的「應用程式密碼」)。

  • 收件者設定:填入 RECIPIENT_EMAIL(管理員或簽到記錄系統的 Mail)。

(完整整合好的 Arduino 程式原始碼範例,歡迎至文章底部點擊連結免費下載!)

申請 Google 帳戶 16 位元應用程式密碼以供 ESP32-CAM SMTP 郵件發送使用

 

 

 

🚀 實測結果與運作流程

當我們將程式燒錄進 ESP32-CAM 並重新上電運作後,可以透過 Arduino IDE 的「序列埠監控器 (Serial Monitor)」觀察系統運作狀態:

  1. 感測觸發:當紅外線偵測器感測到約 5 公分內有人臉、手掌或物體靠近時,系統會立即啟動相機。

  2. 拍照與傳送:相機擷取影像後,透過預設的 WiFi 網路連接 Gmail SMTP 伺服器。

  3. 日誌確認:從 Serial Log 中可以看到 Mail sent successfully! 等傳送成功的訊息。

  4. 收信檢查:打開收件匣,就能即時收到依照簽到順序排列的照片與通知信件,完美落實防代簽的智慧點名!

Arduino IDE 序列埠監控視窗顯示 ESP32-CAM 成功連線 Wi-Fi 並發送郵件日誌

 

我們將相機設置於門口當有人闖入時,人體感應器觸發,自動拍照並傳送圖片至Gmail

手機 Gmail 聯網接收到由 ESP32-CAM 自動感應拍攝並發送的簽到照片通知

 

📥 免費下載 ESP32-CAM 簽到系統程式範例

我們已經為您將紅外線感測與 Gmail SMTP 照片發送功能整合完畢。請點擊下方連結下載完整程式碼,即可直接在 Arduino IDE 中編輯使用:

👉 免費下載:ESP32-CAM 智慧簽到系統程式範例點我

 

📋 延伸閱讀與相關教學