esp8266 mqtt问题,我一小白

ESP8266模块之AT指令简介(预备篇) - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 1931|回复: 14
ESP8266模块之AT指令简介(预备篇)
在线时间510 小时
该用户从未签到主题帖子精华
本帖最后由 Inc_brza 于
13:32 编辑
看到标题的请别喷我(这是STM32的板块,你丫丫的搞什么ESP8266啊),在我说完之前,别打我,说完再打~
STM32F769Disc很有兴致的加了一个专门接ESP8266模块的接口(或者用来做iic外扩),那么使用这个有啥用呢,
在不用网口的时候,可以通过esp8266通过wifi做很多不可描述的事情喔(请不要想太多,我没驾照,而且不会开车)。
例如STM32F769Disc的Demo包中,带了一个通过wifi(esp8266)做iap的工程包,那么,嘿嘿嘿(费玉清口音)!
不过别急,先来看看esp8266这个模块怎么玩的先。虽然esp8266可以通过自身的sdk进行编程,不过市场上有很多
基于AT指令(串口)的esp8266串口转wifi模块,例如esp-01,esp-12,这里我们使用的是esp01模块,这两个有什么区别?
除了容量,基本没什么差别,不过详情,还需要你放狗一搜(一只单身狗,千军万狗来相见)。
设置波特率为-n-1(有的默认是9600,有的是115200),然后esp8266接上串口(基于F769disc,接口是直接插上去的,
具体应该如何插,嗯嗯,基本是男人都懂,女人也懂,所以不要怕,插就对了),会发现有一段是乱码,不要慌张,不要怕出
意外,不是你插的姿势不对,是模块的这段代码的波特率不对而已,如果想知道这个代码说的是什么鬼,需要你设置波特率为
74880后可见真相。不过没关系,不要管,这个时候,连上串口,发送AT(ASCII模式哈)+换行(AT的指令以换行结束)后如
无意外会返回OK。这个时候,我们介绍一下基本的指令表,(什么,我说太多话了?没图没真相?)
TIM截图10.png (85.03 KB, 下载次数: 0)
13:08 上传
预先的,我已经把用到的指令记录到串口调试工具中了
插上电,连上串口之后,发送AT指令检查下基本功能,如果返回OK,说明你可以继续了!
AT+GMR指令,返回模块版本信息,SDK信息
TIM截图31.png (23.16 KB, 下载次数: 0)
13:10 上传
恩,这是我买的这个模块的基本信息,你可以来hack了。
esp8266可以设置两种模式,AP/STA,对于小白,我有必要说明一下,AP和STA是什么
AP,Access Point,热点模式,在此模式下,你的esp可以作为一个wifi热点,允许其他设备接入。
& & 例如,我创建一个叫丫丫的热点,你想接这个热点偷流量,你就得链接这个wifi,如果加密了你得输入密码,对了你就可以去亡者农药了!
STA,Station, 中端模式,在此模式下,允许去链接到一个AP热点
& & 例如,我要偷丫丫这个wifi的流量,就先连接它,然后巴拉巴拉。
接下来,举例子说明,如何利用esp8266作为一个ap热点,然后中段链接到esp8266后,esp作为服务器,中段作为客户端,使用tcp进行你好我不好!
首先发送AT+CWMODE=2, 配置为ap热点
接下来发送AT+CWSAP=“MyEsp”,“”,11,0;用于设置AP模式的参数,以上参数分别为:热点名,密码,通道,加密方式
然后发送AT+CIPMUX=1;用于启用多路链接方式,如果你只想有一个链接,就设置为0
最后发送AT+CIPSERVER=1,8086;用于开启服务器模式,端口是8086
配置完,可以使用手机打开wifi,然后链接MyEsp热点,使用调试工具进行调试了!
TIM截图51.png (48.42 KB, 下载次数: 0)
13:26 上传
图中为手机端发送how are you 字符串到服务器的现象。
如果需要服务器发送信息到客户端。需要申请,第一个是发送到哪一个客户端,第二是申请发送多长的字符串
例如:AT+CIPSEND=0,11;发送到0客户端,发送9个字符
TIM截图57.png (12.04 KB, 下载次数: 0)
13:29 上传
TIM截图53.png (276.17 KB, 下载次数: 0)
13:31 上传
以上通讯测试就完毕了,其他功能,以后会在Disc上完成。这里做个小铺垫。
由于内容简单,所以老司机请别扔转,小白看不明白也别吐槽~
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间1660 小时
ST金币12378
该用户从未签到主题帖子精华
在线时间510 小时
该用户从未签到主题帖子精华
你这表情怎么上传的~
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间95 小时
ST金币2324
该用户从未签到主题帖子精华
金牌会员, 积分 2844, 距离下一级还需 2156 积分
内容不错!
在线时间2034 小时
ST金币1397
TA的每日心情开心 09:20签到天数: 1 天[LV.1]初来乍到主题帖子精华
fi31f673n2g204k03ddh2.gif (54.38 KB, 下载次数: 1)
16:19 上传
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间827 小时
ST金币1613
该用户从未签到主题帖子精华
d888m2aom048z.gif (54.38 KB, 下载次数: 0)
17:55 上传
在线时间510 小时
该用户从未签到主题帖子精华
楼上的,你们也是够了,哈哈哈哈哈哈哈哈,快教我怎么发这种表情啦~
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间200 小时
ST金币2143
该用户从未签到主题帖子精华
金牌会员, 积分 3269, 距离下一级还需 1731 积分
手机上的测试软件不错,能否分享一下& && &
在线时间60 小时
该用户从未签到主题帖子精华
金牌会员, 积分 1020, 距离下一级还需 3980 积分
早上好!签到签到。
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间258 小时
ST金币3835
该用户从未签到主题帖子精华
t3fustcpbprrp.gif (54.38 KB, 下载次数: 0)
11:18 上传
STM32粉丝勋章Ⅳ
狂欢节专属(智多星)
STM32粉丝勋章Ⅲ
狂欢节专属(分享宝宝)
STM32粉丝勋章Ⅰ
狂欢节专属(微信上墙)
STM32粉丝勋章Ⅱ
狂欢节专属(研讨会问答)
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered byESP8266的问题【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:148,085贴子:
ESP8266的问题收藏
我怎么通过串口助手向ESP8266发AT指令啊,只连 rxd txd vcc gnd 就行了吗?
天猫五一狂欢周,单片机,2件75折,满,低至12期免息,家装建材1抵1000元!天猫五一大放价,缤纷豪礼享不停!
小白要建立这样一种价值观:在贴吧里问小白问题是不可能有人回答的,还不如百度。
01的话ch拉高,然后串口助手发就行了  ---十五字十五字十五字----
登录百度帐号ESP8266的个人心得 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
ESP8266的个人心得
22:01:27  
前段时间在学长那边顺了一块ESP8266的板子过来了,感觉还不错,现在留点记录避免后续忘记的当前的进度。
板子是基于esp8266的一块二次开发的板子,丝印说的名字叫nodemcu,顺手查一下发现nodemcu这个项目已经开源了,感谢大神们的无私奉献。个人感觉这个开发板有一个特别的亮点,就是在单片机上嵌入了脚本语言编程,使用的脚本语言是Lua(此处可以百度一下),Lua语言稍微了解了一下,感觉这个是脚本解释语言是相当的牛的,就nodemcu而言,用lua编写的代码直接通过串口或者其他途径传输到ESP8266内部,通过转换和解释就可以直接控制单片机(ESP8266)了。
NodeMCU节点连接到互联网,在NodeMCU中运行一个lua程序,在这个程序里面建立tcp client。该client连接到doit的yun服务器,实现与服务器的通信。
在doit yun服务器上,对lua源代码进行编辑,点击&run&,即可将源代码下载到NodeMCU中。
在NodeMCU中,接收到来自服务器的lua源文件,将其保存成文件。并compile成lc文件运行。
要实现这个功能,首先要在NodeMCU中下载三个文件。分别是init.lua,sta.lua,yun.lua。
注意:yun端服务器和NodeMCU之间通信是靠deviceID来识别。本demo的deviceID为doitCar。你可以随意取一个自己喜欢的名字,并在yun.lua中将doitCar替换。
init.lua文件:
print(&\n&)print(&ESP8266 Started&)local exefile=&sta&local luaFile = {exefile..&.lua&,&yun.lua&}for i, f in ipairs(luaFile) do& && &&&if file.open(f) then& && &file.close()& && &print(&Compile File:&..f)& && &node.compile(f)& && && & print(&Remove File:&..f)& && &file.remove(f)& && &&&end endif file.open(exefile..&.lc&) then& && &&&dofile(exefile..&.lc&)else& && &&&print(exefile..&.lc not exist&)endexefile=luaFile = nilcollectgarbage()
sta.lua文件:
print(&Ready to Set up wifi mode&)wifi.setmode(wifi.STATION)local ssid = &MERCURY_1013&--修改成自己路由器的SSIDlocal psw = &&--修改成自己路由器的密码print(&Conneting to &..ssid)wifi.sta.config(ssid,psw)--ssid and passwordwifi.sta.connect()local cnt = 0gpio.mode(0,gpio.OUTPUT);tmr.alarm(3, 1000, 1, function()& & if (wifi.sta.getip() == nil) and (cnt & 20) then& && && && &print(&-&&)& && && && &cnt = cnt + 1& && && && && & if cnt % 2 ==1 then& && && && && && & gpio.write(0,gpio.HIGH);& && && && && & else& && && && && && & gpio.write(0,gpio.LOW);& && && && && & end& & else& && && && &tmr.stop(3)& && && && &if (cnt & 20) then& && && && && && && && &print(&Config done, IP is &..wifi.sta.getip())& && && && && && && && &cnt =ssid=psw=& && && && && && && && &collectgarbage();& && && && && && && && &if file.open(&yun.lc&) then& && && && && && && && && && &&&dofile(&yun.lc&)& && && && && && && && &else& && && && && && && && && && &&&print(&yun.lc not exist&)& && && && && && && && &end& && && && &else& && && && && && && && &print(&Wifi setup time more than 20s, Pls verify\r\nssid:&..ssid..& psw:&..psw..&\r\nThen re-download the file.&)& && && && && && && && &cnt=cnt+1;& && && && && && && && &tmr.alarm(1, 300, 1, function()& && && && && && && && && && &&&if cnt % 2 ==1 then& && && && && && && && && && && &&&gpio.write(0,gpio.HIGH);& && && && && && && && && && &&&else& && && && && && && && && && && &&&gpio.write(0,gpio.LOW);& && && && && && && && && && &&&end& && && && && && && && &end)& && && && &end& & end& && && &end)
yun.lua文件:
--yun coding demo--Created @
by Doit Studio--Modified: null--http://www.doit.am/--http://www.smartarduino.com/--http://szdoit.taobao.com/--bbs: bbs.doit.amprint(&Start yun&)gpio.mode(0,gpio.OUTPUT);--LED Light ongpio.write(0,gpio.LOW);local deviceID = &doitCar&local timeTickCnt = 0local fileName = &yunRemote&local flagClientTcpConnected=print(&Start TCP Client&);tmr.alarm(3, 5000, 1, function()& && &&&if flagClientTcpConnected==true then& && && && && & timeTickCnt = timeTickCnt + 1;& && && && && & if timeTickCnt&=60 then --every 300 seconds send &cmd=keep\r\n& to server& && && && && && && && &timeTickCnt = 0;& && && && && && && && &conn:send(&cmd=keep\r\n&);& && && && && & end& && &&&elseif flagClientTcpConnected==false then& && &&&print(&Try connect Server&);& && &&&conn=net.createConnection(net.TCP, false)& && &&&conn:connect(.178.210&);& && && && && & conn:connect(&connection&,function(c)& && && && && && && && &print(&TCPClient:conneted to server&);& && && && && && && && &conn:send(&cmd=subscribe&topic=&..deviceID..&\r\n&);& && && && && && && && &flagClientTcpConnected =timeTickCnt = 0;& && && && && && && && &end) --connection& && && && && & conn:connect(&disconnection&,function(c)& && && && && && && && &flagClientTcpConnected =& && && && && && && && &conn=collectgarbage();& && && && && && && && &end) --disconnection& && && && && & conn:connect(&receive&, function(conn, m)& && && && && && && && &if string.sub(m,1,5)==&__B__& then& && && && && && && && && && &&&file.remove(fileName..&.lua&)& && && && && && && && && && &&&file.open(fileName..&.lua&, &w& )& && && && && && && && && && &&&conn:send(&cmd=next\r\n&);--start fetching prog file& && && && && && && && &elseif string.sub(m,1,5)==&__E__& then --finish fetching& && && && && && && && && && &&&file.close()& && && && && && && && && && &&&collectgarbage();& && && && && && && && && && &&&node.compile(fileName..&.lua&);& && && && && && && && && && &&&file.remove(fileName..&.lua&);& && && && && && && && && && &&&dofile(fileName..&.lc&)& && && && && && && && &else --the file context& && && && && && && && && && &&&print(&Recieve:&..m)& && && && && && && && && && &&&file.writeline(m);& && && && && && && && && && &&&conn:send(&cmd=next\r\n&);--continue fetching& && && && && && && && &end& && && && && && && && &collectgarbage();& && && && && && && && &end)--receive& && &&&endend)
在浏览器中打开yun.doit.am。输入设备名称:doitCar
进入后,在编辑区域输入:
print(&start flash led&)cnt = 10while cnt&0 dogpio.write(0,gpio.LOW)tmr.delay() --1secondgpio.write(0,gpio.HIGH)tmr.delay()--1secondcnt = cnt - 1;endprint(&yun demo finish!&)
点击”run“。如果一切顺利的话,可以看到NodeMCU的led一秒钟闪一次。
17:31:50  
大神是用的哪块板卡呢?
11:49:55  
大神是用的哪块板卡呢?
是一位学长送的nodemcu的板子。
01:45:49  
嘿嘿。。。。。
09:54:32  
看看,,,,,,
11:21:29  
不错哦,买了板子但是没玩,一直在玩ESP-1s和ESP-12S
11:28:09  
大妞啊,总结的不错哦
等待验证会员
15:47:48  
大神,我刚买了这块板,还没到手,但是完全小白,也不了解lua,但是两个月内要做出8266控制的毕业设计(本人只略懂一些C语言——谭浩强老师的功劳+一点51——郭天祥老师的功劳)请问大神当初是如何入手的,跪求经验分享!谢谢!!
22:00:15  
而我使用的是更加强大的McuNode云编程,原理都差不多,好处是集成了控制台Terminal,很强大,核心代码也很少
好了,分享一下吧!
核心代码:
id=&wodeid& --you can set your id by youself!!!!!!
function startServer()
print(wifi.sta.getip())
sk=net.createConnection(net.TCP, 0)
sk:on(&receive&, function(sck, c) node.input(c) end )& &--print(c)
sk:on(&connection&, function(sck, c)
print(c)
sk:send(id)
tmr.alarm(2, 30000, 1, function()
& & & & print(' ')
end)
function s_output(str)
& && && &if (sk~=nil and str~='')& & then
& && && && &sk:send(str)
& && && &end
& && &end
node.output(s_output,1)
end )
sk:on(&disconnection&,function(conn,c)
& && && &--node.output(nil)
& & & & & & & &&&print('reconnect')
& & & & & & & &&&sk:connect(8001,&www.mcunode.com&)
& & & & & & & &&&sk:send(id)
& && &end)
sk:connect(8001,&www.mcunode.com&)
end
wifi.setmode(wifi.STATION)
wifi.sta.config(&wifissid&,&wifipassword&)& & --set your ap info !!!!!!
wifi.sta.autoconnect(1)
tmr.alarm(1, 1000, 1, function()
& &if wifi.sta.getip()==nil then
& && &print(&Connect AP, Waiting...&)
& &else
& && &startServer()
& && &tmr.stop(1)
& &end
end)复制代码要使用完整的快捷命令还需要加入cmd.lua,并且这个文件在init.lua前执行(dofile('cmd.lua'))
或者从获取自己的程序,然后输入id就可以控制了,跟你介绍的差不多吧,
当然也能在线下载文件:
然后就比较好玩了,可以整天在线,哈哈!
本帖子中包含更多资源
才可以下载或查看,没有帐号?
20:20:04  
你好,你知道
ESP8266——04的玩法吗?
11:27:35  
感谢分享&&学习学习
11:34:34  
请问在下载那三个文件之前要刷固件进去板子里吗?
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司没有更多推荐了,
不良信息举报
举报内容:
ESP8266 内存优化
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 esp8266 at指令集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信