乐鑫 AT 固件初体验

初步体验 AT 指令下 TCP 数传,为了验证 AT 命令解析器。

前往乐鑫官网 下载最新版本 AT 固件和 AT 指令集手册。

硬件准备

本文使用乐鑫的 ESP-WROOM-32(ESP-WROOM-32 是 ESP32-WROOM-32 的曾用名)模块,4MB Flash,无 PSRAM。ESP32 系列模组和开发板参考该链接,这里有详细的对比介绍。

模块接线示意图如下:(图片来自乐鑫文档)

ESP32-WROOM-32 Series Hardware Connection

请在该链接里找到你的硬件对应的接线方式,连线必须准确无误!

选择 AT 固件

乐鑫的 AT 固件自 V2.0 之后就开始使用 ESP-AT(基于 ESP-IDF 或 ESP8266_RTOS_SDK 实现的软件工程)了,不再使用 NonOS 版本。如果你使用的是 ESP8266 模块,那么可以考虑是否可以平滑升级到新的版本。

各版本 AT 固件的差异参考该链接。

从该链接里选择对应你硬件的 AT 固件,这里我选择 ESP32 AT binaries / ESP32-WROOM-32 Series / v2.1.0.0 ESP32-WROOM-32_AT_Bin_V2.1.0.0.zip。

烧录 AT 固件

烧录过程主要参考乐鑫的官方文档,针对我的这个 ESP-WROOM-32 模块,有以下几个步骤:

下载 AT 固件到 PC 上(ESP32-WROOM-32_AT_Bin_V2.1.0.0.zip)

下载烧录工具

烧录工具支持 Windows 和 MAC/Linux 系统,在该链接里下载。

正确连接 ESP-WROOM-32 模块到 PC 上

ESP-WROOM-32 有两路串口,一路需要使用一个 USB-A 转 Micro-USB 的线,用于固件下载和日志查看;另外一路串口需要一个 USB 转 TTL 串口的模块,用于 AT 指令传输。

连线方式见前面的 硬件准备 章节。

打开烧录工具,烧录默认 AT 固件

选择默认 AT 固件,下载到 0x0 地址,并勾选 DoNotChgBin

然后选择对应的 串口 号,波特率使用默认的即可。最后点击 START 开始烧录。

确认烧录成功(发送 AT 和 AT+GMR 命令确认)

发 AT 指令返回 OK 标识 AT 服务已经正常启动,发 AT+GMR 查看 AT 固件信息是否跟你烧录的一致。

打开工具 flash_download_tool_v3.8.5.exe

选择 Developer Mode

选择芯片型号(本文里,我使用 ESP32 DownloadTool)

AT 指令测试 TCP Server 连接

确定 WiFi 模块即将连接的路由器

将 PC 接入该路由器,保证 WiFi 模块与路由器在同一个局域网下

PC 机开启 TCP Server

如上图所示,开启 TCP Server,ip:192.168.50.190 端口:8089。

AT 模块连接 AT 串口到 PC,并上电,确定 AT 功能正常

发送 AT 返回 OK。

设置 AT 模块为 STA 模式(STA 模式下才能连接路由器 AP 热点)

发送 AT+CWMODE=1 进入 STA 模式,1 为 STA,2 为 AP,3 为 AP+STA。

AT+CWMODE=1

OK

连接路由器

发送 AT+CWJAP="SSID","PWD" 连接路由器,SSID 为路由器 AP 热点名称,PWD 为路由器热点密码。示例如下:

AT+CWJAP="murphy","pwd_12345678"

WIFI CONNECTED

WIFI GOT IP

OK

查询模块 ip 地址,判断是否与 PC 在同一网段下

AT+CIFSR

+CIFSR:STAIP,"192.168.50.15"

+CIFSR:STAMAC,"30:ae:a4:04:75:f0"

OK

连接 TCP Server

AT+CIPSTART="TCP","192.168.50.190",8089

CONNECT

OK

如下图所示,连接成功:

模块发数据给 TCP Server

先发送 AT 命令 AT+CIPSEND=x,其中 x 表示要发送的数据长度,告诉 AT 解析器,我要发 x 字节的数据,你准备好接收!

AT 解析器成功识别之后返回下面信息:

OK

>

当看到 > 的时候,我们就可以发数据了,但一定要发送 x 字节数据,否则多余的数据会被丢掉,并返回 busy p...。

TCP Server 发数据给模块

TCP Server 直接发数据就可以,WiFi 模块收到后,显示 +IPD,x:data 格式的信息。其中 +IPD 表示 WiFi 模块收到了对端的数据,x 表示收到的数据长度,data 表示收到的数据内容。示例如下图所示:

模块透传发送数据

首先设置数传模式为透传模式,指令 AT+CIPMODE=1。1:透传模式;0:普通模式。他们的主要区别是在透传模式可以在 AT+CIPSEND 指令后一直发送数据(直到退出透传发送),而普通模式下每次发送数据必须使用 AT+CIPSEND=x 来指定数据长度。

AT+CIPMODE=1

OK

AT+CIPSEND

OK

>

这个时候就可以发送数据直达模块了。

模块退出透传发送

发送 +++ 后停顿 1 秒。使用串口工具一次性发送 +++ 而不是手动一个个发送,否则会导致误检测成数据。

这是 AT 指令的一个标准约定。

如果此时想切换成 普通数传模式,发送 AT+CIPMODE=0 指令。

为了更好的直观感受,录屏展示两种模式下的数传:

参考

这里给出了乐鑫官网的参考链接,需要阅读原始文档的童鞋移步这里。

乐鑫官方 ESP-AT 用户指南

包括 AT 固件下载,AT 指令集介绍,编译与开发。

https://docs.espressif.com/projects/esp-at/zh_CN/latest/Get_Started/index.html

乐鑫官方 ESP8266 AT 固件

https://docs.espressif.com/projects/esp-at/en/latest/AT_Binary_Lists/ESP8266_AT_binaries.htm

乐鑫工具下载

https://www.espressif.com/zh-hans/support/download/other-tool

esp32 嵌入式linux,初体验乐鑫 ESP32 AT 指令-嵌入式系统-与非网相关推荐

  1. 很多初接触乐鑫ESP32/ESP8266 模块时,都不清楚怎么为 ESP32、ESP8266 系列模组烧录固件呢?这里以启明云端WT8266-S5(ESP-12F)和ESP32-WROOM模块为例说明

    WT8266-S5(ESP-12F)为例 ESP8266 芯片: ESP FLASH TOOL 是 Espressif 官方开发的烧录工具,用户可根据实际的编译方式和 Flash 的容量,将 SDK ...

  2. 乐鑫Esp32学习之旅27 带你在Windows10平台下用自带的Linux安装 ESP8266/ESP32 环境,再无需额外安装虚拟机了。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  3. 乐鑫Esp32学习之旅① 爬坑学习新旅程,虚拟机Linux环境搭建esp32环境,打印 “Hellow World”。(2021年6月已更新)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...

  4. 乐鑫Esp32学习之旅28 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,实现MQTT远程拍照传输到私有服务器。(附带源码)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  5. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  6. 乐鑫Esp32学习之旅13 esp32 内置 dns 服务器,无需外网访问域名返回指定网页。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  7. ESP32 入门笔记01:乐鑫ESP32-DevKitC开发板信息、开发环境搭建以及学资料准备

    文章目录 一.ESP32-DevKitC 开发板介绍 二.ESP32 开发环境 1. Arduino IDE 1.1 开发环境搭建步骤 1.2 实验:使用 Arduino IDE 将代码上传到 ESP ...

  8. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  9. 乐鑫Esp32学习之旅28 分享在 esp32 SDK实现驱动 Flash W25Q32 的封装,扩大容量存储更多的资源。(开源源码工程)。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...

最新文章

  1. python input和print,Python基础——输出[print()]与输入[input()]
  2. 通信系统计算机仿真上机实验报告,昆明理工大学计算机仿真实验.docx
  3. 20080826 - Delphi 2009 来了
  4. TCP与UDP的区别(未完成,待补充)
  5. OpenWRT开发之——对C++的支持(解决库依赖问题)
  6. Spark Scala当中reduceByKey的用法
  7. linux bash -,linux bash 总结
  8. Microsoft .NET 框架常见问题
  9. Hibernate(1)——简介
  10. 架构整洁之道 (Clean Architecture )与领域模型与领域驱动设计(DDD)
  11. 文本挖掘之情感分析在网络视频弹幕的应用 ——以《都挺好》弹幕数据为例
  12. Linux裸机开发详解
  13. 初识人工智能AI(基本概念)
  14. 去中心化应用程序 (dApps) 发展现状及趋势回顾
  15. 山西省忻州市水泥厂能耗监测系统的设计与应用
  16. 【Linux】scp命令基本使用
  17. 游戏产业迎新机遇,KuPlay平台助力多元化发展
  18. 插入排序超详细讲解C语言
  19. JS获取指定特殊字符之间的字符
  20. 关于git提交报错Please tell me who you are.

热门文章

  1. python 桌面提醒_使用Python获取桌面通知
  2. 识别物体是否存在_【科学实践Vol.1】带你玩转“人脸识别”
  3. c语言通过指针变量输出10个元素,C语言程序设计第2版指针程序设计(10页)-原创力文档...
  4. [2020-ECCV]PIPAL-a Large-Scale Image Quality Assessment Dataset for Perceptual Image Restoration论文简析
  5. (2021) 20 [虚拟化] 进程调度
  6. 计算机二级循环队列知识点,考点!计算机二级考试公共基础知识冲刺复习笔记:栈、队列和循环队列...
  7. python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...
  8. 云服务器重装系统后卡顿,云服务器Windows重装系统须知
  9. pppoe linux 配置文件,linux PPPOE服务端配置
  10. Rabbit and Grass【博弈】