使用STM32 和 EPS8266 通过AT 指令 连接阿里云

1 下载官方示例

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第1张图片


项目移植

复制相应文件到相应文件夹

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第2张图片

添加编译路径

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第3张图片

新建一个文件夹driver,导入.c文件

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第4张图片

重新编译

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第5张图片

编写main函数

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第6张图片

再次编译

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第7张图片


2 根据对应的引脚连接开发板

USART与esp8266连接

根据源码分析 使用的是USRAT2作为连接esp8266的通信串口

USART引脚

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第8张图片

stm32 esp8266
PA2 RX
PA3 TX
3.3v 3.3v
GND GND

文件修改

esp8266.h
引脚定义 需要则自行修改
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第9张图片
mqtt.h
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第10张图片
tcp.h
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第11张图片

程序烧录测试TCP连接

配置完成
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第12张图片

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第13张图片

程序烧录测试MQTT连接

相关命令

AT+CWMODE=1 设置为station 模式,ap&station也可以

WIFI连接
AT+CWJAP=,[,][,][,][,]
Function: to set the AP to which the ESP32 Station needs to be connected.

AT+MQTTUSERCFG//用户信息配置

AT+MQTTCONNCFG//连接配置

AT+MQTTCONN//连接命令

AT+MQTTSUB=0,"topic",1

AT+MQTTPUB=0,"topic","test",1,0

程序修改

mqtt.c
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第14张图片

注意topic :

AT+MQTTCLIENTID=0,“ClienId”//clientId第二个参数注意每个逗号后加分隔符“\”,例如:t|securemode=3,signmethod=hmacsha1,

c语言 \才是
mqtt.h
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第15张图片

这里有坑,一般阿里云的client_id,username,password会超过120,程序会出错
esp8266.c
使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第16张图片

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第17张图片

运行结果

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第18张图片

使用STM32 和 EPS8266 通过AT 指令 连接阿里云_第19张图片


3 项目地址

github

你可能感兴趣的:(嵌入式)