Skip to content

wla-da/esp32_wifi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Эксперименты с сетью wi-fi и lan

Постановка задачи

  1. Реализовать подключение к существующей Wi-Fi сети 2,4 ГГц, где находится целевой веб сервер на определенном IP и порту 80
  2. Поднять проксирующий веб-сервер, доступный по локальной сети ethernet (LAN)
  3. Обеспечить проксирование запросов, приходящие на локальный (LAN) веб-сервер к целевому в wifi сети с модификацией определенных данных на лету
  4. Желательно, использовать питание PoE

Окружение

Способы подключения проводной сети Ethernet к микроконтроллеру

Варианты подключений микроконтроллера к Ethernet *

Способы подключения мк к Ethernet

Контроллер LAN8720A с реализацией физического уровня (PHY) и шиной RMII **

LAN8720A

Контроллер Ethernet ENC28J60 с реализацией физического (PHY), канального (MAC) уровней и шиной SPI *

ENC28J60

Контроллер Ethernet W5500 с реализацией физического (PHY), канального (MAC), транспортного (TCP/UDP) уровней и шиной SPI *

W5500

*Скриншоты взяты из видео Ethernet для МК. W5500 и ENC28J60. MQTT за авторством Руслана
**Скриншот блок схемы LAN8720A взят из официальной документации на микросхему (datasheet)

Выбор дополнительного "железа" для esp32

  1. Esp32 "из коробки" поддерживает канальный уровень (MAC) и транспортный уровень (TCP/UDP).
    Для реализации физического уровня (PHY) требуется внешняя микросхема. Подключение к ней производится по шине RMII (упрощенный MII), которую поддерживает esp32.
  2. Проводное подключение через разъем RJ45 к локальной сети Ethernet может быть осуществлено несколькими способами:
    2.1. через шину RMII для подключения к внешней реализации физического уровня (PHY). Канальный (MAC) и транспортный (TCP/UDP) уровни в этом используются из самого esp32
    2.2. через шину SPI. Потребуется внешний модуль с реализацией, как минимум, физического (PHY) и канального (MAC) уровней. Транспортный уровень (TCP/UDP) можно будет использовать либо во внешнем контроллере, либо из самого esp32
  3. Питание платы с esp32 производим через Ethernet (PoE), чтобы уменьшить количество адаптеров и проводов

Подробнее о поддержке Ethernet в esp32 в документации от Espressif.

Наиболее популярной недорогая плата esp32 с поддержкой Ethernet (без PoE) является WT32-ETH01.
Физический уровень реализован на микросхеме LAN8720A, связь с esp32 по шине RMII.
В проекте умного дома ESP-home одновременная работа данной платы и в режиме Wi-Fi и через сетевой кабель не поддерживается. Стоимость платы WT32-ETH01 на осень 2023 порядка 900-1100 руб.

Предварительно выбрана плата T-Internet-POE от Lilygo в силу доступности, наличия документации и опыта использования, сравнительно невысокой цены.
Так же интересной выглядит плата PoESP32 от M5Stack, имеет пластиковый корпус, небольшие размеры, прошивка "из коробки" поддерживает AT команды.
См примеры других плат esp32 с PoE далее.

Примеры плат esp32 с PoE

Модуль Фото Цена на осень 2023, тыс руб Ссылка
ESP32-Ethernet-Kit от Espressif

ESP32-Ethernet-Kit V1.2
ESP32-Ethernet-Kit V1.1
ESP32-Ethernet-Kit V1.2 8-10 Ali ESP32-Ethernet-Kit v1.2
T-Internet-POE от Lilygo T-Internet-POE 2,8-3,2 включая программатор Ali T-Internet-POE
wESP32 wesp32 ~7 с программатором + доставка отдельно Tindie wESP32
PoESP32 от M5Stack PoESP32 ~3 M5Stack PoESP32 Ali PoESP32
Esp32-Stick-PoE-A от Aleksei Karavaev Esp32-Stick-PoE-A ~2,7 с программатором + доставка отдельно Tindie Esp32-Stick-PoE-A
ESP32-POE open source hardware ESP32-POE ~2 без программатора + доставка отдельно ESP32-POE

Особенности

  1. В ESP-IDF v5 стала более жесткая проверка типов данных, см espressif/esp-idf#9511
    Предложен обходной путь, использовать константы вида PRIu32 из файла inttypes.h для исправления бага:
    format '%d' expects argument of type 'int', but argument 6 has type 'uint32_t' {aka 'long unsigned int'} [-Werror=format=]
    Детальнее

  2. PlatformIO пока не поддерживает плату T-Internet-POE от Lilygo, есть запрос от 2021 года на поддержку платы, на осень 2023 не решен platformio/platform-espressif32#475

About

эксперименты с сетями wi-fi/lan на базе esp32

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors