ESP 8266 nodemcu 入过的坑

ESP8266 真是很强大,自己作为一个wifi模块 ,同时也是一块强大的muc,是一块可编程的器件,入坑以来,各种资料,各种乱 单是搜集一些资料就有这么多,还没有带个各种编译环境等等


今天就简单的梳理一下 。我所知道的分三种,一种AT指令,AT指令基本上仅把8266作为一块wifi模块了,用串口输入AT 命令实现wifi的连接发射,tcp和udp的相关等等,优点是简单,易懂,很块就能入门,的缺点就得外挂一个mcu实现各种控制,可玩性并不高而且内部的资源就浪费。第二种是用安信可 ESP 系列一体化开发环境,这个优点可以接触底层,很锻炼人,c语言的开发语言也容易懂,缺点嘛,作为一个电信狗,Eclipse真的玩不转,但是看配置编译环境就真的很头疼!实在不爽第三就是nodemuc ,用一种新语言lua来编写,优点就是编译环境基本不用配置,一个软件完成一切。

而且提供可定制的固件,真的很是人性化可以按需下载,真的很舒服


github也提供了文档供你查阅。缺点就是你得学一门或者说用一门新语言来实现调用API.权衡了一下利弊,最终还是选择了用lua。开始以为这条路会走的很顺利,但是一路心酸!!

    如果你用8266用lua来编写,http://www.cnblogs.com/yangfengwu/p/7513097.html这个教程相信你一定看过,而且这个作者也在简述里边发过相同的文章http://www.jianshu.com/p/8cec04ee90e6

就是这个老哥,真的很是厉害,但是一直跟着他思路走,问题越来愈大。所以最后果断自己重新整理思路,果然阔然开朗。

简单说一下杨哥一个client的程序

wifi.setmode(wifi.STATIONAP)

cfg={}

cfg.ssid="Hellow8266"

cfg.pwd="11223344"

wifi.ap.config(cfg)

apcfg={}

apcfg.ssid="qqqqq"

apcfg.pwd="11223344"

wifi.sta.config(apcfg)

wifi.sta.autoconnect(1)

ClientConnectedFlage = 0

TcpConnect = nil

tmr.alarm(1, 1000, 1, function()

if  ClientConnectedFlage == 0 then

Client = net.createConnection(net.TCP, 0)

Client:connect(8080,"192.168.1.103")

Client:on("receive", function(Client, data)

uart.write(0,data)

end)

Client:on("connection", function(sck, c)

ClientConnectedFlage = 1

TcpConnect = Client

print("Link OK")

tmr.stop(1)

Client:on("disconnection", function(sck, c)

ClientConnectedFlage = 0

TcpConnect = nil

tmr.start(1)

end)

end)

if  ClientConnectedFlage == 0 then

print("Link Error")

end

end

end)

uart.on("data",0,function(data)

if  TcpConnect ~= nil then

TcpConnect:send(data)

end

end, 0)

printip = 0

wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)

printip = 0

end)

wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)

if printip == 0 then

print("+IP"..T.IP)

end

printip = 1

end)

这个代码可以实现连接wifi后去连接一个tcp的协议,但是总是要出现七八次的Link Error,这我可能作为强迫症,实在接受了这种,一直在思考问题,把杨哥的代码研究了大半天发现并没什么,开始以为是因为lua底层的原因,把github的文档反复看了好几遍还是没有有效解决,在将要放弃时终于找到问题所在了。

回到我们编程最开始的逻辑,我们先去连接一个路由器,然后再去connect一个tcp的服务器,杨哥程序在反馈link error时是连接tcp的失败的时后反馈错误连接,当时一直怀疑是 connect 的问题,可是连接tcp服务器做的三次握手时是一个很快的时间所以在怀疑2天后果断换思路,我们平常手机连接wifi的时候你可能就会发现他的时间遍比较长,出于这个我开始怀疑也许是8266在还没有连接路由器成功的时候,就去连接了客户端,所以一直就会报错,突然思路一下就开阔了!

贴上我的代码

wifi.setmode(wifi.STATION)

apcfg={}

apcfg.ssid="loser2.4"

apcfg.pwd="password"

wifi.sta.config(apcfg)

--wifi.sta.autoconnect(1)

wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)

print("\n\tSTA - GOT IP".."\n\tStation IP: "..T.IP.."\n\tSubnet mask: "..

T.netmask.."\n\tGateway IP: "..T.gateway)

print(wifi.sta.getip())

Client = net.createConnection(net.TCP, 0)

print("start")

Client:connect(5001,'192.168.2.239')

Client:ttl(1)

Client:on("receive", function(Client, data)

Client:send("ack") deal_t(data)

end)

end)

function deal_t(data)

if data=="a0"

then gpio.write(4,0)

end

if data=="b0"

then gpio.write(4,1)

end

end



也就说我们在连接服务器的时间应该是在获取了ip之后,所以这个回调就很有意思了!!

所以杨哥代码逻辑是有些小问题的,所有连接服务器相关的代码都应该在在这个函数后进行

wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)

print("\n\tSTA - GOT IP".."\n\tStation IP: "..T.IP.."\n\tSubnet mask: "..

T.netmask.."\n\tGateway IP: "..T.gateway)

--处理代码

end)

终于不再没有那么多报错了!开心

最后还是很感谢@杨奉武的代码!很是厉害的大牛

就先更新到这吧,太累了

晚安

                                                                                        2017/11/12 by loser

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容