Комментарии 18
Статья не плохая, поставил плюс. На будущее пишите больше + рассказывайте больше о том, что происходит под капотом. А то непонятно например чем Wifi хуже BLE, либо что может обеспечить большую скорость итд итп.
Энергоэкономия: WiFi < Bluetooth < BLE
Если нужно отправить сигнал из кнопки (беспроводной выключатель), лучше BLE. Если нужно отправить веб-интерфейс или видеосигнал, то WiFi. Если раз в сутки проснуться и скачать новый прогноз погоды, то WiFi. Чем меньше байт нужно для отправки, тем лучше BLE/Bluetooth.
Другое дело примеров кода для Bluetooth-сервера на ESP32 (то есть он подключает к себе устройства, а не сам ведет себя как устройство) раз два и обчелся — недокументированный код подключения клавиатуры и PS3 геймпада. Документации вообще нет. В общем, в это дело лезть сложно.
Bluetooth > BLE
верно только для EDR, в котором 3 мегабита разрешено. для BLE уже 2 мегабита скорость разрешили.
Если раз в сутки проснуться и скачать новый прогноз погоды, то WiFi.
Тут скорее без разницы, по энергии скорее всего в среднем одинаково будет. Вопрос только в организации доступа к сети.
А вот для синхронизации часов с высокой точностью это уже строго WiFi.
Скорее всего потому, что BLE не совсем профильный функционал ESP32, поскольку есть множество других более энергоэфективных контролеров. В случае использования ESP32 только для BLE это как из пушки по воробьям
Самый ближайший аналог — 2.4 ГГц свисток для беспроводной мышки — совсем не вайфай, хотя тоже радиоволны.
Если говорить про энергоэффективность, ESPNOW ~ 120mA в момент соединения BLE ~ 100mA, но для BLE нужно больше времени.
То есть для вай-фай кнопки вида проснулись-отправили-уснули, ESPNOW вообще впереди планеты всей (я уже молчу про вайфай и блютус), ну и например он ещё может работать как передатчик для рации или подобного в одну сторону, причем бьёт примерно на 500метров.
Из минусов — только ESP девайсы между собой соединять, из андроид-телефона или ноутбука или Wi-Fi роутера к этому делу не подключиться. Но и статья не об этом, естественно.
…НЕ поверх Wifi протокола…
Китайцы они такие, в https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html пишут немного не так:
ESP-NOW is a kind of connectionless Wi-Fi communication protocol that is defined by Espressif.
Также непонятно почему используют http сервер и клиент, тот же mqtt (канальный протокол TCP) и mqtt-sn (UDP) гораздо более заточенные под IoT.
А в чем преимущество mqtt в данном случае?
Возможно в приведенном случае между двух устройств и не имеет приемуществ, да и вообще mqtt, как таковое, не совсем клиент-серверное взаимодействие (все устройства представляют из себя клиентов и отдельно брокер). Но когда устройств 10-к и более, оперирование едиными сущностями как прием и отправка сообщений гораздо проще, чем поддержка всего протокола HTTP на всех устройствах, да и mqtt гораздо быстрее, ели установить соединение и передавать данные.
А это только у меня выдает "Hmm. We’re having trouble finding that site. We can’t connect to the server at https." для BLE варианта? WiFi-то скачался...
И, может быть, лучше оформить как git-репозиторий?
А реально на esp32 такое: по необходимости включать и отключать сквозную пересылку данных между двумя железными uart, при условии что могут быть разные bauds и инвертирование? Протоколов может быть использовано несколько, но все основаны на serial разных конфигураций.
Осуществление разных способов связи между модулями esp32