Содержание
Краткое введение: Bluetooth и ESP32
Bluetooth-прокси являются отличным способом захвата пакетов BLE с помощью платы ESP32. Этот компонент работает, используя ESP32 в качестве моста между устройствами Bluetooth Low Energy (BLE) и вашим сервером, например Home Assistant. Плата пассивно передает любой трафик BLE, который она захватывает, на сервер, где данные могут быть обработаны и интегрированы в системы автоматизации или информационные панели.
Использование прокси-сервера Bluetooth устраняет необходимость наличия у вашего ПК или сервера собственного адаптера Bluetooth, что позволяет вам использовать ESP32 для функций Bluetooth и снижает зависимость от оборудования на вашем основном компьютере. Вам не придется возиться с драйверами, ошибками совместимости и тому подобными проблемами.
В своей настройке я часто использую все платформы Bluetooth, предлагаемые ESPHome, либо в качестве ежедневных драйверов, либо в качестве устройств для тестирования и разработки. Совсем недавно я поделился способом захвата и декодирования BLE-рекламы Уличный термогигрометр SwitchBot и интеграция его в Home Assistant через ESPHome. Я настоятельно рекомендую эту статью всем, кто заинтересован в изучении процесса декодирования рекламы BLE для любого устройства.


В течение последнего месяца или около того я опробовал небольшие платы ESP, чтобы заменить некоторые стандартные ESP32, которые я использовал в своем умном доме. Я считаю, что нашел самую крошечную плату ESP32, которая может надежно работать в качестве прокси-сервера Bluetooth или пассивного трекера BLE с Home Assistant. Устройство имеет маркировку Плата разработки ESP32-C3 SuperMiniкоторый я купил за смешную цену 2,5 доллара на AliExpress!
Спецификация ESP32-C3 SuperMini
- Модель: Плата разработки ESP32-C3 SuperMini
- ПРОЦЕССОР: ESP32C3FN4, 32-битный одноядерный RISC-V, до 160 МГц
- Ресурсы: 400 КБ SRAM, 384 КБ ПЗУ, 4 МБ флэш-памяти
- Интерфейсы: 1xI2C, 1xSPI, 2xUART, 11xGPIO (ШИМ), 4xАЦП
- Wi-Fi: 802.11b/g/n, станция, SoftAP, гибридный режим
- Bluetooth: Блютуз 5.0
- Потребляемая мощность: Глубокий сон 43 мкА
- Размеры: 22,52×18 мм
- Цена: 2,5 доллара США на AliExpress


О размере
Плата разработки ESP32-C3 Super Mini очень и очень крошечная. Его длина составляет всего 22,52 мм, а глубина — 18 мм. Этот размер очень впечатляет и позволяет спрятать его где угодно. За телевизором, под умной розеткой или просто закрепите его где-нибудь подальше от глаз.


Поскольку он такой маленький, моей камере удалось уловить мельчайшие царапины на разъеме USB-C, а также на батарейке-таблетке, которую я использовал для сравнения. Интересно, что здесь используются стандартные разъемы 2,54 мм, равномерно расположенные по бокам.
ESP32-C3 Супер Мини имеет 16 доступных контактов GPIO, а общий ESP32-РУМ обычно имеет около 32 контактов GPIO. Компактный дизайн ESP32-C3 идеально подходит для проектов с ограниченным пространством, но имеет около На 50 % меньше контактов чем стандартный ESP32-WROOM, что ограничивает возможности подключения периферийных устройств.
Прошивка ESP32-C3 SuperMini
Эта крошечная плата похожа на любую другую плату разработки ESP32, ее можно легко прошить с помощью ESPHome и использовать для любого проекта умного дома. Например, вы можете прикрепить радар ммволны LD2410 и использовать его как датчик присутствия. Или вы можете подключить 1-проводные датчики Далласа и используйте его для контроля температуры в вашем помещении. Я обнаружил, что он не ограничен размером с точки зрения вычислительной мощности, хотя для периферийных устройств доступно меньше контактов GPIO.
Прошейте на плате базовую конфигурацию ESPHome, настроив свои учетные данные Wi-Fi, ключ OTA и резервную точку доступа. Для оптимальной производительности рекомендуется настроить компонент платформы ESP32 на использование esp-idf рамки, как arduino framework потребляет больше памяти и приводит к снижению производительности при включенном прокси-сервере Bluetooth. Например:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
esphome: name: esp32-c3-super-mini friendly_name: ESP32-C3 Super Mini esp32: board: esp32-c3-devkitm-1 framework: type: esp-idf # Enable logging logger: # Enable Home Assistant API api: encryption: key: "XXXXX" ota: - platform: esphome password: "XXXXX" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esp32-C3-Super-Mini" password: "XXXXX" captive_portal: |
Bluetooth-прокси
Для прошивки платы SuperMini с помощью прокси-сервера Bluetooth требуется добавить всего несколько строк кода. Стоит отметить, что функция прокси-сервера Bluetooth в ESPHome поддерживает до трех активных соединений одновременно. Если вы обнаружите, что ваши устройства используют активное соединение (например INKBIRD IAM-T1 Монитор качества воздуха) для анализа данных помните, что вы не можете превысить этот предел.
Чтобы улучшить прием, вы также можете настроить окно сканирования радио Bluetooth. Я обнаружил, что установка интервала и окна на 800 мс лучше всего подходит для большинства случаев использования. Вот конфигурация, которую необходимо добавить к базовой конфигурации ESPHome:
|
1 2 3 4 5 6 7 8 9 |
#Enable Bluetooth proxy bluetooth_proxy: active: true #Optional, defaults to false #Change scanning window and interval esp32_ble_tracker: scan_parameters: interval: 800ms window: 800ms |
Эта конфигурация будет передавать все данные Bluetooth как есть, а Home Assistant автоматически обнаружит любые интеграции для ваших устройств. Это просто, работает и не требует сложного кодирования и настройки.
ESP32 BLE-трекер
Пассивно передаваемые данные датчиков, которые объявляются определенными устройствами без необходимости активных соединений, принимаются отдельно и не ограничиваются количеством подключений. Я предпочитаю настраивать этот способ, потому что он позволяет мне отфильтровывать ненужные устройства BLE, которые мне не нужны в Home Assistant. В зависимости от платформы вашего устройства существует несколько способов настройки esp32_ble_tracker компонент, отвечающий вашим потребностям.
Например, вот как настроить датчики для сбора данных с различных датчиков температуры и влажности Xiaomi:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#Change scanning window and interval esp32_ble_tracker: scan_parameters: window: 800ms interval: 800ms active: False sensor: #Xiaomi LYWSD02 Climate Sensor - platform: xiaomi_lywsd02 mac_address: "E7:2E:01:40:C9:08" temperature: name: "Living Room Temperature" humidity: name: "Living Room Humidity" battery_level: name: "Living Room Battery Level" #Xiaomi QingPing CGG1 Climate Sensor - platform: xiaomi_cgg1 mac_address: "58:2D:34:10:53:65" temperature: name: "Kids Room Temperature" humidity: name: "Kids Room Humidity" battery_level: name: "Kids Room Battery" #Custom pvvx firmare sensor - platform: pvvx_mithermometer mac_address: A4:C1:38:BF:86:2E temperature: name: "Xiaomi Thermometer 3 Temperature" humidity: name: "Xiaomi Thermometer 3 Humidity" battery_level: name: "Xiaomi Thermometer 3 Battery-Level" battery_voltage: name: "Xiaomi Thermometer 3 Battery-Voltage" |
Поскольку эти датчики пассивно сообщают о своих показаниях, нет необходимости поддерживать активное соединение Bluetooth. Данные анализируются через регулярные промежутки времени и отображаются в Home Assistant. Мне удалось настроить 8 различных датчиков LYWSD02 с платой ESP32-C3 SuperMini без каких-либо проблем или потери данных!
Краткое содержание
В настоящее время я заменил две стандартные платы ESP32, которые были у меня дома, на одну плату ESP32-C3 Super Mini. У меня есть еще в разработке, и я собираюсь использовать их все в своем доме. Я хочу полностью спрятать проводку и платы от глаз, поэтому эту плату
Нет реальной причины заменять существующие платы этой супермини-платой, но если вы ищете дешевые ESP32 для проектов, не требующих большого количества контактов, ESP32-C3 Super Mini стоит рассмотреть только из-за цены и размера! Вот несколько ссылок с AliExpress и Amazon:



