30块钱打造家庭智能监控——ESP32-Cam

简介

这是一个基于ESP32-Cam的一个监控项目。

开源地址:https://github.com/guohuanwen/esp32-cam

效果展示

image

功能

  • 本地监控 ✅
  • 远程监控 ✅
  • 摄像头旋转 ✅
  • 远程操控 ✅
  • Client界面优化 ❌
  • 帧率优化 ❌

目录结构

  • 3dmodel

  • 3D模型,整体框架连接与固定

  • board

  • 开发板相关代码

  • servers

  • 服务器相关代码

材料

  • ESP32-CAM 开发版

  • USB TO TTL下载器

  • 舵机(SG90)

  • 电源(5V 2A)

  • 我直接用普通手机充电器代替

  • 耗材若干

  • 如果没有3D打印机,整体框架可用胶水固定

开发工具

ESP32开发

  • PlatformIO

  • https://docs.platformio.org/en/latest/core/installation.html

  • CLion 2020.3

  • https://www.jetbrains.com/clion/

  • 安装插件 platformio

服务端开发(go)

  • IntelliJ IDEA 2019.3.3

模型

  • OpenSCAD(建模)
  • Ultimaker Cura (切片)

使用

Clone整个项目

git clone https://github.com/guohuanwen/esp32-cam.git

运行服务器

项目分两种运行方式,主要区别是部署服务器在本地局域网还是远程机器上。

# 需要安装GO环境
cd ./esp32-cam/servers
bash start.sh

局域网运行

服务端部署在局域网内的一台电脑上,由于在局域网内,视频数据上传下载更快,帧数更加稳定,但是只能与单片机在同一个Wi-Fi环境下使用。

远程运行

服务端部署在阿里云\腾讯云的机器上,受限于网络,帧数不稳定,服务器也需要成本,但是可以任何地方使用。

配置ESP32-Cam,编译并上传

  • ./esp32-cam/board/src 目录下新建config.h文件,文件内容如下
//配置你的wifi名称和密码,配置2.4G的WIFI
#define WIFI_NAME "xxx"
#define WIFI_PASSWORD "xxxx"
//本地运行填写路由器给电脑分配的IP,远程运行填写服务器IP
#define WEBSOCKET_HOST "192.168.1.101"
//服务对应的端口
#define WEBSOCKET_PORT 8080
//视频流的socket地址,一般不用更改
#define WEBSOCKET_URL "/camera/uploader/ws"

编译项目

接线

  • ESP32-CAM
ESP32-CAM.png
  • ESP32-CAM调试接线
image
  • V1.1.0版本接线
v1.1.0.png

| 电源 | ESP32-Cam | 舵机(SG90) |

上传源码到ESP32-Cam

查看日志

#terminal 执行
platformio device monitor

如果看到下面日志,则说明以上流程走通了

[WSc] Connected to url: xxxx

访问

浏览器打开 http://${服务端IP}/camera/client

技术点

  • 3D建模
  • 3D打印
  • Golang
  • Arduino/Esp32
  • Websocket
  • Html/JavaScript

你可能感兴趣的:(30块钱打造家庭智能监控——ESP32-Cam)