附录
模块
Camera-1 (Node-Matrix)

Camera-M (Node-Matrix)

ESP32-CAM (Ai-Thinker)

GPIO12端口
ESP32芯片的GPIO12是Strapping管脚。在系统复位过程中,Strapping管脚的电平会改变系统启动模式或配置。GPIO12管脚的电平在复位时决定VDD_SDIO管脚的输出电压。按ESP32数据手册的描述,系统复位时GPIO12为低电平,则VDD_SDIO输出3.3V;为高电平,则VDD_SDIO输出1.8V。
若模块使用VDD_SDIO输出作为外部Flash或PSRAM芯片的电源,则不正确的GPIO12电平会导致芯片无法工作。例如,ESP32-CAM (Ai-Thinker)模块的GPIO12在复位时必须保持低电平。因此,不能将GPIO12直接用作I2C引脚(接上拉电阻)。
通过改写ESP32芯片熔丝位(eFuse),可以设置VDD_SDIO输出固定电压,从而使GPIO12成为普通的GPIO端口。改写熔丝位需要用到esptool,安装方法见官方文档:
https://docs.espressif.com/projects/esptool/en/latest/esp32/
改写熔丝位操作:
通过USB串口连接模块,复位模块为BOOT模式(在复位时保持GPIO0低电平)。
查看当前eFuse数据,使用
espefuse.py
命令(修改COMx为实际串口号):espefuse.py --port COMx summary
VDD_SDIO determined by GPIO12 设置VDD_SDIO固定输出3.3V:
espefuse.py --port COMx set_flash_voltage 3.3V
set_flash_voltage 3.3V espefuse.py
在改写eFuse前会提示输入BURN
(大写)确认。修改成功后,再次查看eFuse数据(summary):
VDD_SDIO set to 3.3V by efuse
熔丝位修改后不可恢复,请谨慎操作。
FileZilla Server
FileZilla Server是Windows平台下的免费FTP/FTPS服务器。
安装与配置:
下载安装程序并执行。在安装过程的 Server settings 界面选择服务启动方式,测试用途可选手动方式,并在下一页选择控制台为手工启动(start manually)。
服务启动方式 完成安装后,开始菜单FileZilla Server程序组如下图。Start FileZilla Server(启动服务)与Stop FileZilla Server(停止服务)需要以管理员身份运行(右键 > 更多 > 以管理员身份运行)。
FileZilla Server程序组 以管理员身份运行Start FileZilla Server。之后运行Administer FileZilla Server打开控制台,并连接到FileZilla Server。
连接FileZilla Server 在控制台界面点击菜单Server > Configure...,打开Settings for server对话框。依次操作:
FTP Server配置 - 选择页面:Rights management > Users
- 点击Add按钮添加FTP用户(node)。
- 选中添加的用户,设置FTP访问密码。
- 给用户添加FTP本地路径。
- 设置路径读写权限。
设置完成后,请检查Windows防火墙规则:TCP 21准入,TCP 20准出。
保存视频流
ffmpeg工具可以将Node-Camera输出的MJPEG视频流编码为H.264格式保存。
从ffmpeg.org下载ffmpeg工具。这里只需用到
ffmpeg.exe
,确认其可由命令行访问。(添加到Path环境变量或复制ffmpeg.exe
到工作目录)在工作目录执行以下指令(替换
${host}
为实际IP):ffmpeg.exe -f mjpeg -use_wallclock_as_timestamps 1 -i http://${host}:81/stream -c:v libx264 -crf 23 node.avi
以上指令将视频流保存为
node.avi
文件。选项-crf
调整视频压缩质量,取值范围0
~51
(小值高质量)。
ffmpeg参考:https://ffmpeg.org/ffmpeg.html
错误代码
系统错误代码对照表:
Code | Description |
---|---|
0x50001 | ERR_UNAUTHORIZED |
0x50002 | ERR_INVALID_SETTINGS |
0x50003 | ERR_INVALID_PRESETS |
0x50004 | ERR_BAD_DATA |
0x50005 | ERR_BUF_INSUFFICIENT |
0x50006 | ERR_CRC_FAILED |
0x50007 | ERR_BAD_REQUEST |
0x50008 | ERR_INTERNAL_ERROR |
0x50009 | ERR_SESSION_EXCEEDED |
0x5000A | ERR_INVALID_SOCKET |
0x5000B | ERR_SD_DISABLED |
0x5000C | ERR_SD_NOT_INIT |
0x5000D | ERR_SD_FS |
0x5000E | ERR_NO_FILE |
0x5000F | ERR_NO_PATH |
0x50010 | ERR_ACT_NOT_INIT |
0x50011 | ERR_ACT_QUEUE_BUSY |
0x50012 | ERR_CMD_DISABLED |
0x50013 | ERR_CMD_UNDEFINED |
0x50014 | ERR_CMD_BAD_PARAM |
0x50015 | ERR_INVALID_IO |
0x50016 | ERR_INVALID_CHANNEL |
0x50017 | ERR_I2C_NOT_CONFIGURED |
0x50018 | ERR_INVALID_DEVICE |
0x50019 | ERR_INVALID_ACTUATOR |
0x5001A | ERR_DUTY_EXCEEDED |
0x5001B | ERR_SERVO_NOT_INIT |
0x5001C | ERR_SERVO_END_POINT |