【个人作品】无线网络图传模块

一个学习硬件四层板设计的小作品,目前看还是非常受欢迎的,购买链接:

https://x.jlc.com/platform/detail/55fee4af9a464fe1848dc9988446860a

一、作品简介

一款可通过命令行自行适配多种摄像头且支持 HTTP 、UDP 传输视频流的无线网络图传模块。 

二、应用场景

  1. 玩具场景,如遥控车上,实时传输视频流,便于观察小车所在环境。
  2. 视频监控,可以安装在室内或室外,实时监控室内室外的状态。
  3. 图像识别,可以进行人脸识别、行人识别、车牌识别等等。

三、作品功能

网络配置、摄像头配置、网络视频流配置均通过串口命令行控制台配置。

  1. 指示灯,闪烁表示尚未联网,常亮表示联网成功。
  2. 看门狗,出现某些意外异常,会自行重启并恢复配置。
  3. 网络配置,支持串口配置无线网络,支持 STA 和 AP 模式。
  4. 自动配置,系统启动时会根据上一次设置的配置信息,自动配置模块。
  5. 网络视频流,支持 UDP、HTTP 视频流,其中 UDP 需上位机、 HTTP 只需要浏览器即可。
  6. 图像效果可配置,根据摄像头模组 Sensor 手册,可通过串口指令在线实时调试图像效果。
  7. 摄像头模组可配置,模块采用通用的引脚顺序,可以替换不同的摄像头模组,再通过串口动态配置。
  8. 持久化存储配置信息,网络配置、网络视频流配置、摄像头模组配置均可存储在模块上的 Flash 上。
  9. 提供 udp 图传上位机源码,内含非常简单的只需要十几行代码的 udp 组包功能,非常容易移植到其它程序中。

主控采用的是芯之联 XR872,官方SDK深度开放,拥有丰富的应用级示例代码和文档,有兴趣的话可以进行二次开发。

四、硬件参数

  1. 供电范围:3.3V ~ 5.5V。
  2. 串口参数:波特率:115200 数据位:8 停止位:1 校验位:无。
  3. 采用 DVP 接口,输出码流为 YUV422 或 JPEG 的摄像头模组。
  4. 支持非常规的分辨率,需要摄像头模组也支持,当然也支持常规分辨率。
  5. 分辨率和帧率:640x480@60、1280x720@40,最大支持分辨率为 1920x1088。

五、使用说明

初级玩法:使用配套摄像头模组 gc0308,简单配置即可使用。

首次拿到模块之后,按照如下配置,启动上位机即可完成初始配置。

  • 网络配置命令,例如要连接名称为 dream、密码为 12345678
net sta disable
net sta config dream 12345678
net sta enable
  • 开启 udp 视频推流,指定上位机的 IP 地址和端口号
video udp start,192.168.123.110:8080

配置完成后,配置信息会记录到 flash 中,重启或重上电自动配置。

高级玩法:调整摄像头的默认配置,或自行适配新的摄像头模组。

  • 配置摄像头模组的芯片地址为 0x21、分辨率为 320x240、压缩质量为 64(1~99)
cam cfg 0x21,320,240,64
  • 读取摄像头模组的寄存器,如读取 gc0308 的 0x00 寄存器得到 chip id
cam get 0x00
  • 读取摄像头模组的多个寄存器
cam get 0x00,0x12,0x23,0x55...
  • 写入多组寄存器,用于初始化摄像头模组,也可以启动视频流时在线调试视频效果
cam set FE=00,01=0A,02=0C,E3=7D,E4=02,E5=71...
  • 保存寄存器配置序列,便于上电自动配置生效
cam save clear
cam save add FE=00,01=0A,02=0C,E3=7D,E4=02,E5=71...
cam save add ......
cam save submit

当需要一次性操作的寄存器过多时,命令行缓冲区不足以处理,则可以省略掉 0x 符号,如上述 cam set 指令的示例。

自行适配新的摄像头模组需核对原理图引脚顺序和供电,如果引脚刚好顺序颠倒,可以选用支持上下接的前插后压座子。

更多玩法:可以通过执行 help、cam help、video help 帮助指令查看其它指令的示例。

六、备注说明

自行适配条件:

  1. 摄像头模组供电电压可以支持 2.8V\1.8V。
  2. 摄像头模组输出格式为 YUV422 或 JPEG。
  3. 摄像头模组引脚顺序必须与本模块一致,顺序颠倒的可以采用前插后压的座子,可正反插。
  4. 摄像头模组可用的寄存器初始化列表,一般商家都会提供,然后通过串口命令进行下发配置即可。

注意事项说明:

  1. HTTP 视频流为试验性功能,建议使用 360 极速浏览器体验。
  2. HTTP 目前最佳的体验分辨率是 320x240(或提高分辨率降低质量也行),UDP 分辨率则是 640x480。
  3. 看产品热度,会考虑后续在产品中增加新功能,如自适应不同摄像头模组、二维码识别、串口图传等。

附件包含如下:

  1. 深度开放的 SDK 源码以及相关开发文档链接地址。
  2. 包含本模块所需的固件、烧录软件、烧录文档。
  3. 包含本模块所需的摄像头模组购买地址。
  4. 包含本模块的电子元器件位置图。
  5. udp 视频流上位机源码和可执行程序。

七、演示视频

无线网络图传模块演示视频

  1. 演示时,使用 xshell 的快速命令栏的功能,节省输入指令的时间。
  2. 演示了网络配置、HTTP 推流、UDP 推流、在线实时切换分辨率等功能。
  3. 在视频的最后,为了演示可以在线调试摄像头,做了两次切换分辨率的动作,可以看到视频流也随之变化。

八、固件更新记录

v1.0.2(net_image_transmission_v1.0.2_20220519.img)

  1. 修复:调整错误的分辨率配置,仍会将配置信息保存到 flash 的问题
  2. 新增:支持检测网络断开15秒后自动重连的功能

v1.0.1(net_image_transmission_v1.0.1_20220515.img)

发布的首个版本,支持本文描述的所有功能。

九、硬件更新记录

  • V1.3:新增支持某些需要 DVDD 1.8V 的摄像头模组(如 GC2145)
  • V1.2:发布的首个版本

十、已调试的摄像头模组列表

  1. GC0308:系统默认配置的模组
  2. GC2145:请使用附件 GC2145_640x480.txt 的命令更新一下即可

若你有更优或者点亮了其它类型的摄像头模组命令参数,也可以在评论区一起分享出来喔。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目前基于图像处理使用市场上监控摄像头二次开发的案例很多,包括海康威视萤石开源摄像头;还有使用自带FIFO的OV7725或者OV7670摄像头模块结合stm32进行图传;还有OPENMV+OV7725的图像处理方案;还有一种使用MIPS架构的路由器芯片例如RT5350加免驱MPJG摄像头方案。每一种方案价格都要达到50块以上,因为除了购买摄像头之外还有购买单片机,成本降不下来。 好消息的是,乐鑫科技推出的ESP32芯片能满足图传的需求,某宝基于该芯片出售的ESP32-cam摄像头模块能满足图传的需求,最低价格26块能买到手,性价比相当高,ESP32的运行速度和wifi速度都比ESP8266高。26块集成了ESP32最小系统板和OV2640摄像头和板载蓝牙wifi天线,买了也不亏,一个好点的USB摄像头都不只这个价格了!为啥很少人使用呢?原因是入门比较麻烦。要是使用乐鑫idf去搭建开发图传,很麻烦,很难成功。 国内某个测评网有详细简介:https://post.smzdm.com/p/amm03d0d/ 模块的原理图如下: 模块的全家福如下: 该模块在某宝很多家店铺有售,至于代工厂估计有很多家,但是根据原理图就那么多IO口,资料都是通用的。 经过我自己个人努力,半年时间内掌握了ESP32图传技术,采用的是Arduino开发环境开发,很多情况下使用库函数来快速实现图传的功能。搭建开发环境也花了不少时间,后面根据一个教程搭建成功了。 搭建视频链接:https://pan.baidu.com/s/1_xYw-Mg3LPb5vqMuVgiD2A 提取码:qdl2 搭建软件及素材:链接:https://pan.baidu.com/s/1eIES_hDWNgr5lZD4akP9Jw 提取码:zrwu 最后是我根据搭建环境自带的图传源码修改裁剪后的图传源码(在最后免费下载),该源码是我将三四个源码文件裁剪修改合成一个源码文件,实现了图传功能,代码精简利于阅读和学习,先进行配置和运行的说明: (1)整个工程就是一个9kb的源码,名字叫websocket.ino文件,然后修改热点的名称和密码: (2)找一个CH340的USB转TTL电平的模块,某宝几块钱有卖的,按照下图接上模块: 右边的模块就是USB转TTL模块,主要是用来下载程序和串口调试,左边接ESP32模块,右边接电脑。 个人建议给cam模块供电压5V在第一张原理图左下角的端口供电,免得电源不足,不要接错了! UoR就是RX端 UOT是TX端 这两个端跟CH340的RX、TX交叉连接,如图示 将IO0端口与GND连接上之后就可以马上下载程序了: (3)用Arduino下载程序:(如果下载过程中出现失败,可以尝试按下模块的RST按键) (4)创建一个热点,名称和密码都与(1)的步骤相同,让ESP32的wifi能连上,我就用笔记本电脑创建了一个热点,然后打开串口Arduino监视器或者打开一个串口调试助手,打开电脑与CH340链接的串口,拔掉cam模块中IO0与GND链接的线(第三张图灰色的线,不断开就不能启动程序只能不断下载),再按下一次cam模块的RST按钮松开,如下图: 从图上看出,RST按下时,第一次程序运行不对,第二次运行正确了,打印出IP地址。右下角显示有设备连上热点。多试试几次就能成功的! (5)打开谷歌浏览器,输入网址串口打印的网址:172.25.139.2(个人具体IP看打印为准)就可以看到摄像头采集的视频流,相当流畅,如下图所示:(其他浏览器可能失败) 由于摄像前面的保护膜没有撕掉,所以有点模糊,视频还是很流畅的。 总结:该项目演示了用ESP32作为一个STA模式连上路由器或者笔记本热点,在同一个局域网环境下用浏览器登录ESP32的IP地址就可以收看ESP32摄像头采集下来的图像信息。后期会陆续发布根据此源码升级成视频监控小车、视频监控智能控制摄像头、视频监控系统和手机客户端图传、stm单片机图传接收、机器人视觉人脸签到系统、远程MQTT图传手机app接收、局域网javaweb显示图传、等等项目,敬请期待。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值