为了方便RHILEX用户使用串口指令集,RHILEX团队封装好了一些常见模块的AT指令库,方便集成使用。
ESP32 AT固件是一种专为ESP32开发板设计的固件,它允许开发者通过AT指令集来控制ESP32模块。这种固件支持Wi-Fi和蓝牙低功耗(BLE)操作,基本应用可以满足大多数需求。ESP32 AT固件包含了一系列特定功能的二进制文件,如启动加载器、AT应用固件、出厂配置参数等,这些文件共同工作以提供一个完整的解决方案,使ESP32能够作为一个独立的通信节点或与其他设备通信。
官方手册:
MX-01 蓝牙模组是一款支持低功耗蓝牙协议的串口透传模组;模组具有小体积、高性能、高性价 比、低功耗、平台兼容性强等优点;可以帮助用户快速掌握蓝牙技术,加速产品开发;模组已兼容的 软件平台包括:IOS 应用程序、 Android 应用程序、微信小程序等。MCU 通过串口连接模组,可与手 机、平板等设备进行数据通讯,轻松实现智能无线控制和数据采集;模组广泛应用在智能家居、共享 售货机等领域。
这款模块售价只有2元,很适合平时测试使用,因此在本仓库专门支持了一个库。
官方手册:
doc
路径下mx-01.pdf。
下面是个简单的例子:
package main
import (
esp32wroom "github.com/hootrhino/rhilex-goat/bsp/esp32wroom"
esp32wroomAt "github.com/hootrhino/rhilex-goat/bsp/esp32wroom/atcmd"
"fmt"
"time"
serial "github.com/hootrhino/goserial"
)
func main() {
SerialPeerRwTimeout := 50 * time.Millisecond
config := serial.Config{
Address: "COM3",
BaudRate: 115200,
DataBits: 8,
Parity: "N",
StopBits: 1,
Timeout: SerialPeerRwTimeout,
}
serialPort, err := serial.Open(&config)
if err != nil {
panic(err)
}
Esp32 := esp32wroom.NewEsp32Wroom("ESP32-WROOM", serialPort)
Esp32.Flush()
GMRResponse, err := esp32wroomAt.GMR(Esp32)
if err != nil {
panic(err)
}
fmt.Println("AT=", GMRResponse)
serialPort.Close()
}
输出:
{
"atVVersion": "AT version:3.2.0.0(s-ec2dec2 - ESP32 - Jul 28 2023 07:05:28)",
"sdkVersion": "SDK version:v5.0.2-376-g24b9d38a24-dirty",
"compileTime": "compile time(6118fc22):Jul 28 2023 09:47:28",
"binVersion": "Bin version:v3.2.0.0(WROOM-32)"
}
注意:
SerialPeerRwTimeout
: 指的是系统句柄读取周期,通常和MCU的反应时间有关,50-100ms左右最佳。HwCardResponseTimeout
:指的是本次指令期望响应时间,指令返回数据越多, 等待时间越久。取决于AT指令手册里面写的具体时间。 上面这两个参数一定要设置合理的范围。