Skip to content

附录

模块

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/

改写熔丝位操作:

  1. 通过USB串口连接模块,复位模块为BOOT模式(在复位时保持GPIO0低电平)。

  2. 查看当前eFuse数据,使用espefuse.py命令(修改COMx为实际串口号):

    espefuse.py --port COMx summary
    VDD_SDIO determined by GPIO12
  3. 设置VDD_SDIO固定输出3.3V:

    espefuse.py --port COMx set_flash_voltage 3.3V
    set_flash_voltage 3.3V

    espefuse.py在改写eFuse前会提示输入BURN(大写)确认。

  4. 修改成功后,再次查看eFuse数据(summary):

    VDD_SDIO set to 3.3V by efuse

熔丝位修改后不可恢复,请谨慎操作。

FileZilla Server

FileZilla Server是Windows平台下的免费FTP/FTPS服务器。

下载地址:https://filezilla-project.org

安装与配置:

  1. 下载安装程序并执行。在安装过程的 Server settings 界面选择服务启动方式,测试用途可选手动方式,并在下一页选择控制台为手工启动(start manually)。

    服务启动方式
  2. 完成安装后,开始菜单FileZilla Server程序组如下图。Start FileZilla Server(启动服务)与Stop FileZilla Server(停止服务)需要以管理员身份运行(右键 > 更多 > 以管理员身份运行)。

    FileZilla Server程序组
  3. 以管理员身份运行Start FileZilla Server。之后运行Administer FileZilla Server打开控制台,并连接到FileZilla Server。

    连接FileZilla Server
  4. 在控制台界面点击菜单Server > Configure...,打开Settings for server对话框。依次操作:

    FTP Server配置
    1. 选择页面:Rights management > Users
    2. 点击Add按钮添加FTP用户(node)。
    3. 选中添加的用户,设置FTP访问密码。
    4. 给用户添加FTP本地路径。
    5. 设置路径读写权限。

设置完成后,请检查Windows防火墙规则:TCP 21准入,TCP 20准出。

保存视频流

ffmpeg工具可以将Node-Camera输出的MJPEG视频流编码为H.264格式保存。

  1. 从ffmpeg.org下载ffmpeg工具。这里只需用到ffmpeg.exe,确认其可由命令行访问。(添加到Path环境变量或复制ffmpeg.exe到工作目录)

  2. 在工作目录执行以下指令(替换${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

错误代码

系统错误代码对照表:

CodeDescription
0x50001ERR_UNAUTHORIZED
0x50002ERR_INVALID_SETTINGS
0x50003ERR_INVALID_PRESETS
0x50004ERR_BAD_DATA
0x50005ERR_BUF_INSUFFICIENT
0x50006ERR_CRC_FAILED
0x50007ERR_BAD_REQUEST
0x50008ERR_INTERNAL_ERROR
0x50009ERR_SESSION_EXCEEDED
0x5000AERR_INVALID_SOCKET
0x5000BERR_SD_DISABLED
0x5000CERR_SD_NOT_INIT
0x5000DERR_SD_FS
0x5000EERR_NO_FILE
0x5000FERR_NO_PATH
0x50010ERR_ACT_NOT_INIT
0x50011ERR_ACT_QUEUE_BUSY
0x50012ERR_CMD_DISABLED
0x50013ERR_CMD_UNDEFINED
0x50014ERR_CMD_BAD_PARAM
0x50015ERR_INVALID_IO
0x50016ERR_INVALID_CHANNEL
0x50017ERR_I2C_NOT_CONFIGURED
0x50018ERR_INVALID_DEVICE
0x50019ERR_INVALID_ACTUATOR
0x5001AERR_DUTY_EXCEEDED
0x5001BERR_SERVO_NOT_INIT
0x5001CERR_SERVO_END_POINT