ESP32-S3-A7670E-4G 教程

】资料
文档
程序
软件工具
数据手册
A7600 与A7670的AT指令兼容:

】说明
产品简介
ESP32-S3-A7670E-4G(以下统称开发板) 是一款微雪 (Waveshare) 设计的多功能、高性能的微控制器开发板。其中板载了 A7670E 4G通讯模组、OV通用摄像头接口、TF卡槽、RGB炫彩灯、18650电池槽、测量电池电压IC、太阳能充电接口等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。采用的 A7670E 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摄像头排线接口,如图中⑫
支持摄像头列表如下:
modelmax resolutioncolor typeLen Size
OV26401600 x 1200color1/4"
OV36602048 x 1536color1/5"
OV56402592 x 1944color1/4"
OV7670640 x 480color1/6"
OV7725640 x 480color1/4"
NT991411280 x 720color1/4"
GC032A640 x 480color1/10"
GC0308640 x 480color1/6.5"
GC21451600 x 1200color1/5"
BF3005640 x 480color1/4"
BF20A6640 x 480color1/10"
SC101IOT1280 x 720color1/4.2"
SC030IOT640 x 480color1/6.5"
SC031GS640 x 480color1/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定位功能,如图中㉑
[] 板载麦克风、提供扬声器接口,A7670X系列开发板可以使用其接打电话功能,如图中㉝、㉞
[] 板载拨码开关,便于控制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
1.打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
2.运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
[] 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
[] 第三项开启后,选择打开方式时,可以直接选择VSCode

 安装Espressif IDF插件
注:当前插件最新版本为V1.6.0,为体验一致,用户可以选择与我们一样的版本
1.打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器
2.在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可
3.使用快捷键F1,输入
esp-idf: configure esp-idf extension
4.选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
5.打开后显示该页面
6.选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
7.选择想要现在的ESP-IDF版本,我们选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
8.下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
[] 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
9.配置完成后,点击 install 进行下载
10.进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
11.安装完成后,会进入以下界面,说明安装完成

使用官方例程
ESP官方为我们提供大量的例程,并且写详细的使用方法与效果,点击此处查看
创建例程
1.使用快捷键F1,输入
esp-idf:show examples projects
2.选择你当前的IDF版本
3.以Hello world例程为例
①选择对应例程
②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
③点击创建例程
4.选择放置例程的路径,要求无例程同名文件夹

修改COM口
1.此处显示使用对应的COM口,点击可以修改对应COM口
2.我们的CH343的COM为COM5,所以我们选择COM5,请根据自己CH343对应COM口进行选择
3.选择使用的工程或者例程
4.然后我们的COM口就修改好了

修改驱动对象
1.此处显示的是使用的驱动对象,点击可以修改对应驱动对象
2.选择使用的工程或者例程
3.点击后需要稍等片刻
4.选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
5.选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

其余状态栏简介
①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
②全部清理,清空所有编译文件,
③编译
④当前下载方式,默认为UART
⑤烧录当前固件,请在编译后进行
⑥打开串口监视器,用于查看串口信息
⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)

编译、烧录、串口监视
1.点击我们之前介绍的 编译,烧录,打开串口监视器按键
2.编译可能需要较长时间才能完成,尤其是在第一次编译时。
在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
3.因为我们使用的是CH343为USB转串口芯片,并且板载自动下载电路,无需手动操作即可自动下载
4.下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启


Arduino
如果没用使用过arduino-esp32的基础建议仔细阅读官方文档,点击此处查看

安装Arduino IDE
1.打开官网软件下载页面,选择对应的系统和系统位数下载
2.可以选择直接下载,也可以选择捐赠并下载
3.运行安装程序,全部默认安装即可

在线安装arduino-esp32
1.打开首选项
2.添加对应的板管理链接,点击该按键
3.在第一个空白处,添加下文
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
4.保存设置
5.打开板管理器并搜索输入ESP32
6.等待下载
7.arduino-esp32下载完成

离线安装arduino-esp32
提取码:1r4i
2.将压缩包解压缩
3.将解压文件放在对应用户的arduino器件包目录
C:\Users\{用户名}\AppData\Local\Arduino15\packages\
以用户名为waveshare为例
C:\Users\waveshare\AppData\Local\Arduino15\packages\
4.关闭全部arduino窗口,确保arduino关闭
5.打开arduino,并打开板管理器,看到esp32-arduino已经安装即可

使用Arduino例程
1.选择例程,这里我们选择获取芯片ID的例程
2.选择我们的板子为 ESP32S3 Dev Moudule
3.选择我们的端口号,这里我们选择CH343的COM5
4.点击下载按键,此时会自动编译并下载
5.下载完成
6.打开串口监视器
7.看到循环输出的芯片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



GNSS
AT+CGNSSPWR=1开启GNSS功能+CGNSSPWR: READY!
AT+CGNSSTST=1开启GNSS数据输出OK

语音通话
将配置的扬声器连接开发板
ATD10086;拨打号码OK VOICE CALL: BEGIN
ATA接听电话OK VOICE CALL: BEGIN
ATH挂断电话OK VOICE CALL: END: 000017
收发短信
一.发送英文短信
1.设置当地短信中心:AT+CSCA="+8613800755500"+回车,返回OK。
注:中国移动的短信服务中心号是+861380xxxx500,其中 xxxx 是你所在的长途电话区号,短信中心每个地方可能不一样,具体可百度查询或拨打移动联通客服,此短信中心为深圳(0755)。
2.AT+CMGF=1 :设置短信模式为TEXT ;
3.AT+CMGS="phone number"<回车> ,设置接收方手机号 ,然后会返回:“>”,发送需要的内容,如“Send massage test!”,结尾不需要回车,编辑完短信后以十六进制的格式发送1A发信息发送(1A是“CTRL+Z”的键值,用于告诉模块执行发送操作,也可以发送1B即“ESC”取消操作),发送成功后模块返回+CMGS:15确认发送成功。如下图所示。
二.接收英文短信
1.手机上发送一条:“This is a receive test for SIM7600X!”到试验模块上
2.接受到信息时,串口会制动上报信息,“SM”, 20,代表存在 SM 里面有20条信息了,刚刚发的信息就是第 20 条
3.读取信息:AT+CMGR=20 读取第20条信息(AT+CMGL="ALL" 为读取所有信息)
4.删除信息:AT+CMGD=20,如下图所示
5.将显示的信息通过编码转换器转换成文本。


三.发送中文短信
设置发送短信参数
AT+CMGF=1             //设置为文本模式 
AT+CSCS="UCS2"           //设置信息文本为UCS2编码集
AT+CSMP=17,167,2,25          //设置文本模式参数。 
AT+CMGS="00310033003400330032003100310039003100300031"          //设置接收方手机号的UCS2集;
等待返回>,此时发送进过转换的信息内容(00530049004D003700360030003000584E2D658777ED4FE16D4B8BD5),结尾不需要回车,编辑完短信后以十六进制的格式发送1A发信息发送,如下图所示:
四.接收中文短信
AT+CMGF=1   //设置文本显示
AT+CSCS="GSM"  //设置GSM编码集
AT+CNMI=2,1  //设置新信息提醒
//接收到信息时,串口会自动上报信息,如下图所示放回的是第21条信息
AT+CMGR=21  //读取序号的短信内容
把软件中的信息转成中文,如下图所示:

TTS文本转语音
TTS文本转语音的常用命令如下:
AT+CTTSPARAM=? //查看调节参数的范围
AT+CTTSPARAM=1,3,0,1,1 //设置参数
AT+CTTSPARAM? //读取TTS当前设置的参数
AT+CTTS=1,"6B228FCE4F7F75288BED97F3540862107CFB7EDF" //合成并播放UCS2文本
AT+CTTS=2,"1234567890" //合成并且播放text文本

LBS基站定位
LBS基站定位功能的常用命令如下:
AT+CLBS=?  //查看可以设置的参数范围
AT+SIMEI=xxxxx //如果没有IMEI,则先设置IMEI,xxxxx必须对应模组贴纸上的IMEI码
AT+CLBS=2 //获取详细地址
AT+CLBS=1 //获取当前经纬度

】例程讲解
ESP32-S3应用
Camera
本例程是基于ESP32的CameraWebServer例程

Esp32-s3-a-sim7670x 240124 01.pngEsp32-s3-a-sim7670x 240124 02.png
[] 首先需要设置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即可上网



Waveshare Cloud应用
请下载示例程序,打开GNSS-With-WaveshareCloud示例代码
本应用通过ESP32-S3软串口与A7670E-FASE通信,通过发送AT指令开启GNSS并解析NMEA GNSS数据上传至Waveshare Cloud,通过Web View地图页面显示开发板的具体位置
这里使用Waveshare Cloud提供的地图服务来作演示: 1.通过设备|设备属性页面创建任意类型的设备,并获取MQTT连接数据

2.将参数填入GNSS-With-WaveshareCloud程序中。