В этом проекте мы заставим два модуля ESP8266 обмениваться данными друг с другом. Как это будет работать? Мы установим один ESP как точку доступа (сервер), а другой ESP как станцию (клиент). Затем они установят беспроводную связь, и клиент отправит сообщение на сервер, говоря «Hello World!».
Необходимые компоненты
- Модуль ESP8266 (купить на AliExpress).
- Плата FTDI (3.3V) (купить на AliExpress).
Схемы проекта
Схемы для этого проекта очень просты. Вам нужно только установить последовательную связь между вашим программатором FTDI и вашим модулем ESP8266, чтобы загрузить какой-то код. Представленные ниже схемы справедливы и для Клиента, и для Сервера.
Загрузка ESPlorer
Я рекомендую использовать программу ESPlorer, созданную 4refr0nt, для создания и сохранения файлов Lua в ESP8266.
Чтобы загрузить и установить ESPlorer, следуйте этим инструкциям:
- Нажмите здесь, чтобы загрузить ESPlorer
- Разархивируйте эту папку.
- Перейти в основную папку
- Запустите ESPlorer.jar. Это программа JAVA, поэтому вам необходимо установить JAVA на вашем компьютере.
- Откройте ESPlorer.
Написание вашего серверного скрипта
Не забудьте, что сначала вам нужно прошить оба ESP8266 с помощью NodeMCU Firmare. Скопируйте и вставьте код ниже в ESPlorer.
Краткое описание: Сервер ESP действует как точка доступа и имеет собственный SSID=test и пароль=12345678. Сервер постоянно прослушивает соединение, когда он успешно устанавливает соединение и получает сообщение, выводит эту строку на последовательный монитор.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-- 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
При открытии ESPlorer вы увидите окно, похожее на показанное на предыдущем рисунке. Для отправки команд на ESP8266 следуйте этим инструкциям:
- Подключите программатор FTDI к компьютеру.
- Установить бодовую скорость передачи 9600.
- Выберите порт программатора FTDI (например, COM3).
- Нажмите Open/Close (Открыть/Закрыть).
- Выберите вкладку NodeMCU+MicroPtyhon.
- Скопируйте ваш скрипт Lua в ESPlorer.
Затем вы просто нажимаете кнопку Save to ESP (Сохранить в ESP) и сохраняете свой файл под именем «init.lua». Все, о чем вам нужно побеспокоиться или что нужно изменить, выделено красным на следующем рисунке.
Написание вашего клиентского скрипта
Прошивка вашего ESP с помощью NodeMCU. Скопируйте и вставьте код ниже в ESPlorer.
Краткое описание: Клиент ESP действует как Station (Станция) и постоянно ищет Access Point (Точку Доступа). Когда Клиент находит, Сервер устанавливает связь и отправляет сообщение «Hello World!» каждые 5 секунд.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
-- 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) |
Примечание: Чтобы загрузить код клиентского скрипта, следуйте предыдущему разделу статьи - «Загрузка вашего скрипта Lua».
Демонстрация работы проекта
В этом проекте Клиент отправляет сообщение «Hello World!» на Сервер по беспроводной сети. Вот что вы должны увидеть в окнах последовательного терминала.
Примечание: в левом окне я использую окно вывода ESPlorer. В правом окне я устанавливаю последовательное соединение с PuTTY.org.
41 просмотров