ESP8266(ESP-01S) 简介
ESP-01S 是由安信可科技开发的 Wi-Fi 模块,该模块核心处理器 ESP8266 在较小尺 寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精 简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA。 ESP-01S Wi-Fi 模块支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。 用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
ESP8266 是高性能无线 SoC,以最低成本提供最大实用性,为 Wi-Fi 功能嵌入其他 系统提供无限可能。
1.外观尺寸
2.管脚定义
ESP-01S 模组共接出 8 个接口,如管脚示意图,管脚功能定义表是接口定义
脚序 | 名称 | 功能说明 |
1 | GND | 接地 |
2 | IO2 | GPIO2/UART1_TXD |
3 | IO0 | GPIO0;下载模式:外部拉低;运行模式:悬空或者外部拉高 |
4 | RXD | UART0_RXD/GPIO3 |
5 | TXD | UART0_TXD/GPIO1 |
6 | EN | 芯片使能端,高电平有效 |
7 | RST | 复位,低电平复位,高电平工作(默认高) |
8 | VCC | 3.3V 供电(VDD);外部供电电源输出电流建议在 500mA 以 上 |
模式 | CH_PD(EN) | RST | GPIO15 | GPIO0 | GPIO2 | TXD0 |
下载模式 | 高 | 高 | 低 | 低 | 高 | 高 |
运行模式 | 高 | 高 | 低 | 高 | 高 | 高 |
3.硬件连接
USB转TTL模块与ESP8266-01S连接
注意电源接3.3v驱动不了的话就接5v ,TXD接RXD RXD接对应TXD
CH340模块 | ESP8266-01S |
RXD | TX |
TXD | RX |
GND | GND |
3.3V | 3.3V |
3.3V | EN |
ESP8266(ESP-01S)AT指令入门指南
ESP8266 系列模组出厂时已默认内置 AT 固件,且默认波特率为 115200,硬件连接好后,即可进行 AT 指令操作。
1.指令说明
AT 指令可以细分为四种类型:
类型 | 指令格式 | 描述 |
测试指令 | AT+ <x> =? | 该命令⽤于该命令⽤于查询设置指令的参数以及取值范围。 |
查询指令 | AT+<x>? | 该命令⽤于返回参数的当前值。 |
设置指令 | AT+<x>=<...> | 该命令⽤于设置⽤户⾃定义的参数值。 |
执⾏指令 | AT+<x> | 该命令⽤于执⾏受模块内部程序控制的变参数不可变的功能。 |
注意:
• 不是每条 AT 指令都具备上述 4 种类型的命令。
• [ ] 括号内为缺省值,不必填写或者可能不显示。
• 使⽤双引号表示字符串数据 ”string”,例如:AT+CWSAP="ESP756290","21030826",1,4
• 默认波特率为 115200。
• AT 指令必须⼤写,并且以回⻋换⾏符结尾(CR LF)。
命令 | 描述 |
基本命令 | |
AT | 测试 AT 启动 |
AT+GMR | 查看版本信息 |
AT+CWMODE | 选择 WIFI 应用模式 |
AT+RST | 重启模块 |
客户端模式 | |
AT+CWLAP | 列出当前可用路由器接入点 |
AT+CIPSTART | 建立 TCP, 连接服务器 |
AT+CIPCLOSE | 关闭 TCP |
AT+CIFSR | 获取本地 IP 地址 |
AT+CIPMODE | 设置模块传输模式 |
AT+CIPSEND | 发送数据 |
服务器模式 | |
AT+ CWSAP | 查询和设置 AP(server) 模式下的WIFI名称、密码、加密方式 |
AT+ CWLIF | 查看已接入设备的 IP地址 |
AT+CIPSERVER | 配置为服务器默认端口333 |
AT+CIPMUX | 启动多连接 |
AT+CIPSTO | 设置服务器超时时间 |
2.命令使用例程
1、测试模块连接
指令:AT
响应:OK
不成功经历:
1)模块供电不足,建议用5V供电
2)模块进行一系列WiFi配置后不响应指令
2、查看版本信息
指令:AT+GMR
响应:AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
v1.5.4.1-a Nov 30 2017 15:54:29
OK
3、重启模块:
发送:AT+RST
响应:OK
4、设置工作模式:
STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的
远程控制。
AP 模式:默认模式 ATK_ESP8266 模块作为热点,实现手机或电脑直接与模块通信,实
现局域网无线控制。
STA+AP 模式:两种模式的共存模式,(STA 模式)即可以通过路由器连接到互联网,并通过互联网控制设备;(AP 模式)也可作为 wifi 热点,其他 wifi 设备连接到模块。这样实现局域网和广域网的无缝切换,方便操作。
AT+CWMODE=1 //Station 模式
AT+CWMODE=2 //SoftAP 模式
AT+CWMODE=3 //Station + SoftAP 模式
发送:AT+CWMODE=1
响应:OK
5、模块的 WIFI 设置
5.1 让模块列出当前环境下存在无线路由器的列表
发送:AT+CWLAP
响应:+CWLAP:(3,"test",-41,"9e:12:84:0a:f7:9c",11,11,0)
OK
可以找到自己的WiFi
5.2 让模块连上自己的路由器
发送:AT+CWJAP="ssid","pwd"
<ssid>:字符串参数,接入点名称
<pwd>:字符串参数,密码,最长64字节ASCII
响应:
WIFI CONNECTED
WIFI GOT IP
OK
5.3 检测是否真连上了
发送:AT+CWJAP?
响应:返回当前选择的AP
+CWJAP:"test","9e:12:84:0a:f7:9c",11,-40
OK
阿里云创建MQTT客户端
新建设备
1、进入阿里云官网阿里云-计算,为了无法计算的价值 (aliyun.com)https://www.aliyun.com/
2、如果还未注册,则先完成注册。
3、登陆后,点击产品。
4、进入物联网平台后,点击公共实例。如果还没开通,则先开通后进行使用。
5、点击产品,先创建一个产品。
6、在创建完成的产品页面上,添加设备。输入设备名称并确认。
7、输入设备名称,输入完成后点击确认。
8、创建模块,打开刚刚创建的产品,进入选择“功能定义”,编辑草稿
9、选择添加自定义功能,标识符和数据类型根据自己的数据需求设置,其他的配置根据需求配置,设置完之后点击发布上线即可
至此,阿里云物联网平台创建设备完成,接下来获取MQTT连接参数。
获取AT参数
通过上述步骤,你可以获取到阿里云物联网平台上设备的三元组,并进行保存。这些参数将用于在ESP-01S / ESP8266上配置AT指令,实现设备与物联网平台之间的通信。
使用阿里云物联平台配置
使用阿里云物联平台配置软件
链接:https://pan.baidu.com/s/1RZhXZxnb6sJ-o7GEHAPd7w?pwd=1111
提取码:1111
1、将阿里云的三元组粘贴到指定位置
2、该位置随便填写
3、点击生成
连接阿里云AT指令介绍
注意指令不要含有空格符!!!
- AT+RST 复位ESP-01S / ESP8266模块;
- AT+CWMODE=3 设置ESP模块为Station+SoftAP模式;
- AT+CWJAP=“SSID”,“PWD” 设置ESP模块连接无线网络 *注意双引号为英文;
- AT+MQTTUSERCFG=0,1,“NULL”,“username”,“password”,0,0,“” 设置 MQTT 用户属性;
- AT+MQTTCLIENTID=0,“clientId” 设置MQTT 的clientId参数;
- AT+MQTTCONN=0,“host”,1883,1 连接 MQTT Broker;
- AT+MQTTCLEAN 断开MQTT连接。
以上为连接阿里云MQTT服务器需要的配置命令,接下来在阿里云新建设备,获取AT指令需要填充的参数。
使用AT指令连接阿里云
1.连接wifi
AT+RST
AT+CWMODE=3
AT+CWJAP="SSID","Password" //连接wifi
2.
AT+MQTTUSERCFG=0,1,"NULL","用户名","密码",0,0,""
//这个用户和密码是通过“阿里云物联网平台配置”软件通过设备的三元组配置出来的
响应:OK
3.
AT+MQTTCLIENTID=0,"110022|securemode=3\,signmethod=hmacsha1\,timestamp=112200|"
//AT+MQTTCLIENTID=O,"Clienld"
//clientld第二个参数注意每个逗号后加分隔符”
//例如:原Clienld: test1|securemode=3,signmethod=hmacsha1,timestamp=10l
//逗号前加\': test1|securemode=3,signmethod=hmacsha1\timestamp=10l
响应:OK
4.
AT+MQTTCONN=0,"连接域名",1883,1
//AT+MQTTCONN=O,"连接域名",1883,1//回复:
//+MQTTCONNECTED:0,1,"连接域名" ,"1883","",1
响应:OK
截止到这里,esp8266算是连接上了阿里云平台,正常操作的话做完这步设备应该显示在线
发布Topic//向阿里云平台发送数据
1.首先获取物模型属性上报Topic
在设备已经显示在线的前提下,发送下面AT指令,上报物模型数据
将发送的数据在物模型上面显示
注意:test是设备号,要改为自己的设备,id可以随便写,params后面是标识符和对应值,改变值即可上传不同数据
//将发送的数据在物模型上面显示
AT+MQTTPUB=0,"发布的主题","AJson格式内容",1,0
AT+MQTTPUB=0,"/sys/k00njwvREUr/设备名/thing/event/property/post","{\"method\":\"thing.event.property.post\"\,\"id\":\"123\"\,\"params\":{\"temperature\":35}\,\"version\":\"1.0.0\"}",1,0
订阅主题//从阿里云平台上面获取数据
ESP8266-01S发送AT指令,订阅该Topic
AT+MQTTSUB=0,"订阅的主题",1
//我的就是:AT+MQTTSUB=0,"/sys/k00njwvREUr/xYx-1/thing/service/property/set",1
//xYx-1替换成你的设备名就好了
回复:
OK
点击设置后,ESP-01S会收到数据,物模型数据被改变
至此,可以使用ESP8266实现数据上发给阿里云和阿里云下发数据到ESP8266.