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

乐鑫 AT 固件初体验

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

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

硬件准备

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

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

c2deaa48b8a0c3b3693aea0dc0ebe057.png

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

6a013d2e85167ff6bad951bbd728045f.png

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

90bdc44e1d548912beaf560848ea8be9.png

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

4273132afc2939ffd58c336ca950b00e.png

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

打开工具 flash_download_tool_v3.8.5.exe

选择 Developer Mode

7d3a3d7de503648de67acd04cad88695.png

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

e44b4c90ca58a97eef8374e5cd83f83d.png

AT 指令测试 TCP Server 连接

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

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

PC 机开启 TCP Server

b67f95153a02ad26de607ac5f78874a1.png

如上图所示,开启 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

如下图所示,连接成功:

86d49ceb362f47a43492c35a203fe2eb.png

模块发数据给 TCP Server

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

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

OK

>

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

2e09a7f99bf7567c1a2e1af16bf8e11b.png

TCP Server 发数据给模块

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

01fe5b2cbaa7e557849c874725511a98.png

模块透传发送数据

首先设置数传模式为透传模式,指令 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主机ping不通Virtualbox里的虚拟机

在redhat上安装了VirtualBox,虚拟了三台Linux机器。 宿主机网卡更换过了。三台虚拟机无法启动了,搭建虚拟机的运维离职了。 VirtualBox的图形界面坏了,启动不了。只能用命令行,今天时间就花在命令行上了。 第一个问题是&#xf…

python后端开发靠谱吗_【后端开发】python有这么强大吗

因为Python是一种代表简单主义思想的语言。除此之外,Python所拥有的标准库更是金融、营销类人群选择它的理由。Python 易于学习可靠且高效(推荐学习:Python视频教程)好吧,相较于其它许多你可以拿来用的编程语言而言,它“更容易一些…

linux 卸载 openldap,Linux下安装openldap

Ubuntu apt-getinstall安装参考:http://dongwang.wordpress.com/category/uncategorized/普通linux安装,以XXX用户身份安装:1、安装BerkeleyDB 4.7.25:伯克利大学嵌入式数据库解决方案,openldap拿它作为存储方案。http://download.oracle.com…

Git之原有基础开发新功能

场景描述 当一个项目已经上线,同时又在原有基础上新增功能模块,于是乎就要在原有代码的基础上进行开发,在新增模块功能的开发的过程中,项目发现了一个紧急Bug,需要修复。操作流程如下: -------------------…

pantum打印机驱动安装m6506_奔图Pantum M6506NW 驱动

这是奔图Pantum M6506NW 驱动,是M6506NW奔图打印机驱动,此设备内置WIFI热点,安装驱动可以帮助用户解决打印机连接和工作中出现的问题,非常方便,需要的朋友快来本站下载吧!驱动介绍奔图M6506NW一体机驱动专为…

linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN

在kvm内部定义了线程状态,如下:enum {THREAD_JUST_BORN 1, /* 还没有启动*/THREAD_ACTIVE 2, /* 当前正在运行,或者在等待运行的队列中*/THREAD_SUSPENDED 4, /* 等待monitor或者alarm */THREAD_DEAD 8, /* 线程退出 */THREAD_MONITOR_WAIT 16, // 等待锁THREAD_CONVAR_WA…

详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

原文链接:http://www.jb51.net/article/98575.htm -------------------------------------------------- 本文以VirtualBox为例 如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭。 一、NAT模式 特点: 1、如果主机可以上网…

os.popen read()报编码错误_数据科学家易犯的十大编码错误,你中招了吗?

选自 Medium作者:Norm Niemer机器之心编译参与:李诗萌、王淑婷数据科学家比软件工程师擅长统计,又比统计学家擅长软件工程。听起来牛逼轰轰,事实却是,许多数据科学家有统计学背景,却没有什么软件工程方面的…

linux怎么添加工作组,linux 用户与工作组

在linux 里面,用户的编号UID ,也就是用户的ID号。工作组的编号为GID 也就是工作组的ID 号 。1、用户的分类超级用户:root用户,系统安装过程中自动创建,UID 为0。普通用户:操作权限受到限制的用户id在 500-6…

MySQL5.7.12新密码登录方式及密码策略

原文链接:http://www.cnblogs.com/jonsea/p/5510219.html --------------------------------------------------------------------------- 松门一枝花补充 最简单的方法: 1、配置文件中把密码策略关了。本文中间部分有介绍。 2、重启服务 3、用my…

聚类分析在用户行为中的实例_聚类分析案例之市场细分

聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入…

linux 编译system.img,android生成sysytem.img的命令过程

Fromhttp://xianghuaclm.blog.163.com/blog/static/6668783201110221486240/使用#file system.img输出:system.img: Linux rev 0.0 ext2 filesystem data,UUID4eb0489c-647d-49d8-9111-94657b5fd342, volume name"system"。然而本人使用命令#mkyaffs2imag…

Hive的hiveserver2后台开启和关闭

前提:hive/bin配置了环境变量。如果没有配置,cd到 hive目录下的bin里,再执行。 开启命令: nohup hive --service hiveserver2 & 产生的日志: 默认在: 用户文件夹里 [rootmaster ~]# ll total 80 …

记一次,jvm 内存溢出

1、什么是内存泄漏内存泄漏是指,有未被释放的java对象,一直停留在内存中。GCRoot 无法追踪到此对象,导致此对象无法被回收。 2、什么是内存溢出内存溢出是指,java程序创建对象需要内存,但是却没有内存可用了&#xff0…

ebnf范式_使用Scala基于词法单元的解析器定制EBNF范式文法解析

前言近期在做Oracle迁移到Spark平台的项目上遇到了一些平台公式翻译为SparkSQL(on Hive)的需求,而Spark采用亲妈语言Scala进行开发。下面是个意外,被论文查重了,移步至我的Leanote博客查看点我,先乱码一段时间[分后,拟使中的EB式&…

钻石指标和完美的计算

钻石的高度计算公式为:钻石的高度直径的三次方(单位毫米)0.00366(允许有0.03克拉的误差)例如,0.5克拉的钻石直径是5.01毫米,则它的高为:5.01*5.01*5.01*0.003660.46说明0.5克拉的钻石直径只有0.46克拉钻石的…

linux开机自动ZFS,linux – 为什么重新启动导致我的ZFS镜像的一面成为UNAVAIL?

我最近刚刚将批量数据存储池(ZFS OnLinux 0.6.2,Debian Wheezy)从单设备vdev配置迁移到双向镜像vdev配置.之前的池配置是:NAME STATE READ WRITE CKSUMakita ONLINE 0 0 0ST4000NM0033-Z1Z1A0LQ ONLINE 0 0 0在重新启动完成后一切都很好(我在重新启动完成后启动了一…

华为交换机默认vlan都是通的吗_【思唯网络学院】华为交换机常用的三种vlan划分方法...

端口类型在学习划分vlan前,必须要了解华为交换机的端口类型,以及他们的使用方法,因为端口的类型在实际配置中是必须会用到的,因为下面的vlan划分会用到。1、Access类型端口执行命令port default vlan vlan-id,将端口加…

Spark应用日志级别设置

Spark-core包设置默认的日志级别为info,所以我们才看到一大堆日志信息。 开发的时候,把print的日志掩盖了。 方法一: 代码中设置日志级别 JavaSparkContext contextnew JavaSparkContext(conf); context.setLogLevel("warn"); 方…

linux 恢复操作系统,如何恢复Linux操作系统的GRUB引导程?

先使用一张修复盘进入grub,或者利用其他linux恢复盘等等进入linux系统,然后进入grub控制台。总之就是想尽办法进入一个控制台就是了。然后准备引导进入硬盘上的Linux系统。如下:  grub> root (hd0,10)  grub> kernel /boot/vmlinuz…