ESP 8266 nodemcu 入過的坑

ESP8266 真是很強大臼隔,自己作為一個wifi模塊 沉填,同時也是一塊強大的muc,是一塊可編程的器件,入坑以來霞扬,各種資料糕韧,各種亂 單是搜集一些資料就有這么多拾给,還沒有帶個各種編譯環(huán)境等等


今天就簡單的梳理一下 。我所知道的分三種兔沃,一種AT指令,AT指令基本上僅把8266作為一塊wifi模塊了级及,用串口輸入AT 命令實現wifi的連接發(fā)射乒疏,tcp和udp的相關等等,優(yōu)點是簡單饮焦,易懂怕吴,很塊就能入門,的缺點就得外掛一個mcu實現各種控制县踢,可玩性并不高而且內部的資源就浪費转绷。第二種是用安信可 ESP 系列一體化開發(fā)環(huán)境,這個優(yōu)點可以接觸底層硼啤,很鍛煉人议经,c語言的開發(fā)語言也容易懂,缺點嘛谴返,作為一個電信狗煞肾,Eclipse真的玩不轉,但是看配置編譯環(huán)境就真的很頭疼嗓袱!實在不爽第三就是nodemuc ,用一種新語言lua來編寫籍救,優(yōu)點就是編譯環(huán)境基本不用配置,一個軟件完成一切渠抹。

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


github也提供了文檔供你查閱梧却。缺點就是你得學一門或者說用一門新語言來實現調用API.權衡了一下利弊奇颠,最終還是選擇了用lua。開始以為這條路會走的很順利篮幢,但是一路心酸4罂!

? ? 如果你用8266用lua來編寫三椿,http://www.cnblogs.com/yangfengwu/p/7513097.html這個教程相信你一定看過缺菌,而且這個作者也在簡述里邊發(fā)過相同的文章http://www.reibang.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的協(xié)議剂陡,但是總是要出現七八次的Link Error,這我可能作為強迫癥狐胎,實在接受了這種鸭栖,一直在思考問題,把楊哥的代碼研究了大半天發(fā)現并沒什么握巢,開始以為是因為lua底層的原因晕鹊,把github的文檔反復看了好幾遍還是沒有有效解決,在將要放棄時終于找到問題所在了暴浦。

回到我們編程最開始的邏輯溅话,我們先去連接一個路由器,然后再去connect一個tcp的服務器歌焦,楊哥程序在反饋link error時是連接tcp的失敗的時后反饋錯誤連接飞几,當時一直懷疑是 connect 的問題,可是連接tcp服務器做的三次握手時是一個很快的時間所以在懷疑2天后果斷換思路独撇,我們平常手機連接wifi的時候你可能就會發(fā)現他的時間遍比較長屑墨,出于這個我開始懷疑也許是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之后关炼,所以這個回調就很有意思了3谈埂!

所以楊哥代碼邏輯是有些小問題的儒拂,所有連接服務器相關的代碼都應該在在這個函數后進行

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末见转,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子蒜哀,更是在濱河造成了極大的恐慌斩箫,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撵儿,死亡現場離奇詭異乘客,居然都是意外死亡,警方通過查閱死者的電腦和手機淀歇,發(fā)現死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門易核,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浪默,你說我怎么就攤上這事牡直∽贺埃” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵碰逸,是天一觀的道長乡小。 經常有香客問我,道長饵史,這世上最難降的妖魔是什么劲件? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮约急,結果婚禮上,老公的妹妹穿的比我還像新娘苗分。我一直安慰自己厌蔽,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布摔癣。 她就那樣靜靜地躺著奴饮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪择浊。 梳的紋絲不亂的頭發(fā)上戴卜,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音琢岩,去河邊找鬼投剥。 笑死,一個胖子當著我的面吹牛担孔,可吹牛的內容都是我干的江锨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼糕篇,長吁一口氣:“原來是場噩夢啊……” “哼啄育!你這毒婦竟也來了?” 一聲冷哼從身側響起拌消,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挑豌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后墩崩,有當地人在樹林里發(fā)現了一具尸體氓英,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年鹦筹,在試婚紗的時候發(fā)現自己被綠了债蓝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡盛龄,死狀恐怖饰迹,靈堂內的尸體忽然破棺而出芳誓,到底是詐尸還是另有隱情,我是刑警寧澤啊鸭,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布锹淌,位于F島的核電站,受9級特大地震影響赠制,放射性物質發(fā)生泄漏赂摆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一钟些、第九天 我趴在偏房一處隱蔽的房頂上張望烟号。 院中可真熱鬧,春花似錦政恍、人聲如沸汪拥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫筑。三九已至,卻和暖如春宗弯,著一層夾襖步出監(jiān)牢的瞬間脯燃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工蒙保, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辕棚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓邓厕,卻偏偏與公主長得像坟募,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邑狸,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容