esp32-cam 1. 出厂固件编译与测试
0. 环境
- ubuntu18
- esp32-cam
- usb转ttl ch340
硬件连接
| esp32-cam | ch340板子 |
| U0R | TXD |
| U0T | RXD |
| GND | GND |
| 5V | 5V |
1. 安装依赖
sudo apt-get install vim
sudo apt install git
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
2. 克隆源码
git clone --recurse-submodules http://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git
问题:fatal: unable to access 'https://github.com/espressif/esp-face/': gnutls_handshake() failed: Error in the pull function.
解决办法:
$ gedit Ai-Thinker-Open_ESP32-CAMERA_LAN/.git/config
把
https
改为
http
再试:
git submodule update --recursive
3. 设置环境
3.0 设置pip源
mkdir ~/.pip
gedit ~/.pip/pip.conf
添加内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
3.1 esp-idf安装工具
cd Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf
切换分支(建议使用README.md 中说明的本仓库使用esp-idf v4.0)
git checkout release/v4.0
安装
./install.sh
3.2 环境变量
cd Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf
. ./export.sh
4. 编译
cd Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server
make menuconfig
问题:Linux错误 curses.h:No such file or directory
sudo apt-get install libncurses5-dev libncursesw5-dev
配置SPI FLASH
Serial flasher config -> -> Default serial port: /dev/ttyUSB0-> Default baud rate: 230400-> Flash SPI mode(DIO)-> Flash SPI speed: 40MHz-> FLash size: 4MB
根据板子配置引脚
Camera Web Server —>Camera Pins —> Select Camera Pinout —> 选择ESP32-CAM by AI-Thinker
配置wifi(AP模式)
camera_web -> Camera Web Server -> WiFi Settings-> 删除 WiFi STA SSID内容-> 删除 WiFi STA Password内容-> WiFi AP SSID: AiThinker_Cam-> WiFi AP Password:
编译
make -j8
串口权限
ls /dev/ttyUSB*
sudo chmod 777 /dev/ttyUSB1
永久修改
whoami
该用户添加至dialout用户组,因为tty设备是属于dialout用户组
sudo usermod -aG dialout sunrise
5. 下载程序
5.1 ESP32进入BOOT模式
把 IO0 和 GND 用杜邦线或者跳线帽连接。
5.2 下载
make flash
5.3 串口观察
make monitor

6. 测试
6.1 web
电脑连接ESP32,WIFI连接
浏览器打开 192.168.4.1

参考:
[1]ESP32-CAM摄像头开发板,https://docs.ai-thinker.com/esp32-cam
[2]安信可ESP32-CAM摄像头开发demo--局域网拍照、实时视频、人脸识别,https://aithinker.blog.csdn.net/article/details/108000974
[3]Stream Video from ESP32 to Raspberry Pi,
https://gpiocc.github.io/learn/raspberrypi/esp/ml/2020/11/08/martin-ku-stream-video-from-esp32-to-raspberry-pi.html
下篇:
esp32-cam 2. python opencv 拉取摄像头内容-CSDN博客文章浏览阅读118次。python opencv 获取esp32-cam的视频流https://blog.csdn.net/qq_27158179/article/details/138419426
相关文章:
esp32-cam 1. 出厂固件编译与测试
0. 环境 - ubuntu18 - esp32-cam - usb转ttl ch340 硬件连接 esp32-camch340板子U0RTXDU0TRXDGNDGND5V5V 1. 安装依赖 sudo apt-get install vim sudo apt install git sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial p…...
题目:线性代数
问题描述: 解题思路: 列相乘,然后行相加。 注意点:由于元素数据范围最大为1e6,两个元素相乘乘积最大为1e12,如果元素类型为int则在乘的过程中就会爆炸,所以需要开long long类型。 AC代码…...
docker学习笔记3:VmWare CentOS7安装与静态ip配置
文章目录 一、安装CentOS71、下载centos镜像2、安装二、设置静态ip三、xshell连接centos本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。 本篇博客介绍如何在vm虚拟机里安装centos7。 一、安装CentOS7 1、下载centos镜像 推荐清华源,下载如下版本 …...
leetcode 547.省份数量
思路:dfs 或者这道题用bfs也是可以的。 这道题有点迷惑性,这里的数组给的是无向图的数组,而并不是地图,这里需要着重注意一下。 而后,这里的状态数组st没必要是二维的,我们并不会去遍历所给的数组&#…...
Qt5 框架学习及应用 — 对象树
Qt 对象树 对象树概念Qt为什么使用对象树 ?将对象挂到对象树上 对象树概念 对象树:对于树的概念,相信许多学过数据结构的同学应该都不会陌生。在学习数据结构的时候我们所接触的什么二叉树、多叉树、哈夫曼树、AVL树、再到红黑树、B/B树………...
Ansible自动化运维工具---Playbook
一、playbook playbook是剧本的意思 通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook本身由以下各部分组成: Tasks: 任务,即调用模块完成的某操作Variables: 变量Templates: 模板Handlers: 处理器,当某条…...
什么是接口和类?Java中的集合框架有哪些主要接口和类?
Java中的集合框架有哪些主要接口和类? Java中的集合框架(Java Collections Framework)提供了一套丰富的接口和类,用于存储和操作对象的集合。以下是Java集合框架中的主要接口和类: 主要接口 Collection: 这…...
算法学习笔记(最短路——Bellman-Ford)
B e l l m a n — F o r d Bellman—Ford Bellman—Ford是一种单源最短路径算法,可以用于边权为负的图,但是只能用于小图。 大概过程: 枚举每一条边,更新可以更新的节点(起点到自己距离为 0 0 0,从地点开…...
try-catch-finally的省略与springboot
在 Java 中,try-catch 块是用于捕获和处理异常的结构,它可以帮助您在代码中处理可能发生的异常情况。在某些情况下,您可能希望省略 try-catch 块并将异常向上抛出,让调用者处理异常。这种情况通常适用于以下情况: 方法…...
容器Docker:轻量级虚拟化技术解析
引言 随着云计算和虚拟化技术的飞速发展,容器技术以其轻量级、高效、可移植的特性,逐渐成为了软件开发和部署的新宠。在众多容器技术中,Docker以其简单易用、功能强大的特点,赢得了广泛的关注和应用。本文将全面介绍Docker的基本概…...
windows 系统中cuda 12.1 环境安装
文章目录 1. 安装cuda 12.11.1 下载1.2 安装 cuda1.2.1 安装步骤1.2.2 环境变量安装1.3 安装cuDNN1.3.1 安装1.3.2 cuDNN配置验证2. anaconda 安装2.1 安装2.2 环境变量配置3. 报错解决1. 安装cuda 12.1 首先通过nvidia-smi 查看可以安装的CUDA最高版本...
字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。
字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。 支持将图像生成的分辨率提高至40964096,同时将图像生成速度提升1.5至6倍。 支持所有 SD 模型同时也支持 SD 模型的下游模型&…...
linux下dd制作启动U盘
dd命令是比较推荐的一种Linux环境中制作U盘启动盘的方式,无需安装额外的工具,基本上所有Linux发行版都集成了这个命令。 1、插入U盘; 2、打开终端; 3、确认U盘路径,在终端中输入:sudo fdisk -l 例如&am…...
springboot整合mybatis配置多数据源(mysql/oracle)
目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源,可以都是mysql数据源ÿ…...
练习项目后端代码解析切面篇(Aspect)
前言 之前注解篇时我说,通常情况下一个自定义注解一般对应一个切面,虽然项目里的切面和注解个数相同,但是好像有一个名字看起来并不对应,无所谓,先看了再说。 ExceptionLogAspect切面 我在里面做了具体注释&#x…...
TypeScript常见面试题第六节
题目二十六:TypeScript 中的装饰器? 一、讲解视频 TS面试题二十六:TypeScript 中的可选链? 二、题目解析 本题目考察可选链的相关知识,可选链是比较新的一个语法,是一种访问嵌套对象属性的安全的方式。即使中间的属性不存在,也不会出现错误。如果可选链 ?. 前面的值为…...
LeetCode 面试经典150题 228.汇总区间
题目: 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区…...
大数据分析入门10分钟快速了解SQL
SQL是什么? SQL全称Structured Query Language(结构化查询语言”) 为什么要用SQL? SQL通用 常见的表格分析操作,Excel也能做,为什么不用呢? 因为处理上亿行大数据时,Excel并不够用。 而常见的大数据引…...
设置多用户远程登录windows server服务器
##设置多用户远程登录windows server服务器 ###1、远程登录windows server 2016 运行—>mstsc—>远程IP地址—>用户和密码 2、远程windows服务器设置多用户策略 运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----连…...
一文了解栈
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、栈是什么?二、栈的实现思路1.顺序表实现2.单链表实现3.双向链表实现 三、接口函数的实现1.栈的定义2.栈的初始化3.栈的销毁4.入栈5.出栈6.返回栈…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
