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例程为例
  4. ①选择对应例程
  5. ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
  6. ③点击创建例程
  7. 选择放置例程的路径,要求无例程同名文件夹
修改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

  1. 离线包(提取码:1r4i)
    • 提取码: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

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

语音通话

  • 将配置的扬声器连接开发板
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.png
Esp32-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

Esp32-s3-a-sim7670x 240124 03.jpg
  • 将TF-Card插入TF卡槽
  • 定义引脚
const int SDMMC_CLK = 5;
const int SDMMC_CMD = 4;
const int SDMMC_DATA = 6;
const int SD_CD_PIN = 46;
  • 烧写程序,打开终端显示文件内容

ESP32-S3-A-SIM7670X-4G-HAT 231115 01.png

RGB

本开发板使用一颗WS2812b炫彩灯珠,信号引脚为38

烧录示例代码后LED灯渐变

BAT

本开发板使用MAX17048作为电池电量测量IC

  • 首先确定I2C引脚

ESP32-S3-A-SIM7670X-4G-HAT 231115 03.png

  • 烧写代码更改阈值

ESP32-S3-A-SIM7670X-4G-HAT 231115 04.png

随身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程序中。

GNSS with wavesharecloud.png