固件在安装blinker库后
blinker->examples->Blinker_AT_Firmware->AT_Firmware_WiFi
路径下,使用 arduino IDE 直接编译下载即可。
支持的硬件
ESP8266
ESP32
支持的接入方式
WiFi
准备工作
使用前您需要做好如下准备:
Arduino IDE 1.6.12或更新版本
使用 Arduino IDE 的开发板管理器安装esp8266 arduino package
按照 安装说明 安装 espressif/arduino-esp32
注意:blinker AT固件至少需要1MB以上的Flash空间,请自行在IDE>工具>Flash size中设置
设备上线流程
![](https://i-blog.csdnimg.cn/blog_migrate/c421db3ef7f807bc03707a3aedda9c50.png)
MCU主控 往 ESP_AT模块 发送: AT
ESP_AT模块 向 MCU主控 反馈: OK
MCU主控 往 ESP_AT模块 发送: AT+BLINKER_WIFI=1,authKey
ESP_AT模块 向 MCU主控 反馈: +BLINKER_WIFI:deviceName,uuid
设备上线后即可作为透传模块让主控与app进行通信
Blinker接口函数
此处主要针对ESP AT支持使用到的特有接口函数,未提到的接口函数参考Arduino支持
设备配置
Blinker.begin()
使用 Blinker.begin() 来配置 Blinker:
Blinker.begin(...);
WiFi:
#define BLINKER_WIFI
#include <Blinker.h>
void setup() {
Blinker.begin(auth, ssid, pswd);
}
ESP AT模块: Blinker.begin(auth, ssid, pswd) 将使用默认设置配置 Serial(默认使用软串口)
Blinker.begin(auth, ssid, pswd);// 默认设置: 数字IO 2(RX) 3(TX), 波特率 9600 bps
Blinker.begin(auth, ssid, pswd, 4, 5);// 设置数字IO 4(RX) 5(TX), 默认波特率 9600 bps
Blinker.begin(auth, ssid, pswd, 4, 5, 115200);// 设置数字IO 4(RX) 5(TX) 及波特率 115200 bps
若配置时Blinker.begin(auth, ssid, pswd, 0, 1);
0 1对应硬串口的RX TX, 库会默认使用硬串口与BLE模块进行通信
Blinker.begin(auth, ssid, pswd, 15, 14);//Arduino MEGA中如15, 14对应硬串口Serial3
注意使用软串口时:
使用Arduino MEGA时以下IO可以设置为RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
使用Arduino Leonardo时以下IO可以设置为RX: 8, 9, 10, 11, 14, 15, 16
WiFi 支持的AT模块硬件: WiFiduino, WiFiduino32, ESP8266, ESP32
begin() 主要完成以下配置:
1.初始化硬件设置;
2.连接网络并广播设备信息等待app连接;
GPIO配置
Blinker.pinMode()
Blinker.pinMode(4, INPUT);
Blinker.pinMode(5, INPUT_PULLUP);
Blinker.pinMode(6, OUTPUT);
设置 ESP_AT 模块上 GPIO 的工作模式
将 ESP_AT 模块上的 GPIO4 设置为输入模式,不使能上拉也不使能下拉;
将 ESP_AT 模块上的 GPIO5 设置为输入模式并使能上拉;
将 ESP_AT 模块上的 GPIO6 设置为输出模式;
Blinker.digitalWrite()
设置 ESP_AT 模块上 GPIO 的输出电平
Blinker.digitalWrite(6, HIGH);
Blinker.delay(1000);
Blinker.digitalWrite(6, LOW);
将 ESP_AT 模块上的 GPIO6 设置为输出高电平后延时1s,再将 GPIO6 设置为输出低电平;
Blinker.digitalRead()
读取 ESP_AT 模块上 GPIO 的输入电平
uint8_t d5_read = Blinker.digitalRead(5);
Blinker.analogRead()
读取 ESP_AT 模块上 GPIO A0 的 ADC 值
int adc_read = Blinker.analogRead();
RESET
发送重启指令并重启 ESP_AT 模块
Blinker.reset();
AT-指令说明
AT-规范
指令 |
描述 |
测试指令 |
AT+<X>=? |
查询指令 |
AT+<X>? |
设置指令 |
AT+<X>=<...> |
执行指令 |
AT+<X> |
基础AT指令
指令 |
描述 |
AT |
测试AT启动 |
AT+RST |
重启模块 |
AT+GMR |
查询版本信息 |
AT+RESTORE |
恢复出厂设置 |
AT+UART_CUR |
UART 当前临时配置 |
AT+UART_DEF |
UART 默认配置,保存到 Flash |
AT+SYSRAM |
查询系统当前剩余内存 |
AT+SYSADC |
查询 ADC 值 |
AT+SYSIOSETCFG |
设置 IO 工作模式 |
AT+SYSIOGETCFG |
查询 IO 工作模式 |
AT+SYSGPIOWRITE |
设置 GPIO 的输出电平 |
AT+SYSGPIOREAD |
读取 GPIO 的电平状态 |