Крошечные Bluetooth-прокси своими руками с ESP32 Super Mini

от Дерек
0 Комментарии 6 мин на чтение

 

Краткое введение: 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 для любого устройства.

Самый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — Рекомендуемое изображениеСамый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — Рекомендуемое изображение

В течение последнего месяца или около того я опробовал небольшие платы 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
Самый маленький прокси-сервер Bluetooth с супер мини-платой ESP32-C3 своими руками — распиновкаСамый маленький прокси-сервер Bluetooth с супер мини-платой ESP32-C3 своими руками — распиновка
Распиновка ESP32-C3 Супермини

О размере

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

Самый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — рядом с кнопочной батареейСамый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — рядом с кнопочной батареей

Поскольку он такой маленький, моей камере удалось уловить мельчайшие царапины на разъеме 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. Например:

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:

#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:

#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:

Самый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — изображение 1Самый маленький прокси-сервер Bluetooth с супермини-платой ESP32-C3 своими руками — изображение 1

Источник

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Вам может понравиться

Оставить комментарий