讓兩個ESP8266相互問好是一件很有趣的事情,這需要將一個ESP設置為接入點(服務器),另一個設置為基站(客戶機),繞過它們建立無線通信,讓客戶機向服務器發送一條“Hello World!”信息。
項目零件BOM很簡單:ESP8266-01、FTDI編程器、連接線。電路圖很直觀,只要在FTDI編程器和ESP8266之間建立串行通信,再上傳一些代碼就OK了。
下載ESPlorer
下載ESPlorer時,建議使用4refr0nt創建的ESPlorer程序,來創建Lua文件并保存到ESP8266。
下載成功后運行ESPlorer.jar,(如果電腦沒有JAVA就安裝一個),啟動ESPlorer。
寫服務器Script
切記,首先使用NodeMCU固件測試兩個ESP的聯通性,再拷貝并粘貼代碼到ESPlorer。其中,ESP服務器用作接入點,名稱=SSID=test,密碼=12345678。
服務器連續收聽連接狀況,在成功建立連接后將收到一條信息,并將這個字串顯示在serial monitor上。
print("ESP8266 Server")
wifi.setmode(wifi.STATIONAP);
wifi.ap.config({ssid="test",pwd="12345678"});print("Server IP Address:",wifi.ap.getip())
sv = net.createServer(net.TCP)
sv:listen(80, function(conn)
conn:on("receive", function(conn, receivedData)
print("Received Data: " .. receivedData)
end)
conn:on("sent", function(conn)
collectgarbage()
end)
end)
上傳Lua Script
打開ESPlorer后,將出現一個與圖示類似的窗口,按照以下指令向ESP8266發送命令。
1.將FTDI編程器與電腦連接
2.Set bad raute 為 9600
3.選擇FTDI編程器端口(例如,COM3)
4.按Open/Close
5.選擇NodeMCU + MicroPtyhon鍵
6.將Lua script拷貝到ESPlorer
接下來,按“Save to ESP”健,以“init.lua”文件名將Script腳本保存到ESP。
寫客戶Script
先用NodeMCU測試ESP聯通性,再拷貝代碼,并粘貼到ESPlorer。
ESP客戶機作為基站,不停的等待服務器指令。當客戶機發現服務器創建了一個通信時,就每隔5秒發送一次信息 “Hello World!”。
print("ESP8266 Client")
wifi.sta.disconnect()
wifi.setmode(wifi.STATION)
wifi.sta.config("test","12345678") -- connecting to server
wifi.sta.connect() print("Looking for a connection")
tmr.alarm(1, 2000, 1, function()
if(wifi.sta.getip()~=nil) then
tmr.stop(1)
print("Connected!")
print("Client IP Address:",wifi.sta.getip())
cl=net.createConnection(net.TCP, 0)
cl:connect(80,"192.168.4.1")
tmr.alarm(2, 5000, 1, function()
cl:send("Hello World!")
end)
else
print("Connecting...")
end
end)
按照與前面上傳Lua Script的步驟,上傳客戶Script代碼。這樣,客戶機將以無線方式向服務器發送一條“Hello World!”信息,其結果顯示在串口視窗上。
本項目中,左邊窗口采用ESPlorer Output Window,右邊使用PuTTY.org建立串行通信。
審核編輯:湯梓紅
-
無線通信
+關注
關注
58文章
4526瀏覽量
143426 -
串行通信
+關注
關注
4文章
569瀏覽量
35299 -
ESP8266
+關注
關注
50文章
962瀏覽量
44852
發布評論請先 登錄
相關推薦
評論