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.
发表评论