ESP32-S3-SIM7670G-4G
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
ESP32-S3-SIM7670G-4G(以下统称开发板) 是一款微雪 (Waveshare) 设计的多功能、高性能的微控制器开发板。其中板载了 SIM7670G 4G通讯模组、OV通用摄像头接口、TF卡槽、RGB炫彩灯、18650电池槽、测量电池电压IC、太阳能充电接口等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。采用的 SIM7670G 4G通讯模组提供移动网络,结合ESP32-S3R2可实现随身WIFI、物联网数传等功能 。多种低功耗工作状态满足在物联网 (IoT)、移动设备、户外监控、智能家居等应用场景的功耗需求。
产品特性
- 搭载高性能 Xtensa® 32位LX7双核处理器,主频高达 240 MHz
- 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth® 5 (LE),板载天线
- 内置 512KB 的 SRAM 和 384KB ROM,叠封 2MB PSRAM 和外接 16MB Flash
硬件说明
- 板载贴片天线,使用0R短接可选外部天线,如图中⑲、⑳
- 板载RGB炫彩灯珠,WS2812B驱动,如图中㉓
- 板载Camera接口:使用24pin摄像头排线接口,如图中⑫
支持摄像头列表如下:
model | max resolution | color type | Len Size |
---|---|---|---|
OV2640 | 1600 x 1200 | color | 1/4" |
OV3660 | 2048 x 1536 | color | 1/5" |
OV5640 | 2592 x 1944 | color | 1/4" |
OV7670 | 640 x 480 | color | 1/6" |
OV7725 | 640 x 480 | color | 1/4" |
NT99141 | 1280 x 720 | color | 1/4" |
GC032A | 640 x 480 | color | 1/10" |
GC0308 | 640 x 480 | color | 1/6.5" |
GC2145 | 1600 x 1200 | color | 1/5" |
BF3005 | 640 x 480 | color | 1/4" |
BF20A6 | 640 x 480 | color | 1/10" |
SC101IOT | 1280 x 720 | color | 1/4.2" |
SC030IOT | 640 x 480 | color | 1/6.5" |
SC031GS | 640 x 480 | color | 1/6" |
- 板载TF-Card卡槽,支持文件、图片存储,如图中⑬
- 板载太阳能充电接口,如图中⑱
- 可以通过背面输入选贴不同电阻切换太阳能输入电压
- 当太阳能处于充电中时,板载绿色LED会亮起,如图中㉖、㉘
- 板载电路开关,当使用18650供电时可通过开关控制电路通断,如图中㉛
- 板载 USB 转 UART 芯片和自动下载电路,接上 Type-C 线缆后即可烧写程序和固件,如图中⑦
- 板载使用 ESP32-S3 USB连接 A/SIM7670X USB接口,使用TinyUSB协议可实现ppp拨号上网,作为随身WIFI功能
- 板载 18650 电池接口,接入 3.7V 单节18650锂电池,注意锂电池接口正负极标志
- 当电池反接时板载黄色LED会亮起警告,如图中㉕
- 开发板预留GPIO可用于外部器件连接,可以灵活配置成 I2C、SPI等外设功能,详细功能请参考GPIO占用说明
- 板载 GNSS IPEX1代接口,上电后使用相关指令即可开启GNSS定位功能,如图中㉑
- 板载拨码开关,便于控制Camera、USB HUB电路、4G模组的上电,可以控制4G模组的USB电路切换,如图中㉚
- 板载LED灯说明:
- 板载电池防反接LED,当电池反接亮起黄灯,如图中㉕
- 板载太阳能充电LED,当太阳能输入电压有效时亮起绿灯,如图中㉖
- 板载电源指示灯,接入电源开机时亮起蓝灯,如图中㉔
- 板载模组网络指示灯,当模组开启后亮起红灯,注册到网络后200ms频闪,如图中㉗
硬件连接
本开发板ESP32-S3 UART转USB与4G模组USB供用一个TYPE-C口,用户可通过开发板背面拨码开关的 USB 通道来选择4G模组的USB与ESP32-S3的USB接口连接或是TYPE-C接口连接。 本功能常用在ESP32-S3使用TinyUSB通信4G模组时拨号上网,作为随身WIFI、无线热点等应用
太阳能充电说明
开发板背部太阳能输入选择电阻可以切换太阳能输入最大电压。默认使用0R电阻连接5V标识位置,支持5~6V电压输入的太阳能板。当使用更高电压输入的太阳能板时,应短接对应电压的焊点。
产品尺寸
开发环境配置
以下开发系统默认为Windows
ESP-IDF
- 推荐使用VSC插件进行开发
使用VSCode插件开发
安装VSCode
- 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 注:当前插件最新版本为V1.6.0,为体验一致,用户可以选择与我们一样的版本
- 打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器
- 在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可
- 使用快捷键F1,输入
esp-idf: configure esp-idf extension
- 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
- 打开后显示该界面
- 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
- 选择想要现在的ESP-IDF版本,我们选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
- 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
- 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
- 配置完成后,点击 install 进行下载
- 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
- 安装完成后,会进入以下界面,说明安装完成
使用官方例程
- ESP官方为我们提供大量的例程,并且写详细的使用方法与效果,点击此处查看
创建例程
- 使用快捷键F1,输入
esp-idf:show examples projects
- 选择你当前的IDF版本
- 以Hello world例程为例
- ①选择对应例程
- ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
- ③点击创建例程
- 选择放置例程的路径,要求无例程同名文件夹
修改COM口
- 此处显示使用对应的COM口,点击可以修改对应COM口
- 我们的CH343的COM为COM5,所以我们选择COM5,请根据自己CH343对应COM口进行选择
- 选择使用的工程或者例程
- 然后我们的COM口就修改好了
修改驱动对象
- 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
- 选择使用的工程或者例程
- 点击后需要稍等片刻
- 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
- ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
- ②全部清理,清空所有编译文件,
- ③编译
- ④当前下载方式,默认为UART
- ⑤烧录当前固件,请在编译后进行
- ⑥打开串口监视器,用于查看串口信息
- ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
- 点击我们之前介绍的 编译,烧录,打开串口监视器按键
- 编译可能需要较长时间才能完成,尤其是在第一次编译时。
- 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
- 因为我们使用的是CH343为USB转串口芯片,并且板载自动下载电路,无需手动操作即可自动下载
- 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启
Arduino
- 如果没用使用过arduino-esp32的基础建议仔细阅读官方文档,点击此处查看
安装Arduino IDE
- 打开官网软件下载页面,选择对应的系统和系统位数下载
- 可以选择直接下载,也可以选择捐赠并下载
- 运行安装程序,全部默认安装即可
在线安装arduino-esp32
- 打开首选项
- 添加对应的板管理链接,点击该按键
- 在第一个空白处,添加下文
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 保存设置
- 打开板管理器并搜索输入ESP32
- 等待下载
- arduino-esp32下载完成
离线安装arduino-esp32
- 离线包(提取码:1r4i)
- 提取码:1r4i
- 将压缩包解压缩
- 将解压文件放在对应用户的arduino器件包目录
C:\Users\{用户名}\AppData\Local\Arduino15\packages\
以用户名为waveshare为例C:\Users\waveshare\AppData\Local\Arduino15\packages\
- 关闭全部arduino窗口,确保arduino关闭
- 打开arduino,并打开板管理器,看到esp32-arduino已经安装即可
使用Arduino例程
- 选择例程,这里我们选择获取芯片ID的例程
- 选择我们的板子为 ESP32S3 Dev Moudule
- 选择我们的端口号,这里我们选择CH343的COM5
- 点击下载按键,此时会自动编译并下载
- 下载完成
- 打开串口监视器
- 看到循环输出的芯片ID
Cat-1模组指令集
HTTP
AT指令 |
指令说明 |
返回值 |
AT+HTTPINIT |
开启HTTP service |
OK |
AT+HTTPPARA="URL",https://www.waveshare.cloud/api/sample-test/ |
连接远端server |
OK |
AT+HTTPDATA=5,1000 |
输入数据 |
DOWNLOAD <键入 hello OK |
AT+HTTPACTION=0 |
开始HTTP请求,0:GET;1:POST;2:HEAD;3:DELETE;4:PUT |
OK +HTTPACTION: 0,200,54 |
AT+HTTPTERM |
关闭HTTP service |
OK |
AT+HTTPPARA |
设置HTTP参数 |
OK |
AT+HTTPHEAD |
读取HTTP响应头信息 |
OK |
AT+HTTPREAD |
读取HTTP响应信息 |
OK |
MQTT
AT指令 |
指令说明 |
返回值 |
AT+CMQTTSTART |
开启MQTT服务 |
OK |
AT+CMQTTACCQ=0,"Waveshare-7670X",0 |
申请MQTT client |
OK |
AT+CMQTTCONNECT=0,"tcp://mqtt.easyiothings.com",20,1 |
发送 MQTT 请求,连接私有MQTT服务器(MQTTS) |
OK |
AT+CMQTTTOPIC=0,8 |
输入消息发布主题 |
>A7670Pub OK |
AT+CMQTTPAYLOAD=0,9 |
输入发布的消息内容 |
OK >waveshare |
AT+CMQTTPUB=0,0,60 |
发布消息 |
OK +CMQTTPUB: 0,0 |
AT+CMQTTSUB=0,8,1 |
订阅消息主题 |
>A7670Sub OK +CMQTTSUBTOPIC: 0,0 [10:03:39.665]收←◆ +CMQTTRXSTART: 0,8,15 +CMQTTRXTOPIC: 0,8 A7670Sub +CMQTTRXPAYLOAD: 0,15 {"data":"test"} +CMQTTRXEND: 0 |
AT+CMQTTSTOP |
停止MQTT服务 |
OK |
AT+CMQTTREL |
释放客户端 |
OK |
AT+CMQTTUNSUBTOPIC |
释放订阅主题 |
OK |
AT+CMQTTUNSUB |
释放订阅 |
OK |
GNSS
AT+CGNSSPWR=1 | 开启GNSS功能 | +CGNSSPWR: READY! |
AT+CGNSSTST=1 | 开启GNSS数据输出 | OK |
例程讲解
ESP32-S3应用
Camera
本例程是基于ESP32的CameraWebServer例程
- 首先需要设置WIFI名和密码,切换默认硬件为ESP32S3
- 请打开开发板背面拨码开关的 CAM 开关,并接入支持的摄像头
- 确认CameraPins
#define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 34 #define SIOD_GPIO_NUM 15 #define SIOC_GPIO_NUM 16 #define Y9_GPIO_NUM 14 #define Y8_GPIO_NUM 13 #define Y7_GPIO_NUM 12 #define Y6_GPIO_NUM 11 #define Y5_GPIO_NUM 10 #define Y4_GPIO_NUM 9 #define Y3_GPIO_NUM 8 #define Y2_GPIO_NUM 7 #define VSYNC_GPIO_NUM 36 #define HREF_GPIO_NUM 35 #define PCLK_GPIO_NUM 37
- 烧录代码,打开终端访问提示的IP即可
TF-Card
- 将TF-Card插入TF卡槽
- 定义引脚
const int SDMMC_CLK = 5; const int SDMMC_CMD = 4; const int SDMMC_DATA = 6; const int SD_CD_PIN = 46;
- 烧写程序,打开终端显示文件内容
RGB
本开发板使用一颗WS2812b炫彩灯珠,信号引脚为38
烧录示例代码后LED灯渐变
BAT
本开发板使用MAX17048作为电池电量测量IC
- 首先确定I2C引脚
- 烧写代码更改阈值
随身WIFI Demo应用
- 本Demo应用使用TinyUSB协议栈与4G Cat-1模组通信,使用ppp拨号直接为ESP32-S3供网
- 本Demo使用编译好的固件,请先下载Flash Tools下载工具
- 打开Flash Tools工具,选择开发模式,选定该固件,地址为0x0,如图所示,插入SIM卡下载启动程序
- 将开发板背面拨码开关4G开启,USB关闭,重新上电开发板,等待炫彩LED显示红色,打开手机连接WIFI:ESP32-S3-A-SIM7670X-4G-HAT,密码:12345678即可上网
- 完整工程请查看示例程序
请下载示例程序,打开GNSS-With-WaveshareCloud示例代码
本应用通过ESP32-S3软串口与SIM7670G通信,通过发送AT指令开启GNSS并解析NMEA GNSS数据上传至Waveshare Cloud,通过Web View地图页面显示开发板的具体位置
这里使用Waveshare Cloud提供的地图服务来作演示: 1.通过设备|设备属性页面创建任意类型的设备,并获取MQTT连接数据
2.将参数填入GNSS-With-WaveshareCloud程序中。
资料
文档
程序
驱动
软件工具
数据手册
- SIM767XX_Series_AT_Command_Manual_V1.01.pdf
- SIM7672X_Series_Hardware_Design_V1.01.pdf
- SIM7672X SIM7652X Series_FTP(S)_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_HTTP(S)_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_MQTT(S)_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_NETWORK_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_Sleep Mode_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_SSL_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_TCPIP_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_UART_Application Note_V1.00.pdf
- SIM7672X SIM7652X Series_UIM HOT SWAP_Application Note_V1.00.pdf
- SIM767XX_V1.01_KDL(230309).pdf
- SIM7672 Series_Spec_231205.pdf
- SIM7672 Series_SPEC_Preliminary_230518.pdf
FAQ
软件配置
ESP32-S3通过串口、USB都可以进行ppp拨号上网,本示例中通过TinyUSB协议,使用枚举USB的地址进行拨号上网
不同版本的库是基于不同版本的 ESP-IDF开发的,有较大差异,因此不兼容, 如果一定要使用别的版本库,原先程序可以正常运行的程序可能需要自行进行一些调整才可使用,不建议这样操作
本示例中的代码通过esp-idf进行编译烧录,使用Arudino IDE需要进行移植tinyUSB和ppp数据包处理等
我们不协助修改代码,请自行处理
- 测速软件会尽可能拉满速度,这个时候模组和ESP32-S3之间的数据包传输拉满,造成卡顿,Cat-1模组,速度有限,只做测试使用
- 如果客机需求带宽太大可能会出现崩溃,介时可以从源码自行修改代码做处理
目前开发板是通过软串口连接A/SIM7670X 4G模组的串口,通过AT指令打开GNSS功能后将模组收取到的卫星信号数据切换到模组的串口输出,此时发送AT指令给串口也可以通过,此时执行Publish指令可以将需要的数据上发,从平台监听的返回值要做好NMEA信号数据的过滤即可。
配套的摄像头不支持自动对焦
{{{5}}}
提供的所有示例例程所使用的库都是从Arduino IDE library中下载安装的。库文件在不断更新迭代,通常缺少库直接在Arduino IDE中下载安装即可。
{{{5}}}
配套的摄像头不支持自动对焦
{{{5}}}
- 这个没有现成的示例程序,请自行编程,二次开发实现
- 模组只提供数据连接,ESP32采集摄像头是有一个视频流的,这个视频流暂时是用html显示,也就是直接显示到网页上
- 如果把视频流数据通过模组映射出去就可以实现图传功能;理论是没问题的;需要搭建有公网IP的服务器等等,理论上关于4G图传是可以实现的,4G模组给ESP32-S3供网,将摄像头画面通过frp转发到公网的代理服务器,代理到公网服务器分配资源是可以做到远程摄像头功能
- 其实这个性能是比较有限的,如果要稳定传输高清视频,建议用树莓派等linux主控+4/5G蜂窝模块方案
要实现热点功能:
0) X7670X 要注册到网络和成功拨号上网 1) 将开发板背面拨码开关4G开启,USB关闭,重新上电开发板 2) 正确下载对应的固件,切记不要混淆A7670 和 SIM7670 固件,记得勾选 3) 验证阶段请用能打电话的手机卡,建议从手机取下验证过的卡,物理网卡限制多,容易被封号,验证功能没问题后再用
- 1)首次上电池(也就是安装电池后)需要接电源激活保护机制(这个机制是防止反接用的),电池充满电后 ,可以无需接电源
- 2)此外也可以放电激活,typec 接口除了可以充电,也可以给外部设备供电,让模块对外部设备供电,达到放电目的,也可以激活
- 将所有拨码开关打开
- 参考上文步骤安装库后,可以用以下例程代码实现打电话,短信和定位等单个功能:
https://files.waveshare.com/wiki/ESP32-S3-A7670E-4G/code/Hard-serial-esp32-7670.zip
{{{5}}}
硬件功能