Как обмениваться сообщениями между двумя ESP8266

 

Необходимые компоненты

  • ESP8266-01
  • программатор FTDI

 

Схемы 

Схема для этого проекта очень проста. Необходимо установить последовательную связь между порграмматором FTDI и ESP8266, чтобы загрузить  код. 

Загрузка ESPlorer

Рекомендуется использовать программу ESPlorer, созданную 4refr0nt, для создания и сохранения файлов Lua в ESP8266.

  1. Нажмите здесь, чтобы загрузить ESPlorer
  2. Распакуйте эту папку
  3. Перейдите в основную папку
  4. Запустите ESPlorer.jar. Для этого необходима установленная JAVA .

 

Написание серверного скрипта

Не забывайте, что сначала нужно прошить оба ESP прошивкой NodeMCU. Скопируйте и вставьте приведенный ниже код в EXPlorer.

Описание: ESP-сервер выступает в роли точки доступа и имеет собственный SSID = test и Password = 12345678.

Сервер постоянно прослушивает соединение, когда он успешно устанавливает соединение и получает сообщение, то выводит это сообщение на последовательном мониторе.


-- 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)

Загрузка скрипта Lua

  1. Подключите программатор FTDI к компьютеру
  2. Установите скорость соединения 9600
  3. Выберите свой порт программатора FTDI (например, COM3)
  4. Нажмите Открыть / Закрыть
  5. Выберите вкладку NodeMCU + MicroPtyhon
  6. Скопируйте скрипт Lua в ESPlorer

Затем вы просто нажимаете кнопку «Сохранить в ESP» и сохраняете файл с именем «init.lua». Все, что нужно изменить, выделено красной рамкой на следующем рисунке.

Написание клиентского скрипта

Прошивка ESP с NodeMCU. Скопируйте и вставьте приведенный ниже код в ESPlorer. Описание: Клиент ESP действует как станция, и постоянно ищет точку доступа. Когда Клиент находит ёё, устанавливается связь с сервером и отправляется сообщение «Hello World!» Каждые 5 секунд.


-- 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)

В окне последовательного терминала должно появиться следующее:

Добавить комментарий

Restricted HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.