ESP8266 do Rui, em português

Comunicando dois ESP8266

O servidor é um ponto-de-acesso; o cliente é estação. Neste exemplo eles estabelecem uma comunicação sem fio o cliente diz "Olá!".

Dois ESP8266 conversando

Esquema para comunicação serial

Código LUA do servidor

Observar SSID=test e Password=12345678.

-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
-- ESP8266 Server

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)

O servidor fica continuamente esperando por conexões. Quando alguma é estabelecida com sucesso, ele recebe mensagem e a imprime no console de comunicação serial.

Código LUA do cliente

-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
-- ESP8266 Client

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)

O cliente fica continuamente procurando pelo ponto-de-acesso. Quando o localiza, estabelece conexão e passa a enviar "Hello world!" como mensagem a cada 5 segundos.

Demonstração

Imagem mostrando execução do exemplo

À esquerda, a janela de output do ESPlorer. À direita, um terminal de comunicação serial estabelecida com o PuTTY.