yesalphahere/SentinelCam-ESP32

GitHub: yesalphahere/SentinelCam-ESP32

该项目利用 ESP32-CAM 和 PIR 传感器构建了一个无需服务器的移动侦测安防系统,检测到移动后自动拍照上传 Google Drive 并向手机推送报警通知。

Stars: 2 | Forks: 0

SentinelCam-ESP32 banner # 🛡️ SentinelCam-ESP32 ### Serverless ESP32-CAM + PIR 移动安防报警系统 **检测移动 → 捕获证据 → 上传至 Google Drive → 向手机发送报警** *无需 Raspberry Pi。无需本地服务器。无需保持电脑开机。* [![平台](https://img.shields.io/badge/Platform-ESP32--CAM-blue?style=flat-square)](https://github.com) [![后端](https://img.shields.io/badge/Backend-Google%20Apps%20Script-yellow?style=flat-square)](https://script.google.com) [![存储](https://img.shields.io/badge/Storage-Google%20Drive-brightgreen?style=flat-square)](https://drive.google.com) [![报警](https://img.shields.io/badge/Alerts-Pushover-orange?style=flat-square)](https://pushover.net) [![许可证](https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square)](LICENSE) [概述](#-overview) • [概念验证](#-proof-of-concept--field-tested-not-just-a-diagram) • [架构](#-architecture) • [功能](#-features) • [硬件](#-hardware) • [快速开始](#-quick-start) • [配置指南](#-full-setup-guide) • [路线图](#-roadmap)
## 📖 概述 **SentinelCam-ESP32** 将一块价值 6 美元的 ESP32-CAM 开发板和一个 PIR 移动传感器变成了一个完全 serverless 的物理安全系统。当检测到移动时,相机会捕获静态图像,通过 **Google Apps Script** Web 应用将其直接上传至 **Google Drive**,并向您的手机发送 **Pushover** 推送通知 —— 所有这些都无需 Raspberry Pi、家用服务器或任何必须保持开机的机器。 适用场景: - 🏠 私密房间和家庭办公室 - 🏭 仓库和车库 - 🖥️ 服务器机房和实验室 - 🔐 小型办公室和机密区域 - 🎓 预算友好的 IoT / 物理安全学习 ## 📸 概念验证 — 经过实地测试,不仅是理论图 这不是一个理论上的构建。以下是 **2026 年 7 月 2 日** 实时捕获的完整流水线。
### 🔧 硬件部分 | 完整构建 | 接线与供电 | 系统布防 | |:---:|:---:|:---:| | | | | | ESP32-CAM、PIR 传感器及备用模块展示 | 在面包板上完成接线并由充电宝供电运行 | 特写 —— LED 指示灯亮起,正在主动监控 | ### ☁️ Google Drive 中的实时事件 | 自动生成的事件文件夹 | 每次移动事件 3 张图片 | |:---:|:---:| | | | | 每次移动触发都会自动创建带时间戳的文件夹 | 每次事件捕获 3 张证据照片,瞬间保存 | ### 📲 实时 Pushover 报警 | 实时报警推送 | 报警详情 → Drive 链接 | |:---:|:---:| | | | | 真实的 "ESP32-CAM Motion Alert" 推送通知流 | 点击报警可直接跳转到 Drive 上捕获的证据 |
**这证明了:** PIR 传感器检测到移动 → ESP32-CAM 捕获图像 → 上传并在 Google Drive 中按文件夹组织 → 推送通知发送到手机,并附带指向证据的有效链接 —— 完整的架构,正常运行,并有时间戳作为证明。 ## 🧠 架构 ``` flowchart TD A[PIR Motion Sensor] -->|Motion HIGH on GPIO13| B[AI Thinker ESP32-CAM] B -->|Capture JPEG Image| C[Base64 Encode] C -->|HTTPS POST JSON| D[Google Apps Script Web App] D -->|Validate DEVICE_SECRET| E{Authorized?} E -->|No| F[Reject Request] E -->|Yes| G[Decode Base64 Image] G --> H[Create Event Folder in Google Drive] H --> I[Save JPEG Evidence] I --> J[Pushover API] J --> K[📱 Mobile Security Alert] ``` **流程简述:** PIR 传感器触发 → ESP32-CAM 唤醒并拍摄 2-3 张 JPEG 图像 → 图像被 Base64 编码并 POST 到 Google Apps Script endpoint → 脚本验证 shared secret,将图像保存到带时间戳的 Drive 文件夹中,并推送带有证据直链的 Pushover 通知。 ## ✨ 功能 - 📸 每次移动事件**多图捕获**(数量和间隔可配置) - ☁️ **Serverless 后端** —— Google Apps Script + Drive,零托管成本 - 🔔 通过 Pushover 发送**即时推送报警**,并带有指向 Drive 文件夹的直接链接 - 🔐 设备与后端之间的**Shared-secret 身份验证** - ⏱️ **PIR 预热与冷却逻辑**,可抑制错误/重复触发 - 🪫 **防掉电启动**和自动 WiFi 重连 - 💡 用于启动、WiFi 连接和移动事件的**状态 LED 指示灯** - 🛠️ **完全可配置** —— 图像大小、质量、冷却时间、闪光灯等 ## 🧰 硬件 | 组件 | 必需 | 备注 | |---|:---:|---| | AI Thinker ESP32-CAM | ✅ | 主摄像头 + WiFi 开发板 | | PIR 移动传感器 (HC-SR501) | ✅ | 推荐模块 | | FTDI USB 转串口适配器 | ✅ | 烧录固件所需 | | 跳线 | ✅ | 推荐使用公对母跳线 | | 5V / 1–2A 电源 | ✅ | 稳定的电源可防止掉电重启 | | 10kΩ 电阻 (GPIO13 → GND) | 推荐 | 防止引脚悬空 | | 面包板 | 可选 | 在测试期间很有用 | | 外壳 / 保护盒 | 可选 | 用于最终安装 | ## 🖧 技术栈 | 层级 | 技术 | |---|---| | 固件 | Arduino (C++) on ESP32-CAM | | 传输 | HTTPS POST (JSON + Base64 image) | | 后端 | Google Apps Script (serverless) | | 存储 | Google Drive | | 通知 | Pushover API | ## ⚡ 快速开始 ``` # 1. Clone the repository git clone https://github.com/yesalphahere/SentinelCam-ESP32.git cd SentinelCam-ESP32 # 2. 在 Arduino IDE 中打开 firmware # 文件:ESP32CAM_PIR_Security_Alert_System.ino # 3. 填入你的私密值(WiFi, Web App URL, DEVICE_SECRET) # 4. 将 SentinelCam_CloudBridge_AppsScript.js 部署到 Google Apps Script # (Deploy → Web App → Execute as Me → Access: Anyone) # 5. Flash ESP32-CAM,接通电源,并 arm 系统 ``` 📌 如需完整的分步操作指南 —— 接线图、Arduino IDE 设置、Google Drive/Apps Script 部署、Pushover 配置和故障排除 —— 请参阅 **[完整配置指南](SETUP_GUIDE.md)**。 ## 📁 仓库结构 ``` SentinelCam-ESP32/ │ ├── ESP32CAM_PIR_Security_Alert_System.ino # ESP32-CAM Arduino firmware ├── SentinelCam_CloudBridge_AppsScript.js # Google Apps Script backend ├── SETUP_GUIDE.md # Full installation & setup guide ├── README.md # You are here ├── LICENSE # MIT License └── assets/ ├── banner.svg # README hero banner ├── hardware/ # Build photos └── screenshots/ ├── drive/ # Google Drive event proof └── pushover/ # Pushover alert proof ``` ## 📚 完整配置指南 本 README 是项目的主页。完整、详细的说明 —— 接线表、PIR 调试、Arduino IDE 配置、Google Drive 和 Apps Script 部署、Pushover 设置、首次启动测试以及 15 点故障排除指南 —— 位于: ### 👉 [`SETUP_GUIDE.md`](SETUP_GUIDE.md) ## 🔒 安全模型 设备到云的请求通过 shared secret (`DEVICE_SECRET`) 进行身份验证,在写入任何文件或发送通知之前,每次上传都会对其进行验证。本仓库中的所有示例配置值在设计上均为占位符 —— 不会发布任何真实的凭据、endpoint 或 token。 ## 🗺️ 路线图 - [ ] 支持 Telegram 通知作为 Pushover 的替代方案 - [ ] 用于浏览捕获事件的 Web 仪表板 - [ ] 支持多相机 / 多区域 - [ ] 电池 + 太阳能供电方案 ## 📜 许可证 基于 **MIT License** 发布 —— 详情请参阅 [`LICENSE`](LICENSE)。
**项目:** SentinelCam-ESP32 **开发者:** Sabir Ali (Alpha) **用途:** 防御性监控与教育性 IoT 安全自动化 ⭐ 如果这个项目对您有帮助,请考虑给仓库点个 Star!
标签:ESP32-CAM, 智能硬件, 物理安全, 物联网, 监控告警