基于ESP32-CAM的RSTP协议网络摄像头

    本次分享的程序是使用ESP32-CAM进行图像采集并将图像以RTSP协议进行无线传输。在同网络的PC上使用软件对摄像头的图像进行拉取观看。

开发环境:Arduino。

程序语言:C语言。

ESP32-CAM:

    ESP32-CAM是安信可最新发布小尺寸的摄像头模组。该模块可以作为最小系统独立工作,尺寸仅为27*40.5*4.5mm,深度睡眠电流最低达到6mA。ESP32-CAM可广泛应用于各种物联网场合,适用于家庭智能设备、工业无线控制、无线监控、QR无线识别,无线定位系统信号以及其它物联网应用,是物联网应用的理想解决方案。ESP32-CAM采用DIP封装,直接插上底板即可使用,实现产品的快速生产,为客户提供高可靠性的连接方式,方便应用于各种物联网硬件终端场合。

    体积超小的802.11b/g/n Wi-Fi + BT/BLE SoC模块

在这里插入图片描述
ESP32 CAM
产品特性

采用低功耗双核32位CPU,可作应用处理器

主频高达240MHz,运算能力高达 600 DMIPS

内置 520 KB SRAM,外置8MB PSRAM

支持UART/SPI/I2C/PWM/ADC/DAC等接口

支持OV2640和OV7670摄像头,内置闪光灯

支持图片WiFI上传

支持TF卡

支持多种休眠模式。

内嵌Lwip和FreeRTOS。

支持 STA/AP/STA+AP 工作模式。

支持 Smart Config/AirKiss 一键配网。

支持二次开发。

RTSP协议:

    Real Time Streaming Protocol,RFC2326,实时流传输协议,RTSP是 TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。 

在这里插入图片描述

    RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断,包括消息类型、消息头、消息体和消息长。但接收者本身可将CR和LF解释成行终止符。基于文本的协议使其以自描述方式增加可选参数更容易,接口中采用SDP作为描述语言。


    本文介绍的方法使用方法是基于Arduino开发环境实现的。用到的开源库名称为:Micro-RTSP。库文件可以在github上搜索到,代码资源也上传到网盘,文末有相应的获取方式。

    将Micro-RTSP-master库添加到Arduino软件中。

在这里插入图片描述
Micro-RTSP Arduino库
安装成功后,在第三方库示例中就可以找到例程。

库示例
例程打开以后首先需要在wifikeys.h文件中设置一下WiFi名称和WiFi密码。
在这里插设置WIFI和密码入图片描述
设置WIFI和密码

    然后需要修改宏定义。第一个宏定义是OLED显示器,如果你的ESP32 CAM有I2C接口OLED显示器,可以打开这个宏定义,并设置对应的引脚这样就可以使用显示器显示对应的输出信息;第二个宏定义是接入点模式,这种模式下ESP32会作为接入点,创建一个WIFI;第三个宏定义是使能web服务器,使能web服务器后可以在浏览器访问ESP32的IP地址就可以实时获取其图像信息;第四个是使能RTSP服务器,使能后即可通过RTSP端口获取到图像信息。可以根据需要开启对应的宏定义。

宏定义

    修改完宏定义信息后,还需要根据ESP32 CAM的硬件信息修改下面的配置,我这里使用的是安信可生产的ESP32 CAM,修改对应的配置信息即可。

在这里插入图片描述
硬件适配
修改完成后即可上传,上传成功后可以通过串口或路由器配置界面查看EPS32 CAM联网后的IP。然后打开VLC播放器。
在这里插入图片描述
VLC
依次选择“媒体”->“打开网络串流”。然后输入rtsp://“IP地址”:8554/mjpeg/2。最后点击“播放”,等待连接成功后就可以显示出摄像头图像。
在这里插入图片描述
RTSP码流地址

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
C是计算机科学领域中的一种编程语言,于1972年由丹尼斯·里奇和肯·汤普逊的贝尔实验室中开发出来。C语言是一种高效、灵活的编程语言,被广泛应用于操作系统、编译器、网络协议等领域。 C语言具有相对简单的语法和语义规则,使其易于学习和应用。它的代码可移植性强,可以在不同处理器和操作系统上运行,这使得它成为了工业界和学术界中的主流编程语言。此外,C语言的执行速度迅速,可实时控制和使用内存,使其在嵌入式系统和实时应用开发中得到了广泛应用。 C语言还有一个重要的特点:它提供了许多可编译的预处理器命令,例如#include或#define,这可以使程序员更改编译选项,以更好地控制代码流程。这种机制使C语言具有了很强的可定制性,从而能够适应不同的需求和应用环境。 C语言的优点还有很多,如可以使用指针访问地址,可以方便地操作生成随机数、字符数组等。此外,C语言也有一些缺点,例如没有提供面向对象特性,而且需要程序员自己管理内存,因此需要一定的编程知识和经验。但是,这些缺点并没有阻碍C语言成为计算机编程领域中的主流语言之一。 总之,C语言是一门非常强大的编程语言,它可以应用于众多领域和场景中,尤其在实时控制和嵌入式系统中具有得天独厚的优势。对于计算机科学学生和程序员来说,掌握C语言是必不可少的,它不仅有助于提高编程技能,还有助于了解计算机底层的原理和机制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值