• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом ESP8266. Уменьшение тока потребления.

pvvx

Активный участник сообщества
@enjoynering - нашел от куда вы вытянули этот бред.
1. При уже орущей, уже соединенной c колонкой устройства у пользователя, пакеты запросов не принимаются.
2. При уже орущей, уже соединенной c колонкой устройства у пользователя, пакеты объявлений кто она такая не передаются.
3. При уже орущей, уже соединенной c колонкой устройства у пользователя, утилиты Linux не примут ничего - связь идет на другом канале и каналы имеют скачкообразную перестройку, узнать которую можно только при первичном соединении.
4. Соединение может быть защищено pin-кодом.
5. Соединение может быть защищено привязкой по MAC.
6. Соединение всегда шифровано, и вам не влезть в пойманный трафик с прыжками по каналам...
7. Размер пакета всегда ограничен. Разница размера в версии BT. Переполнения невозможно, т.к. типовое устройство bluetooth однозадачно - пока не отработает, нового не примет. Это не WiFi роутер скипающий все пакеты которые не лезут, у BT нет таких задач.
 

pvvx

Активный участник сообщества
Как таковую "привязку" BLE по MAC вы не снимете. При ней в обоих устройствах согласуется ключ шифрации, который будет меняться при каждом соединении. Снять можно только в ручную, с помощью специальной команды устройству. А сообщения не шифрованные этим ключом приниматься не будут :p
Скорость любого CPU в BLE SoC без проблем позволяет обслужить непрерывный максимальный радио-поток. Он мал - всего 1 мегабит. Сообщения больше аппаратного буфера отбрасываются на аппаратном уровне, т.к. не совпадет контрольная сумма. Не с тем МАС - аналогично. И приемник включается окном - 500 мкс, после передачи. Попробуйте попадите просто так :p Большинство сообщений идет с подтверждением - BLE стек, т.е. последовательно - запрос-исполнение-ответ - какие ещё переполнения?
Вот как раз это и является костью в ESP. ESP32 - полный тормоз и не успевает отвечать. Устройству приходится посылать множественные дополнительные перезапросы ESP32, разряжая батарейку. По этим причинам испольpование ESP32 в BLE невозможно.
 

pvvx

Активный участник сообщества
И как же Lora или WiFi-ESP-NOW это решит? Потеря одного пакета и весь ваш тайминг в 2 мс накрыт тазиком.
ESP-NOW отличается от (nRF) ESB только в худшую сторону. А ESB - это предок BLE. Для КА части используется та-же схема и функция производящая - TX-пауза-RX но с малым буфером и другим кодом.
 

pvvx

Активный участник сообщества
А у время от срабатывания геркона на Xiaomi LYWSD03MMC до вывода на GPIO на приемнике AdScanerTrg:
1685885141440.png
2.9...3.5 мс.
И туда входит просыпание SoC в LYWSD03MMC, передача по 3-м каналам BLE рекламы, прием на другом TLSR825x (TB-03F), разбор сообщения и вывод события открытия/закрытия на GPIO.
Т.е. если это кнопка, то включение лампы будет через 3 мс.
 

nikolz

Well-known member
А у время от срабатывания геркона на Xiaomi LYWSD03MMC до вывода на GPIO на приемнике AdScanerTrg:
Посмотреть вложение 13141
2.9...3.5 мс.
И туда входит просыпание SoC в LYWSD03MMC, передача по 3-м каналам BLE рекламы, прием на другом TLSR825x (TB-03F), разбор сообщения и вывод события открытия/закрытия на GPIO.
Т.е. если это кнопка, то включение лампы будет через 3 мс.
Какую максимальную частоту передачи сообщений можно получить?
И хорошо бы не забивать три канала.
 

pvvx

Активный участник сообщества
Какую максимальную частоту передачи сообщений можно получить?
И хорошо бы не забивать три канала.
Тогда ESB и прочие варианты, используемые в мышках. У Telink мышки опрос вроде в 1000 Гц.
 

pvvx

Активный участник сообщества
См: Application Note: Telink Enhanced ShockBurst Engine User Guide.
 

pvvx

Активный участник сообщества
При тесте на ESP32 с nRF01 (ESB) вышло всего 150 транзакций в сек. ESP- ещё тот тормoз...
На TLSR825x может значительно быстрее, но тогда ESP пропускает большинство пакетов и требуются ретранзакции, что сводит всё на нет:
Кусок кода TLSR825x с либой для ESB:
C:
    ...
    ESB_SetDatarate(ESB_DR_2M);
    ESB_SetOutputPower(ESB_RF_POWER_0DBM);
    ESB_SetAddressWidth(ADDRESS_WIDTH_5BYTES);
    ESB_ClosePipe(ESB_PIPE_ALL);

    unsigned char rx_address[5] = { 0xe7, 0xe7, 0xe7, 0xe7, 0xe7 };
#if (RF_RX_TX == RF_TX)
    ESB_SetAddress(ESB_PIPE0, rx_address);
    ESB_OpenPipe(ESB_PIPE0, 1);
    ESB_SetTXPipe(ESB_PIPE0);
    ESB_ModeSet(ESB_MODE_PTX);
#else
    ESB_SetAddress(ESB_PIPE0, rx_address);
    ESB_OpenPipe(ESB_PIPE0, 1);
    ESB_ModeSet(ESB_MODE_PRX);
#endif

    ESB_SetRFChannel(chn);
    ESB_SetAutoRetry(2, 150); //5,150
    ESB_RxTimeoutSet(500); // 500 us
    ESB_RxSettleSet(80); // 80 us
    ESB_TxSettleSet(149); // 149 us

    ESB_EnableDynamicPayload(1);
    ...
 
Сверху Снизу