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

TLSR8251 + LCD + термометр = LYWSD03MMC XIAOMI Bluetooth термометр

pvvx

Активный участник сообщества
Да, с версии 1.2 включена возможность установки pincode и bind. Если выставите pincode и забудете - то привет - стирать flash внешним программатором :) Это специально для невнимательных, но желающих зашифровать доступ к настройкам и прочему.
И Windows 10 начинает отображать батарейку в списке устройств:
1610429584227.png
Точнее её прошлогоднее значение :) Такой сервис у Microsoft, чтобы вы не расстраивались, что она уже давно сдохла от последнего обновления данной иконки... :)
 

pvvx

Активный участник сообщества
Обновление данной иконки в Win10 происходит когда какое ПО подключается к девайсу и включает notify сервиса инфы о батарейке. И то не всегда происходит обновление... Но первое, когда будете регистрировать pincode на свежем девайсе - она запомнит :) В итоге оно дает верные показания всего раз в году :)
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
Уж пусть будет, а то уже несколько месяцев доступно тем у кого нет NDA (а тем у кого есть - нет :)) и вдрух закроют:
Делаете:
git clone https://android.googlesource.com/platform/hardware/telink/atv/refDesignRcu
Открываете refDesignRcu\readme:
Там описано где скачать полный Linux tool chain for building the SDK
с Linux Eclipse, tcdb, check_fw и т.д.
 

pvvx

Активный участник сообщества
После вставки возможности изменять MAC на устройстве обнаружены новые глюки Win10...
Если устройство уже bind и есть pin-code, то смена MAC у этого устройства приводит Win10 к бешенству запросов у пользователя "введите ключ", заканчивающихся неудачей. С достаточно долгим периодом времени это проходит ... и только тогда можно начать новое соединение и ввести pin-code c благополучным связыванием. Это дело ускоряется только перезагрузив BLE адаптер, дрова винды, эксплорер и прочее :)
 

pvvx

Активный участник сообщества
Возникает интересный вопрос - зачем Win10 лезет к устройству с другим MAC и пытается заставить пользователя ввести ключ от своего устройства? Наверняка это полная дыра в безопасности.... Т.е. специально созданная :)
 

Mics78

New member
Уважаемый, pvvx.
Подскажите, пожалуйста. Насколько я понял из настроек, максимальное время между передачей данных в режиме Advertising составляет 10 сек.
Какие настройки в этом режиме позволят максимально снизить потребление устройства. Пока я вижу динамику - 20% заряда батареи в неделю.
 

pvvx

Активный участник сообщества
Подскажите, пожалуйста. Насколько я понял из настроек, максимальное время между передачей данных в режиме Advertising составляет 10 сек.
При Advertising interval больше 2-х секунд соединение с BLE устройством проблематично. 10 секунд -это предельное по спецификации BLE.
Т.е. не все устройства смогут соединиться если интервалы больше или меньше определенных. Особенно плохо с устройствами от Apple.

Примеры рекомендаций для устройств Apple:

Выбор подходящих параметров подключения для устройств Apple:
https://docs.silabs.com/bluetooth/l...table-connection-parameters-for-apple-devices

Рекомендации по дизайну аксессуаров для устройств Apple:
https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf

Запрос параметра подключения может быть отклонен, если он не соответствует всем этим правилам:
  • Периферийная задержка ≤30
  • 2 секунды ≤ connSupervisionTimeout ≤ 6 секунд
  • Интервал Мин. По модулю 15 мс == 0
  • Интервал Мин. ≥15 мс
  • Одно из следующих:
    • Мин. Интервал + 15 мс ≤ Макс. Интервал
    • Мин. Интервал == Макс. Интервал == 15 мс
  • Максимальный интервал * (Периферийная задержка + 1) ≤ 2 секунды
  • Максимальный интервал * (Периферийная задержка + 1) * 3 <connSupervisionTimeout
-------
Для самых малопотребляющих - Маяков, обычно устанавливают Advertising interval до 3-х секунд. Иначе тоже беда с приемом инфы с них в режиме Advertising на Андроид.

Какие настройки в этом режиме позволят максимально снизить потребление устройства.
Кастомная прошивка уже настроена на минимально-оптимальные значения.
После подключения наблюдаю такие показания при установке пролежавших 10 лет CR2032: при подключении было 30%, через неделю 67%, ещё через неделю 69%. При подключении напряжение составляло около 2-х вольт, а ныне ползет к 3В. Это по показаниям прошивки и тестера. Таких элементов у меня много :)
Средний ток измерен с точностью 10% (т.к. возможны разные условия, включая напряжения у элемента) и составляет описанные на git цифры.
Пока я вижу динамику - 20% заряда батареи в неделю.
Это у официальной прошивки и при постоянном соединении с кривым ПО, которое не умеет работать с BLE - принудительно устанавливает короткий cотnection interval и latency в 0.
Это относится, к примеру, к https://play.google.com/store/apps/details?id=com.smrtprjcts.mijiabt
Доп. примеры измерений потребления у оригиналов от Xiaomi (для аналога MHO-C401) даны в https://pvvx.github.io/MHO_C401/power_original.html
Для XiaomiLYWSD03MMC описаны на данном форуме...
Потребление считается просто - делите емкость в мА*ч на среднее потребление и получаете часы работы.
А я пока жду не дождусь альтернативных измерений...
 

pvvx

Активный участник сообщества
Пример замера потребления с нерадивым ПО:
Это касается и многого древнего дешевого оборудования, особенно на чипах с BT4.0, которого ещё масса на руках.
Запрещать такое безобразие в своей прошивке я стал, т.к. у многих, имеющих древнее и дешевое оборудование, не будет соединяться вообще.
 

Mics78

New member
При Advertising interval больше 2-х секунд соединение с BLE устройством проблематично. 10 секунд -это предельное по спецификации BLE.
Т.е. не все устройства смогут соединиться если интервалы больше или меньше определенных. Особенно плохо с устройствами от Apple.
...
Кастомная прошивка уже настроена на минимально-оптимальные значения.
Спасибо. Исчерпывающий ответ. Я принимаю даные от градусников данные ESP32, интервал 10 секунд отрабатывается нормально. Оставлю пока так.
 

pvvx

Активный участник сообщества
О - сегодня windows 10 показывает 80% на CR2032 которому более 10 лет и начальное напряжение при установке было около 2-х вольт :)
1611256738618.png
Врет и не краснеет. :)
ПО кажет Vbat: 2748 mV. А когда устройство было на улице в -12С, то было и менее 2.6V. Максимально на данной батарейке доходило до 2.9В в первую неделю после установки и при +25С.
Батарейки CR2032 всегда живут своей жизнью при импульсном потреблении в BLE...
 

pvvx

Активный участник сообщества
Свежий элемент CR2032 имеет напряжение более 3.3В, а на нем писано 3В. Как это понимать?
А измерение напряжения элемента в устройстве всегда производится после основного импульса тока передачи и указывает напряжение под нагрузкой (в момент замера не менее 6 мА)...
 

Lifekeeper

New member
Я собирал прошивку с Apple HomeKit на эти коробочки - работает и потребление тоже возможно уложить в 1 год работы - полученное среднее тестовое потребление около 30 мкА. На сайте Telink есть SDK для всех вариантов устройств Apple HomeKit с реализацией на BLE. Выходит достаточно усложненная версия с громадным размером прошивки. Но т.к. я не сторонник (не любитель) Apple, то у меня нет и не будет возможностей полноценных тестов на огрызках.
Так-же на чипе в данной коробочке работает и модифицированный Zigbee SDK от Telink, но и его нет смысла использовать, т.к. обычному пользователю данный протокол некуда включить, кроме как на ощупь со специальными и ещё и специфичными шлюзами. Именно по этому Zigbee мертв в среде DIY.
У Telink есть и SDK с Zigbee + BLE (одновременно) к данному чипу, но там повышенная жручка, т.к. всё дублируется в RF и имеет доступ и по BLE и Zigbee (ближе к Mesh).
можно попросить прошивочку под homekit если конечно не удалили, хотел спросить на счет zigbee вы говорите что можно на этом датчике завести я правильно понял?
 

pvvx

Активный участник сообщества
Здесь
Скачиваете
HomeKitTLSR8258SDK V3.15.1
Там-же и tl_zigbee_sdk и tl_zigbee_ble_concurrent_sdk.
Берете какой пример за основу и меняете параметры периодов маяка и прочих интервалов (увеличиваете) для уменьшения потребления.
Убираете ненужные опросы клавиатуры и засыпания/просыпания.
Заливаете в чип и анализируете - хватит ли вам питания.
А потом уже вставляете процедуры вывода на LCD и опрос датчика из исходников ATC_Thermometr.
 

pvvx

Активный участник сообщества
ZigBee и Apple Homekit отличаются размером прошивки и объемом используемой SRAM. А официально Telink заявлено, что TLSR8251/8252 имеет меньше SRAM, чего не наблюдается в текущих поставках чипов, а различие от TLSR8258 пока только в корпусе чипа и кол-ве выведенных ножек. Возможно потом Telink сделает урезанную версию...
Но главное тут в том, что пока не видел устройств с CR2032 работающих на этих дурных протоколах. Как минимум 2 AAA.
Вариант с MESH ещё потянет от CR2032, а ZigBee и Apple Homekit - фигу. На ZigBee работают только кнопки, пробуждаемые раз в году...
 

pvvx

Активный участник сообщества
С Apple BT/BLE вообще всё плохо. Устройства Apple – это худшие из представителей устройств с BLE. Там неясно почему всё урезано до предела, типа Apple экономит на всем, на чипах и даже на встраивании в систему нормальной поддержки BLE. Видимо ставит только древние чипы с BT4.0 и нет бабла на разработку из-за жадности и конкуренции… А BLE они считают ненужным для своих фанатов-пользователей… Разработали (застолбили) никчемный навороченный HomeKit, от которого нет никакого толку для малых датчиков...
 

nikolz

Well-known member
впечатление такое, что все эти протоколы в том числе и BLE - это мертворожденные монстры и написали их программисты,
которые придумывают ну очень универсальную систему для выгрузки бабла из клиентов.
Часть протоколов уже пережили то железо на котором они что-то давали другая часть так и не дождалась своего железа.
 

pvvx

Активный участник сообщества
впечатление такое, что все эти протоколы в том числе и BLE - это мертворожденные монстры и написали их программисты,
которые придумывают ну очень универсальную систему для выгрузки бабла из клиентов.
Часть протоколов уже пережили то железо на котором они что-то давали другая часть так и не дождалась своего железа.
Неа - BLE пока живее всех живых. Наляпают ещё какую модификацию MESH и будет всё нормально.
У большинства пользователей Андроид, а он уже более менее адаптирован на работу с BLE, но не с проприетарщиной типа ZigBee или чего-то от Огрызка.
ZigBee - это протокол созданный для несовместимости устройств - чтобы вы не могли подключить устройство от другого производителя.
Об Apple вообще разговор не идет, т.к. там всё запущено и чтобы догнать текущие потребности в BLE или типа потребуются годы. Профукали и фиг с ними.
 

pvvx

Активный участник сообщества
Для тех кто хочет сделать что-то своё или просто заняться творчеством - Apple не имеет и не дает таких возможностей. Обратное - да, т.к. всё сИкретно и основа - полная несовместимость ни с чем, кроме единичного купленного у них товара с поддержкой на пару месяцев...
 
Сверху Снизу