最近买了个安信可的esp32-cam模组,编译demo代码花了不少时间,整理一下能顺利编译的操作步骤。
如某一步报错,请检查前面步骤。
1.安装虚拟机
我用的vbox,安装ubuntu-18.04-desktop,网络桥接,启用双向粘贴,屏幕分辨率1024*768。
ESP32-cam按下载模式连线,最好5V供电,图1看不清可看图2。
插入主机,安装CP1202驱动(看自己的USB转TTL情况),虚拟机usb捕获。
查看usb是否捕获(查出结果是/dev/ttyUSB0,后面要用)
ls /dev/ttyUSB*
dmesg | grep ttyS*
(可选)主机开启局域网内全局,关闭主机防火墙。
把自己的用户加入到dialout组,获取读写权限,然后重启,重启,重启!!!
sudo usermod -aG dialout night
2.安装依赖
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
其他依赖,务必加上libncurses5-dev
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 libncurses5-dev
3.设置git全局proxy
我主机IP为10.11.12.86
git config --global http.proxy socks5://10.11.12.86:1080
git config --global https.proxy socks5://10.11.12.86:1080
4.代码获取
从官方github克隆项目,递归子项
git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git
完成后用ls命令查看目录。
注意看有没有克隆失败的,为防万一,切换到目录后手动更新一下子项。
ls
cd *LAN
git submodule update --init --recursive
5.设置 IDF_PATH 路径
cd esp*
pwd
//复制输出的路径,备用
vim ~/.bashrc
//按i进入插入模式,插入刚复制的路径
export IDF_PATH=/home/night/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf
//按esc退出插入模式,再保存并退出
:wq
6.install esp-idf
当前路径为esp-idf,安装ESP-IDF使用的各种工具,比如编译器、调试器、Python 包
./install.sh
7.export
然后按提示export。如果重新打开终端,要重新切换到esp-idf目录重新export。
. ./export.sh
8.编译esp-idf的helloword
为了保证esp-idf的正常,先编译它自带的helloword验证一下。
cd examples/get-started/hello_world
ls
make menuconfig
弹出配置菜单
先设置serial端口,11520,DIO,40MHz,4M,然后保存退出。
然后按提示make
make
经过漫长等待……
按提示烧固件,若连接超时可按一下板子上的reset键。
make flash
进入串口打印模式(退出按ctrl+])
make monitor
去掉下载连接,按reset重启板子,看到串口打印信息,说明esp-idf没有问题了。
继续接好下载线,按reset重启板子,并退出串口打印模式。
9.编译demo
进入示例的camera_web_server路径
cd ~/Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server
ls
配置工程,需配置端口、wifi和摄像头
make menuconfig
注意端口设为ttyUSB0(前面查出的)
填写wifi名称和密码
camera pins选AI-Thinker
保存并退出配置。
然后依旧是漫长的make
make //编译
make flash //下载
make monitor //串口打印
断开下载线,按reset重启板子,从串口信息获知板子IP,从浏览器访问。
视频调整到640480分辨率,从串口信息看,帧率10~25,不怎么稳定,板子发热明显。
拍照最大像素16001200,效果还可以。
手机连板子的热点,速度倒还可以,还能进行人脸检测和识别。
10.注意事项
(1)git的proxy是有必要的,否则下载慢甚至失败
(2)依赖和权限
(3)如果报错,仔细看出错原因,检查前面步骤是否缺失。
0.参考链接
安信可ESP32-CAM摄像头开发demo–局域网拍照、实时视频、人脸识别
乐鑫Esp32学习之旅① 爬坑学习新旅程,虚拟机Linux环境搭建esp32环境,打印 “Hellow World”。