一、前言

本篇文章主要用于记录自己在使用AT指令时候的流程,记录一些资料与程序等。如果能帮到你,请给我点个赞。

二、背景知识

ESP-AT是什么?

  1. ESP-AT 是乐鑫开发的可直接用于量产的物联网应用固件,旨在降低客户开发成本,快速形成产品。通过 ESP-AT 指令,您可以快速加入无线网络、连接云平台、实现数据通信以及远程控制等功能,真正的通过无线通讯实现万物互联。

  2. ESP-AT 是基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程。它 使 ESP 模组作为从机,MCU 作为主机 。MCU 发送 AT 命令给 ESP 模组,控制 ESP 模组执行不同的操作,并接收 ESP 模组返回的 AT 响应。ESP-AT 提供了大量功能不同的 AT 命令,如 Wi-Fi 命令、TCP/IP 命令、Bluetooth LE 命令、Bluetooth 命令、MQTT 命令、HTTP 命令、Ethernet 命令等。

  3. AT 命令以 “AT” 开始,代表 Attention,以新的一行 (CR LF) 为结尾。输入的每条命令都会返回 OK 或 ERROR 的响应,表示当前命令的最终执行结果。注意,所有 AT 命令均为串行执行,每次只能执行一条命令。因此,在使用 AT 命令时,应等待上一条命令执行完毕后,再发送下一条命令。如果上一条命令未执行完毕,又发送了新的命令,则会返回 busy p... 提示。

可以看到乐鑫公司为ESP模组开发了一个AT指令框架,这样ESP就可以作为从机,一个附属模块来进行开发,同样的也可以基于这个框架来搭建属于自己的AT指令。目前市面上也存在着大量的第三方AT指令,一般都是一些云平台(腾讯云、阿里云等)魔改的AT指令,烧写相应的固件即可使用这些魔改的AT指令。

AT指令资料

除了乐鑫官方的ESP-AT手册以外,目前提供较完整的ESP-AT指令的第三方还有安信可(Ai-Thinker)

乐鑫官方ESP-AT手册

安信可ESP产品资料

其中安信可提供了非常全面的ESP-AT示例,还包括烧入软件等等。通过上述链接,即可进入进行资料的查询

单片机选择

固件基本上支持很多的ESP系列的MCU,不过我们既然选择使用了AT指令,肯定是想让ESP模组作为从机,或者说一个WIFI模块来使用的,我这里推荐ESP01S

这个模组基于ESP8266芯片设计,引出了几个必要的引脚,体积小巧。在购买的时候需要注意购买ESP01S即可,是ESP01的升级款。且购买的店家最好确认一下,之前安信可售卖的质量比较好,后面没有再进行出售了,比较可惜。

三、ESP01S AT指令链接巴法云具体流程

选择固件烧入

常见的AT固件,在安信可的资料当中已经列出了,根据具体的需求选择对应的AT固件进行下载即可

我这里选择固件号为 1471 的固件,足够使用了。且使用方式与官方的ESP-AT指令集保持一致。

引脚连接测试、固件烧入

到开发工具当中下载好烧入工具

准备好如下两份文件即可开始进行固件的烧入

准备一个USB-TTL,安装好对应的驱动(CH340或者CP210X)

需要注意烧入固件的时候需要配置为UART烧入模式,参见下表

模式 CH_PD(EN) RST GPIO15 GPIO0 GPIO2 TXD0
UART下载模式
Flash运行模式
Chip测试模式 - - - - -

可以看到IO0是需要拉低电平的,我们将IO0接到GND上,如果USB-TTL只有一个GND,只要拿个洞洞板上面焊接一排排针,然后将GND通过杜邦线接上去,这样就有很多个GND可以使用了。

类似这样,焊接一排排针即可:

接好线之后,解压固件,打开前面下载的烧入软件:

按照下图进行选择:

首先擦除(ERASE),然后再下载即可。

擦除完成:

烧入完成:

之后将之前拉低电平的IO0拔掉,即可按照正常的串口连接方式进行测试:

打开串口软件,选择好串口,波特率默认115200,烧入AT,选择发送新行,有收到“OK”回复。说明固件烧入成功。

AT指令连接巴法云平台

1471号固件的时候方式参照乐鑫官方的ESP-AT指令集:

乐鑫 ESP-AT指令集

我们需要的是MQTT,参考基础AT 命令集 WIFI AT 命令集 MQTT AT 命令集即可。

基础 AT 命令集

只要使用下面两个即可:

WIFI AT 命令集

使用下面的指令即可:

MQTT AT 命令集

巴法云的MQTT服务器的连接比较简单,按照巴法云的连接手册,只需要

注意!!!!!

巴法云支持MQTT协议当中的Qos0和Qos1,不要配置成Qos2了。

MQTT指令集大部分都是需要的:

具体流程

连接WIFI

  1. 测试AT指令是否完好
  2. 设置ESP为AP模型
  3. 扫描WIFI
  4. 连接WIFI

连接巴法云服务器,订阅主题

  1. 配置好ClientID服务器地址、端口
  2. 订阅配置好的MQTT主题

成功连接并且订阅到服务器主题!!!!

发布、接受信息

使用如下AT指令即可

AT+MQTTPUB=<LinkID>,<"topic">,<"data">,<qos>,<retain>

四、结合STM32(主机)控制ESP01S(从机)与巴法云进行数据上传

测试完成之后,我们就可以搭配着STM32来通过串口进行自动化的MQTT连接了。具体思路如下:

ESP AT指令使用记录的更多相关文章

  1. [前端学习]vue的指令学习记录 vu-if | text | for | on | model | bind | pre

    vue的指令学习记录 vue-if | text | for | on | model - 目录 vue的指令学习记录 vue-if | text | for | on | model ... 预备 ...

  2. Java 硬件同步机制 Swap 指令模拟 + 记录型信号量模拟

    学校实验存档//.. 以经典的生产者消费者问题作为背景. 进程同步方式接口: package method; /** * P表示通过,V表示释放 */ public interface Method ...

  3. Java硬件同步机制Swap指令模拟+记录型信号量模拟

    学校实验存档//.. 以经典的生产者消费者问题作为背景. 进程同步方式接口: package method; /** * P表示通过,V表示释放 */ public interface Method ...

  4. iftop工具指令选项记录

    iftop是实时监控网卡流量的工具,功能十分强大,指令选项非常多,用法比较复杂,下面记录一下命令的选择作用 相关参数及说明 1.iftop界面相关说明 界面上面显示的是类似刻度尺的刻度范围,为显示流量 ...

  5. linux常用指令学习记录

    前言 本文主要为学习贴,用来记录一些 linux上的常用指令 以供参考. 文件内容查看 cat 从上往下阅读文件内容 cat [-AbEnTv] ${FILE_NAME) cat -n /etc/is ...

  6. esp跟ebp跟踪记录

    发现文字描述还是太没有快感.上几幅图,来说明这个调试过程更好.此文对于深刻理解ebp,esp是具有长远意义的 可以看到,初始情况下,ebp此时值为0012FEDC,也就是栈帧的地址,而栈顶地址esp值 ...

  7. ng-option指令使用记录,设置默认值需要注意

    ng-options一般有以下用法: 数组作为数据源: label for value in array select as label for value in array label group ...

  8. AngularJS directive 指令相关记录

    .... .directive('scopeDemo',function(){ return{ template: "<div class='panel-body'>Name: ...

  9. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  10. Apache日志不记录图片文件设置方法和来源日志的配置

    Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...

随机推荐

  1. axios 取消请求 (2023-10-10更新)

    axios 文档 配置局部取消请求 这种相当于局部的取消请求,作用于单个请求中 import axios from 'axios' const source = axios.cancelToken.s ...

  2. 好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了!

    前言 今天大姚给大家分享一个好消息,GitHub Copilot 可以免费使用了!在此之前若开发者要使用 GitHub Copilot 需要付费订阅,每月订阅费用起步价为 10 美元,而经过验证的学生 ...

  3. ASP.NET Core 中的 Request Feature

    ASP.NET Core 中的 Request Feature https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request-fe ...

  4. StreamJsonRpc.ConnectionLostException 在请求完成之前, 与远程方的 JSON-RPC 连接已丢失

    今天电脑重启之后,发现 visual studio 2022 的智能提示与报错经常性不好用,不光不能在正常时候提示代码错误信息,甚至在编译过后也不提示错误.反复重启,刚开始正常,隔一会儿就会提示什么什 ...

  5. sublime text 4 安装(含激活码)

    一.下载步骤 官网地址:Sublime Text - the sophisticated text editor for code, markup and prose windows下载链接:Than ...

  6. Qt/C++动态启用地图功能/地图拖曳/键盘操作/滚轮缩放/双击放大/连续缩放等

    一.前言说明 地图组件为了方便用户的操作,一般会满足各种需求场景,比如用鼠标拖曳地图,实体键盘按键上下左右移动,鼠标滚轮缩放地图大小,双击放大地图,这些常规的操作可以极大的方便用户操作,问题是,有时候 ...

  7. spark (一) 入门 & 安装

    目录 基本概念 spark 核心模块 spark core (核心) spark sql (结构化数据操作) spark streaming (流式数据操作) 部署模式 local(本地模式) sta ...

  8. 小程序分享pdf文件(uniapp)

    share(){ wx.downloadFile({ url: '', // 下载url success (res) {// 下载完成后转发 wx.shareFileMessage({ filePat ...

  9. 前端(二)-CSS

    1.样式 1.1 行内样式 <h1 style="color:red;">行内样式</h1> 1.2 内部样式 CSS代码写在 <head> 的 ...

  10. neo4j-图数据库

    neo4j是图数据库 初识neo4j,首先我们要知道neo4j是图数据库.我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢? 1 ...