在校園或辦公室中,傳統的簽到系統非常廣泛,例如:NFC/RFID 打卡簽到、QRCode 掃碼簽到或 GPS 定位簽到。然而,這些方法都無法完全避免「代打卡」或「代簽到」的漏洞。
本篇教學將帶大家利用 ESP32-CAM 開發板 結合 紅外線感測模組,打造一套具備防代簽功能的智慧拍照簽到系統。當有人員靠近簽到機時,系統會自動觸發紅外線感測,讓 ESP32-CAM 拍攝人臉影像,並透過 Gmail (SMTP) 即時將照片傳送給管理員。
📌 課前準備提示: > 在開始本篇實作前,請務必先閱讀前置教學:【ESP32-CAM】第六篇:拍照取影像 Gmail 發送通知 (SMTP 基礎設定),確保您的 Google 應用程式密碼與 SMTP 服務已正確啟用。
🛠 硬體配置與所需材料
要完成這個物聯網(IoT)專題,您需要準備以下核心硬體材料:
ESP32-CAM 開發板:具備 WiFi 與相機功能的主控板。
紅外線感測模組(避障感測器 / PIR):用來偵測是否有同學或員工靠近簽到。
UART 燒錄器 (TTL 轉 USB 模組):用於將程式碼上傳至 ESP32-CAM。
杜邦線:用於連接開發板與感測器。
ESP32-CAM 與紅外線感測器接線圖
💻 Arduino 程式碼撰寫與邏輯優化
在原始的程式範例中,通常會把發送 Email 的功能直接寫在 void setup() 中,這會導致系統只能在開機時發送一次。
為了符合實際的「簽到簽退邏輯」,我們將發送 Mail 的程式封裝成獨立的函式(Function)。當紅外線感測器傳送數位訊號(Digital Signal)通知有物體靠近時,程式才會觸發相機拍照並執行該發送函式。
關鍵程式參數設定說明:
在燒錄程式前,請記得修改程式碼中的以下核心參數:
相機型號設定:保留定義
#define CAMERA_MODEL_AI_THINKER(大部分市售 ESP32-CAM 皆為此型號)。WiFi 資訊:填入您的無線網路
ssid與password。寄件者設定:填入
AUTHOR_EMAIL(寄件方的 Gmail)。應用程式密碼:填入
AUTHOR_PASSWORD(請注意,這不是您的 Gmail 登入密碼,而是 Google 帳戶後台產生的「應用程式密碼」)。收件者設定:填入
RECIPIENT_EMAIL(管理員或簽到記錄系統的 Mail)。
(完整整合好的 Arduino 程式原始碼範例,歡迎至文章底部點擊連結免費下載!)
🚀 實測結果與運作流程
當我們將程式燒錄進 ESP32-CAM 並重新上電運作後,可以透過 Arduino IDE 的「序列埠監控器 (Serial Monitor)」觀察系統運作狀態:
感測觸發:當紅外線偵測器感測到約 5 公分內有人臉、手掌或物體靠近時,系統會立即啟動相機。
拍照與傳送:相機擷取影像後,透過預設的 WiFi 網路連接 Gmail SMTP 伺服器。
日誌確認:從 Serial Log 中可以看到
Mail sent successfully!等傳送成功的訊息。收信檢查:打開收件匣,就能即時收到依照簽到順序排列的照片與通知信件,完美落實防代簽的智慧點名!
我們將相機設置於門口當有人闖入時,人體感應器觸發,自動拍照並傳送圖片至Gmail
📥 免費下載 ESP32-CAM 簽到系統程式範例
我們已經為您將紅外線感測與 Gmail SMTP 照片發送功能整合完畢。請點擊下方連結下載完整程式碼,即可直接在 Arduino IDE 中編輯使用:
📋 延伸閱讀與相關教學
上一篇:【ESP32-CAM】第七篇:DIY 智慧上課簽到系統:紅外線自動拍照與 Gmail 通知(防代打卡物聯網應用)
下一篇:【ESP32-S3 教學】第一篇:最強 AI IoT 開發神器!ESP32-S3 N16R8 環境配置與點燈範例
更多物聯網教學:歡迎觀看 米羅科技文創學院 – IoT 物聯網專區 學習更多 ESP32 與感測器應用!




