设计一款电池供电的智能监控摄像头,支持实时Wi-Fi流媒体、运动检测、夜视功能和SD录像
在这个项目中,我打造了Sentra——最智能的DIY监控摄像头,这是一款基于ESP32-S3构建的全电池供电智能安防系统。Sentra将实时Wi-Fi视频流、持续的SD卡录像、运动检测、自动夜视、实时声音监测,甚至机器人语音播报功能,集成于一个紧凑而定制化的设备之中。
整个机箱和界面均采用 Autodesk Fusion 360 设计,注重简洁美观、便携性以及未来感的用户体验。除了硬件之外,我还开发了一个定制化的实时仪表盘,可直接在任意浏览器中运行,无需应用程序、订阅或云服务。
这个项目对我来说特别之处在于,所有功能都直接在设备本地运行。从动作分析、自适应红外控制,到实时语音合成和传感器监测,Sentra 的设计旨在展示现代DIY硬件在精心的工程与创意结合下所能达到的极致水平。
这个项目是我尝试打造一个智能摄像头系统,使其感觉不像普通的DIY制作,而更像是一款真正的下一代产品。
由NextPCB赞助
制作硬件项目可能会花费不菲,但NextPCB让创客、初创企业和工程师的流程变得更加简单。目前,订购10件或以下数量的专业整机PCB组装产品,最高可享200美元优惠。
从PCB制造和元器件采购到整机组装与测试,NextPCB一站式提供可靠品质和快速服务。无论您是在开发物联网设备、机器人项目,还是定制电子产品,这一方案都能让您以专业的方式进行原型制作,同时节省成本。
1:CAD设计
该项目的第一步是设计Sentra的整体外壳和内部结构。我从零开始在Autodesk Fusion 360中创建所有部件,注重简洁的曲线、紧凑的尺寸、合理的部件间隙以及易于组装。
由于这款相机设计为便携式且使用电池供电,我希望机身外观简洁、现代,更像一款产品而非典型的DIY电子项目,同时保持整体设计的纤薄与干净。
在设计过程中,我参考并借鉴了Mukesh Sankhla这个优秀项目中的创意。强烈推荐你去看看,这是一项设计精美且文档详尽的搭建作品。
2:3D打印
CAD设计完成后,下一步是打印所有外壳部件。该设计包含三个主要的打印组件:
•主住房
•顶盖
•按钮扩展
本次打印我选择了灰色PLA线材,因为它能让相机看起来干净且现代,同时便于打印,具有高尺寸精度。PLA是实现光滑表面质量和保持装配所需严格公差的理想选择。
3:扬声器装配
下一步是将扬声器安装到机箱内部。我先将扬声器的线缆裁剪成合适的长度,并额外多加了一些线,以便后续组装更方便、更整洁。
之后,我将扬声器的胶贴背板取下,并小心地将其放入主机壳体内的专用安装区域。然后施加了一点压力,确保其牢固固定到位。
4:电池组件
下一步是将电池安装到外壳中。首先,我用焊锡将两根电线连接到电池端子上,以便在最终的电子组装过程中更方便地进行电源连接。
顶部盖板在 Autodesk Fusion 360 中已设计有专用的电池仓,因此电池可以整齐地安装到位,不浪费内部空间。将电池放入槽内后,我用少量胶水将其牢固固定。
5:充电模块连接
下一步是将电池连接到充电模块上。首先,我将电池的导线焊接到模块上的正确正负极,确保极性连接正确,以避免损坏电路。
之后,我将另一对导线焊接到充电模块的5V输出端子上。这些输出导线稍后将用于为Sentra内部的主ESP32-S3板供电。
6:系统架构
在深入代码之前,有必要先了解 Sentra 的内部工作原理。
固件被划分为多个FreeRTOS任务,使视频流、运动检测、传感器监控、音频播放和仪表盘通信能够独立运行。这避免了某一项功能拖慢其他功能,从而保持整个系统的响应速度。
而不是将所有操作都运行在单个Arduino循环中,每个主要子系统都有自己的独立任务:
流媒体任务 → 实时视频直播
传感器任务 → 运动检测、麦克风、光感传感器
扬声器任务 → 语音播报和警报
这种架构使Sentra能够在流媒体视频的同时进行录像、检测运动并播放警报。
7:Wi-Fi 和网络设置
固件首先会连接到本地Wi-Fi网络。
连接后,ESP32-S3 将获得一个IP地址,该地址将被仪表盘和视频流系统使用。
只需打开仪表盘,输入摄像头的IP地址即可连接,无需安装任何应用程序。
8:相机初始化
相机配置为JPEG图像捕获,并针对流媒体进行了优化。
OV3660摄像头传感器将图像直接压缩为JPEG格式,然后发送到ESP32-S3。
这带来了以下几个优势:
•更低的内存使用量
•更快的Wi-Fi流媒体速度
•降低CPU负载
•更长的电池续航
使用PSRAM可以实现更大的帧缓冲区,同时不消耗宝贵的内部RAM。
9:实时视频直播
Sentra 的核心功能之一是能够通过 Wi-Fi 直接流式传输视频。ESP32-S3 持续从摄像头捕获 JPEG 图像,并将其作为 MJPEG 流传输,可通过任意网页浏览器查看。
相机拍摄一帧图像并将其存储在帧缓冲区中。固件随后通过网络将JPEG图像发送给已连接的客户端,然后将缓冲区释放回相机驱动程序,以便进行下一次拍摄。
由于相机直接输出JPEG图像,ESP32-S3无需进行额外的图像压缩,从而显著降低了CPU使用率和内存消耗。
为什么选择MJPEG?
10:运动检测引擎
为了让Sentra不仅仅是一台相机,我们实现了一套轻量级的运动检测系统,该系统完全在ESP32-S3上运行,无需依赖云端处理或专用AI硬件。
固件会持续比较连续的相机帧,并根据两帧之间检测到的变化量计算运动得分。
工作原理
每次捕获新画面时,固件都会将其与上一帧进行比较。如果检测到显著差异,运动得分就会增加。
与传统计算机视觉系统逐像素解码和分析不同,Sentra采用了一种基于轻量级JPEG的比较技术,在显著降低处理器负载的同时,仍能提供可靠的运动检测。
为什么采用这种方法?
大多数DIY安防摄像头依赖云AI服务或高性能处理器来检测运动。虽然这些方法有效,但会增加复杂性、成本和功耗。
通过使用轻量级帧差算法,Sentra可以:
•实时检测运动
•完全基于ESP32-S3运行
•保持流畅的视频播放
•降低CPU使用率
•延长电池续航时间
基于动作的指令
当运动超过预设阈值时,Sentra 可自动:
•触发运动警报
•播放语音提示
•启动警报器
•记录事件
•实时更新仪表盘
这使Sentra从一台简单的视频流摄像头转变为一个智能的智能监控系统,能够自动响应活动。
11:自动夜视系统
为确保Sentra在白天和夜间都能可靠运行,我们采用了基于LTR-308环境光传感器和红外照明LED的自动夜视系统。
固件会持续监测周围光照强度,并根据环境变暗程度自动调节红外亮度。
工作原理
LTR-308 传感器持续测量环境光强(单位为勒克斯)。当测得的亮度低于预设阈值时,Sentra 将自动切换至夜间模式。
开启夜间模式后,红外LED灯会亮起,为摄像头提供额外照明。
智能红外亮度控制
Sentra 不仅能将红外LED完全开启或关闭,还能根据周围光照条件自动调节亮度。
黑暗愈发深重:
•红外亮度自动增加
•摄像头可视性得到提升
•功耗持续得到优化
这相比简单的阈值系统,能实现更平滑的昼夜过渡。
基于PWM的红外控制
红外LED的亮度通过ESP32-S3硬件PWM控制器进行控制。
使用PWM可使Sentra精确控制红外强度,而无需始终以最大亮度运行。
这使得Sentra能够全天持续运行,并自动适应不断变化的光照条件。
12:声音监控系统
除了视频监控外,Sentrara 还通过车载 PDMDMDM 麦克风监测周围的声音环境。这使系统能够检测环境噪音水平的变化,并通过仪表盘提供实时声音监控。
麦克风持续采集音频数据,同时固件计算出稳定的声强值,该值可由系统显示并使用。
工作原理
ESP32-S3 使用其硬件 I2SS 外设从 PDMDMDM 麦克风读取音频样本。这些样本被收集到缓冲区中,并经过处理以确定整体声音电平。
与简单的峰值检测器不同,Sentra采用均方根(RMS)计算,以更准确地反映实际声强。
为什么选择RMS?
RMS测量常用于专业音响系统中,因为它反映的是声音信号的实际能量,而不仅仅是峰值值。
这能产生更真实且稳定的声级读数。
降噪平滑
原始麦克风数据可能波动迅速,导致读数不稳定。为了解决这一问题,Sentra 在更新仪表板前会先应用指数平滑处理。
这种滤波技术有助于消除突然的峰值,同时保持读数对真实环境变化的响应能力。
仪表盘集成
处理后的声级会持续发送到仪表盘,使用户能够实时监控环境活动。
音量条会自动更新,快速直观地显示相机周围噪音的活动情况。
通过将视频监控与声音分析相结合,Sentra能更敏锐地感知周围环境,相比仅使用摄像头,提供了更丰富的监控体验。
13:语音播报与智能音频引擎
Sentra 最独特的功能之一是其内置的语音播报系统。它无需使用预先录制的音频文件或基于云的文本转语音服务,而是通过数学波形合成技术,在实时生成类似语音的音频。
这意味着 Sentrara 可以完全离线地生成警报和公告,同时保持轻量级和响应迅速。
音频任务系统
为防止音频播放影响视频流和运动检测,所有声音生成均在专用的FreeRTOS任务中运行。
每当触发公告或警报时,都会被放入队列以供处理。
这能确保系统在播放音频时仍保持响应。
实时语音生成
公告引擎通过生成的波形将文本转换为独特的机器人语音。
每个单词都有其独立的计算频率,使不同词语听起来各具特色,同时保持一致的机械语音风格。
与传统的TTS系统不同:
•音频文件未被存储
•无需网络连接
•未使用外部API
•所有功能均直接运行在ESP32-S3上
声音合成
固件通过数学方式生成音频样本,并直接将其写入扬声器。
这会产生一种独特的机器人语音效果,听起来与简单的蜂鸣声或音调完全不同。
内置警报声音
除了语音提示外,Sentrara 还可以生成多种警报声音:
这些音频提示有助于快速识别不同的系统事件。
警报模式
为安全警报,Sentrara 配备了强大的警报喇叭功能。
警报器在几秒钟内从800赫兹扫频至1200赫兹,发出响亮的警告声,可轻松在房间内听到。
通过在ESP32-S3上直接生成所有音频,Sentra实现了先进的语音和警报功能,同时保持紧凑、高效且完全自给自足。
14:电池监控系统
由于Sentra设计为完全便携,电池监控在系统中起着重要作用。固件会持续测量电池电压,并将其转换为易于理解的百分比值,显示在仪表盘上。
这使用户能够实时监控剩余电量,并在设备耗尽电力前及时充电。
读取电池电压
电池电压通过连接到GPIO44的分压器,使用ESP32-S3的ADC进行测量。
电压分压器可安全地将电池电压降低到ESP32-S3 ADC可测量的电平。
降噪
为了提高准确性,固件会进行多次读数并将其平均。
这有助于消除ADC噪声,从而获得更加稳定的电压测量结果。
电池百分比计算
Sentra 不采用简单的线性计算,而是使用锂聚合物电池的放电曲线近似方法,以提供更真实的电池电量百分比。
该方法更贴近锂电池实际的放电过程,从而在整个充电周期内实现更精确的电池读数。
仪表盘集成
仪表盘上会持续更新计算出的电池百分比和电压。
用户可立即查看:
•电池电量百分比
•当前电池电压
•剩余运行时间
•直接从网页界面
由于Sentra完全依靠电池供电,了解电池状态对于可靠运行至关重要。实时的电池监控有助于防止意外关机,使相机在便携部署时更加实用。
该电池管理系统使Sentra能够作为真正便携的智能监控摄像头运行,同时不牺牲使用便利性。
15:SD卡录音引擎
虽然实时直播有助于实时监控,但Senta还能够将画面直接录制到SD卡中以便后续回放。相机捕获的每一帧画面均可存储为AVI视频文件的一部分,使系统可作为完整的独立式闭路电视解决方案运行。
与许多仅提供直播的DIY相机项目不同,SentrA同时支持实时观看和本地视频录制。
开始录制时,固件会在SD卡上创建一个新的AVI文件,并写入所需的视频头信息。
选择AVI格式是因为它被广泛支持,大多数计算机都可以直接打开,无需安装特殊软件。
每次捕获新画面时,都会直接写入AVI文件。
每个画面以JPEG图像形式存储在AVI容器内,生成一个轻量级的MJPEG视频文件。
多任务架构的一个优势是,录制过程可以与实时视频流同时进行。
这使用户能够:
•观看实时画面
•记录影像
•监控传感器
•同时进行,互不干扰
为防止SD卡因超大文件而被占满,当当前文件达到预设大小时,Sentra会自动创建新的记录。
默认情况下,每400 MB会创建一个新的AVI文件。
这使得:
•文件管理更轻松
•播放平滑器
•数据传输更快
同时避免录制过大的文件。
录制停止后,Sentra 会完成 AVI 文件的生成,并创建所需的索引信息。
这可确保视频在标准媒体播放器中能够正确播放。
通过该系统,Sentaenta 可作为真正的独立式安防摄像头运行,既能本地录制视频,又能通过仪表盘提供实时远程访问。
16:Web 服务器与仪表板通信
为了使 Sentra 更易于使用,我们在 ESP32-S3 上直接构建了一个轻量级的网络服务器。该服务器作为硬件与在线仪表板之间的桥梁,可实现从网络中的任何设备进行实时监控和控制。
无需专用的移动应用程序,所有通信均通过简单的网络请求完成,使系统具有平台无关性且易于访问。
固件会创建一个HTTP服务器,用于监听来自仪表盘的传入请求。
服务器启动后,将负责处理实时视频流、传感器数据请求以及用户指令。
摄像头画面通过专用的流媒体端点传输。
每当仪表盘请求 /stream 时,ESP32-S33 就会开始实时传输 MJPEGPEGPEG 帧。
这就是浏览器中可见的实时视频流所依赖的内容。
仪表盘还需要访问实时传感器信息。
此端点提供以下信息:
•运动级别
•电池电量百分比
•声强
•环境光强度
•SD卡使用
•录音状态
•夜视状态
仪表板会持续轮询此端点,以保持所有信息的最新状态。
仪表盘中的用户操作会通过控制端点发送回ESP32-S3。
此端点负责处理以下命令:
•开始录制
•停止录制
•触发警报器
•播放公告
•切换红外模式
当命令到达时,固件会更新相应的子系统。
这在仪表盘控制与Sentra内部运行的硬件之间建立了直接连接。
服务器在主循环中持续处理传入的请求。
这使得仪表板在保持响应的同时,其他任务如流媒体、运动检测、录像和音频播放仍可在后台继续运行。
使用内置的Web服务器具有以下几大优势:
•无需移动应用程序
•跨平台兼容性
•简单浏览器访问
•轻量级通信
•轻松定制
适用于手机、平板电脑和电脑
通过暴露简单的网络端点,ESP32-S33 可以与在线仪表板无缝通信,同时保持轻量级和高效。
17:仪表板架构
虽然ESP32-S3负责视频流处理、录制、运动检测和传感器数据处理,但我们希望用户体验能够现代、直观,并且可通过任何设备轻松访问。为此,我们开发了一个完全定制的网页仪表盘,作为Sentra的控制中心。
与传统应用程序不同,仪表板被构建为一个独立的HTML文件,无需外部框架,没有安装过程,且仅依赖浏览器本身。这使得部署极为简便,同时保持了系统的轻量性和快速性。
我们没有开发专门的安卓或iOS应用程序,而是选择了基于浏览器的方法,因为这种方法具有以下几大优势:
•适用于手机、平板电脑和电脑
•无需安装应用程序
•跨平台
•易于更新和维护
•可在任何现代浏览器中访问
仪表板通过简单的HTTP请求,直接使用Wi-Fi与ESP32-S3通信。
仪表盘持续接收来自摄像头的实时数据,同时发送诸如以下命令的用户指令:
•开始或停止录制
•启动警报器
•触发语音提示
•控制夜视
•监控系统状态
•单态架构
我特别自豪的一个设计决策是采用了集中式状态驱动架构。
屏幕上显示的每一项信息都来自这个单一的状态对象。
当ESP32-S3接收到新数据时:
仪表板会自动更新。
这种方法使界面保持有条理、可预测且易于维护,同时确保每个小部件始终显示最新的设备状态。
18:UI设计与玻璃形态界面
由于Sentra的设计旨在让人感觉像一款现代的智能安防产品,而非传统的DIY项目,因此我们花费了大量时间来设计一个简洁、响应迅速且视觉效果出众的用户界面。
整个仪表板均使用纯HTML、CSS和JavaScript构建,无需依赖外部UI框架。这使得仪表板轻量高效,同时完全掌控其设计和用户体验。
我们的目标是打造一个现代、专业且一目了然的界面。
该设计灵感源自现代操作系统和智能家居应用,具有以下特点:
•简洁的字体设计
•柔和的阴影
•圆角设计
•玻璃形态效果
•流畅的动画效果
•响应式布局
这有助于让即使复杂的信息也显得易于理解和条理清晰。
为了在整个仪表板中保持设计的一致性,我们使用 CSS CSS 变量创建了一个集中化的主题系统。
而不是在整个代码中随机分配颜色,每个组件都引用这些变量。这使得后续的自定义和维护变得更加容易。
仪表盘通过分层渐变而非背景图像来营造深度感。
这些细微的渐变效果增添了视觉吸引力,同时保持了界面的轻量和快速。
仪表盘最显著的特征之一是玻璃风格的卡片设计。
这种组合形成了仪表盘上所见的磨砂玻璃效果。
效果通过以下方式实现:
•半透明背景
•背景模糊
•饱和增强
•柔和的阴影
•细边高亮
这些元素共同营造出现代高端的外观,无需任何图像。
为了提升界面的整体感受,仪表盘中使用了自定义动画曲线。
这些转换适用于:
•按钮
•切换
•状态指示器
•仪表盘卡片
•进度动画
效果比默认浏览器动画明显更平滑、更精致。
19:实时视频界面与HUD叠加显示
实时摄像头画面是Sentra仪表盘的核心。我们希望用户体验更接近专业的安防系统,因此设计了一个定制的HUD(抬头显示器)叠加层,将重要信息直接显示在视频画面的上方。
这使用户无需离开直播画面,就能快速了解相机的状态。
仪表板直接接收来自ESP32-S3的MJPEG流,并在专用视口中显示。
当新画面到来时,浏览器会自动更新图像,实现低延迟的流畅实时视频流。
关键指标直接显示在视频上方,而不是将所有信息分散在各个面板中。
该叠加层位于摄像头画面之上,同时对用户交互完全透明。
为了营造更专业的监控风格外观,视口周围会渲染自定义的角落标记。
这些细微的角落点缀能够巧妙地框住画面,同时不分散对主体内容的注意力。
住房与城市发展部最重要的要素之一是活动指标。
徽章会根据系统状态自动更改:
•闲置
•检测到移动
•人员活动
警报状态
这使用户能够立即了解相机所看到的内容。
活动徽章会在收到新的传感器数据时自动更新。
这创建了一个响应式界面,视觉反馈会实时变化。
当录制处于激活状态时,视觉指示器会直接显示在摄像头画面中。
这使得当视频被保存到SD卡时,情况立刻变得显而易见。
美国住房与城市发展部持续更新以下重要系统信息:
•运动活动
•录音状态
•检测状态
•夜视模式
•摄像头状态
所有这些信息都会在不遮挡或覆盖实时视频画面的情况下显示。
传统仪表盘通常迫使用户在多个面板之间切换才能找到所需信息。
HUD技术将最重要的细节直接保留在摄像头视野内,使监控更加快速和直观。
该设计灵感来源于专业的闭路电视系统、安防监控软件以及现代的监控界面。
结合仪表盘的其他部分,HUDHUD 将 Sentra 从一个简单的 DIY DIY 相机转变为一个完善的智能监控平台。
20:实时监控小部件
虽然实时摄像头画面提供了视觉监控,但我们还希望用户能即时获取重要的系统信息。为此,仪表盘集成了多个实时监控小部件,可持续显示整个系统的健康状况和运行状态。
这些小工具会自动更新,无需用户浏览菜单或设置页面,即可快速了解 Sentrara 内部的最新动态。
最重要的小部件之一是运动活动监测器。
仪表盘持续从ESP32-S3接收运动数据,并通过彩色指示灯进行可视化显示。
运动水平显示如下:
•蓝色 → → → 活动较低
•琥珀色 → 中等活跃度
•红色 → → 高活跃
这使用户能够立即了解摄像头检测到的活动水平。
为了更方便地解读运动信息,我制作了一个动画圆形进度环。
随着运动量增加,指环会平稳地填充,从而直观地呈现活动水平。
仪表盘持续显示由LTR-308传感器测量的光照强度。
仪表盘不仅显示原始的奢华数值,还会将读数转换为易于理解的描述性语言。
这有助于用户快速了解环境照明条件。
音频活动通过专用的音量指示器显示。
小部件实时更新,并反映由内置麦克风检测到的变化。
这为视频监控之外提供了额外的环境意识层面。
由于Sentra采用电池供电,因此电池状态会以醒目的方式显示在仪表盘上。
电池小部件显示:
•电池电量百分比
•电压等级
•充电状态
•剩余电量
这能让用户快速判断设备何时需要充电。
仪表板还会监控可用的存储空间。
用户可以立即看到:
•剩余存储空间
•总容量
•记录可用性
无需取出SD卡即可。
21:设备控制与语音提示
除了监控功能外,Sentaenta 还允许用户通过一系列实时控制功能主动与摄像头互动。这些控制功能直接集成在仪表盘中,可实现对录像的管理、激活警报、控制夜视模式,并从任何连接设备广播语音通知。
目标是让Sentra感觉像一套完整的智能安防系统,而不仅仅是一台被动的监控摄像头。
仪表板上的每个按钮和切换开关都通过控制API直接与ESP32-S3通信。
每当用户按下按钮时,命令就会立即发送到设备。
这使得仪表板能够实时控制硬件功能。
仪表板包含用于管理视频录制的控制功能。
用户可以直接通过仪表板开始或停止录制,无需实际接触摄像头。
这在远程监控摄像头时尤其有用。
为安全警报,Sentrara 内置了警报喇叭模式。
当触发时,ESP32-S3 会通过内置扬声器发出一个高频扫频信号。
可用于:
•驱赶入侵者
•吸引注意力
•响应运动事件
测试音响系统
仪表盘还提供手动和自动夜视选项。
用户可以:
•开启红外线
•关闭红外线
•启用自动模式
自动模式可让Sentra根据环境光线水平来调节红外照明。
我最喜欢的特性之一就是公告栏。
用户可以直接在仪表盘中输入自定义消息,由Sentra通过内置扬声器播报。
消息被发送到ESP32-S3,然后通过前面描述的实时音频引擎转换为机器人语音。
无需互联网连接、云服务或音频文件。
为确保可靠运行,仪表盘在发送消息前会验证消息长度。
这反映了固件的限制,防止发送无效公告。
为方便使用,已包含多个预配置的公告按钮。
这些功能允许用户通过单次点击触发常见消息。
22:演示模式模拟引擎
Sentra仪表盘最独特的一点功能是其内置的演示模式。我们希望所有访问该仪表盘的人都能无需拥有硬件,即可探索界面并测试其全部功能。
仪表盘不会显示静态的占位值,而是生成一个完全模拟的摄像头系统,其行为类似于真实的Sentra设备。
为什么使用演示模式?
通常,测试仪表板需要:
•带电源的相机
•Wi-Fi-Fi 连接
•主动传感器
•实时视频直播
使用演示模式时,这些都不是必需的。
用户可以立即浏览仪表盘,体验系统在真实场景中的运行情况。
模拟器不会生成完全随机的值,而是遵循预定义的场景,以模拟真实活动。
这些场景会自动循环播放:
•空闲监控
•运动事件
•人体检测
•低光环境
•紧急情况
这能带来更加逼真的演示体验。
模拟器持续生成以下内容的逼真数值:
每个值都会自动更新,就像在真实设备上一样。
仪表板不知道数据来自ESP32-S3还是模拟器,它仅显示当前系统状态。
为了让模拟感觉更加自然,传感器值会逐渐更新,而不是突然跳变。
这能产生逼真的过渡效果,模拟出真实的传感器行为。
演示系统甚至可以模拟电池使用情况。
随着时间的推移:
•电池电压下降
•电池百分比更新
•仪表板小部件会相应地做出反应
电池电量低时,会自动重置并开始新一轮循环。
演示模式最令人印象深刻的部分或许是模拟的摄像画面。
仪表板无需使用预先录制的视频文件,而是直接在浏览器内生成实时监控画面。
系统动态创建:
•相机噪点
•运动效果
•模拟受试者
•夜视效果
•录音叠加
•时间戳
实时全览。
当活动增加时,虚拟摄像机场景内会生成移动的物体。
这些移动的形状营造出人物或物体穿过相机视野的视觉效果。
随着运动量增加,模拟活动也会增多。
演示系统还能够模拟夜间运行。
当环境变暗时:
•夜间模式已启用
•IR 指标显示
•相机噪点变化
应用了逼真的监控风格效果
这有助于准确展示Sentra在日落后的具体表现。
模拟器最大的优势之一是它使用与真实硬件完全相同的仪表板代码。
唯一的区别在于数据的来源:
•真实相机 → ESP32-S3
•演示模式 → 模拟器
其余一切保持不变。
这确保了演示能够准确反映实际设备的行为。
23:最终仪表盘体验与系统集成
此时,Sentra的各个独立组件协同工作,形成一个完整的智能监控系统。虽然每个功能本身都很有用,但该项目真正的优势在于硬件、固件和仪表盘如何无缝地协同运行。
ESP32-S3 作为系统的“大脑”,可同时持续管理多个任务:
•实时视频直播
•运动检测
•自动夜视
•声音监测
•SD卡录制
•电池管理
•语音提示
•仪表盘通信
所有这些功能同时运行,同时保持流畅的性能和低功耗。
整个系统遵循一个简单却强大的工作流程:
每个传感器读数、运动事件和系统状态更新都会由ESP32-S3处理,并立即反映在仪表盘上。
同样,仪表板中的每一个用户操作都会被传回设备,从而实现完全交互式的监控体验。
24:配置代码
在上传代码之前,您需要在源代码中配置Wi-Fi凭据和时区。只需将占位符替换为您自己的Wi-Fi网络名称和密码即可:
时区值用于时间戳、录音和系统时间同步。您可以根据所在地区进行更改。
25:上传代码
上传前,请确保在Arduino IDE中正确选择了以下板卡设置:
•主板:ESP32S3 开发模块
•PSRAM:OPI PSRAM
•闪存大小:16MB(128MB)
•分区方案:大型APP(3MB,无OTA / 1MB SPIFFS)
•USB CDC 启动时启用
•CPU主频:240 MHz
•上传速度:921600
PSRAM 和 Flash 大小设置尤为重要,因为 Sentra 在视频流、SD 录像和实时处理时使用了较大的缓冲区。设置不当可能导致系统崩溃、启动循环或相机初始化失败。
配置完成后,使用USB线连接ESP32-S3板,选择正确的COM端口并上传代码。成功刷入后,打开串口监视器以查看设备IP地址和系统状态。
26:控制仪表盘
只需打开仪表盘,输入摄像头的IP地址,即可立即连接。该界面在智能手机、平板电脑和台式机上均能流畅运行,为Sentra带来精致专业的用户体验。
您可以实时查看摄像头画面,并监控运动状态、电池电量、环境光、声音水平、录制状态、SD卡使用情况以及夜视状态等重要信息。
仪表盘还提供了快速访问录音控制、语音提示、警报模式和红外照明等功能,让您能够轻松地从本地网络的任何位置管理摄像头。
27:ESP32 S3 摄像头组件
下一步是将ESP32-S3摄像头板安装到主机壳中。我将板子放置在专用的安装位置,定位好后,通过JST连接器连接了扬声器。
该外壳设计用于通过4个小型螺丝进行标准螺钉安装,以确保牢固固定。由于当时我没有现成的螺丝,因此暂时使用少量强力胶将电路板小心固定在位。
28:充电模块组件
在提前准备好充电模块后,我将模块小心地放置到指定位置,并将USB Type-C接口与外壳侧面的开口对齐,以便从外部轻松为相机充电。
将模块正确安装到位后,我将充电模块的两根5V输出线连接到主板的电源输入端子,并确保极性正确后再启动系统。
29:按钮延伸组件
现在安装小型按钮扩展件。由于ESP32-S3板上的按钮位于外壳内部,我设计了这个独立的扩展部件,以便从外部方便地操作。
我只需将打印好的按钮延伸部分对准侧边开口,并插入顶部盖板上的专用插槽。组装完成后,它直接压在内部的按钮上,无需打开外壳即可轻松操作。
30:最终组装
最后一步是关闭外壳并完成组装。我仔细将顶部盖板与主壳体对齐,确保摄像头镜头、按钮延伸件和内部线路位置正确后,才关闭机箱。为了牢固固定所有部件,我在外壳背面使用了3颗螺丝。
31:测试
使用 Sentra 之前,请通过 USB Type-C-C 接口将电池充满电。电池充满后,相机即可正常使用。
启动后,使用 ESP32-S3 的 IP IP 地址在浏览器中打开控制仪表板,即可访问实时摄像头画面和所有智能功能。
由于Sentra完全依靠电池供电且体积小巧,您可以轻松携带到任何地方,或将其安装在墙壁、书桌、架子或其他需要监控的位置。在测试过程中,我验证了实时视频流、SD卡录像、运动检测、自动夜视、声音监测、语音播报以及仪表盘控制功能,确保各项功能能够顺畅协同工作。
看到整个系统最终作为一个完整的智能摄像头运行,感觉无比满足,也让整个项目真正焕发生机。
本文编译自hackster.io





