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

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

pvvx

Активный участник сообщества
С Новым Годом, трех двоек!
Поэтому есть вариант бурения на километры вглубь, а не на 70метров с тепловым насосом.
Каждому на участок по Кольской буровой! :)
У большинства уже через пару месяцев межсезонные сдвиги сломают все трубы... :p
 

shadows

New member
Недавно брал ещё USB-BT с али.
Из новых, которых у меня не было ранее - вот эти пашут нормально:
Посмотреть вложение 11200~250 руб
приобрел такой не давно, из коробки не захотел работать в armbian на orangepi zero, пришлось пересобрать ядро до 5.15.11.
Есть 7 термометров расстояние до них не больше 4м, наблюдается такая картина приема с aioblescan
Python:
Temperature info {'mac address': 'holodilnik___', 'time': '01:03:08', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.788, 'counter': 87, 'rssi': -80}
Temperature info {'mac address': 'spalnya______', 'time': '01:03:09', 'temperature': 23.7, 'humidity': 61, 'battery': 95, 'battery_volts': 3.06, 'counter': 211, 'rssi': -82}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:03:10', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.243, 'counter': 130, 'rssi': -72}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:03:10', 'temperature': 28.6, 'humidity': 39, 'battery': 100, 'battery_volts': 3.237, 'counter': 215, 'rssi': -80}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:03:13', 'temperature': 28.6, 'humidity': 39, 'battery': 100, 'battery_volts': 3.239, 'counter': 216, 'rssi': -80}
Temperature info {'mac address': 'holodilnik___', 'time': '01:03:13', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.788, 'counter': 88, 'rssi': -82}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:03:15', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.243, 'counter': 130, 'rssi': -80}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:03:21', 'temperature': 28.7, 'humidity': 38, 'battery': 100, 'battery_volts': 3.2, 'counter': 111, 'rssi': -80}
Temperature info {'mac address': 'toilet_______', 'time': '01:03:28', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.006, 'counter': 175, 'rssi': -78}
Temperature info {'mac address': 'toilet_______', 'time': '01:03:30', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.006, 'counter': 175, 'rssi': -88}
Temperature info {'mac address': 'holodilnik___', 'time': '01:03:31', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.788, 'counter': 89, 'rssi': -82}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:03:32', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.243, 'counter': 132, 'rssi': -74}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:03:33', 'temperature': 28.6, 'humidity': 39, 'battery': 100, 'battery_volts': 3.237, 'counter': 218, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:03:35', 'temperature': 28.6, 'humidity': 39, 'battery': 100, 'battery_volts': 3.237, 'counter': 218, 'rssi': -78}
Temperature info {'mac address': 'holodilnik___', 'time': '01:03:36', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.788, 'counter': 90, 'rssi': -80}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:03:36', 'temperature': 28.7, 'humidity': 38, 'battery': 100, 'battery_volts': 3.199, 'counter': 113, 'rssi': -80}
Temperature info {'mac address': 'spalnya______', 'time': '01:03:37', 'temperature': 23.7, 'humidity': 61, 'battery': 95, 'battery_volts': 3.059, 'counter': 214, 'rssi': -76}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:03:37', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.25, 'counter': 182, 'rssi': -78}
Temperature info {'mac address': 'holodilnik___', 'time': '01:03:38', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.788, 'counter': 90, 'rssi': -94}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:03:39', 'temperature': 28.7, 'humidity': 38, 'battery': 100, 'battery_volts': 3.199, 'counter': 113, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:03:42', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.241, 'counter': 133, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:03:43', 'temperature': 28.7, 'humidity': 39, 'battery': 100, 'battery_volts': 3.239, 'counter': 219, 'rssi': -78}
Temperature info {'mac address': 'toilet_______', 'time': '01:03:43', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.007, 'counter': 177, 'rssi': -80}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:03:44', 'temperature': 28.8, 'humidity': 38, 'battery': 100, 'battery_volts': 3.196, 'counter': 114, 'rssi': -88}
Temperature info {'mac address': 'spalnya______', 'time': '01:03:47', 'temperature': 23.8, 'humidity': 61, 'battery': 95, 'battery_volts': 3.059, 'counter': 215, 'rssi': -76}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:03:48', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.25, 'counter': 183, 'rssi': -84}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:03:50', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.25, 'counter': 183, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:03:55', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.24, 'counter': 134, 'rssi': -96}
Temperature info {'mac address': 'spalnya______', 'time': '01:04:02', 'temperature': 23.8, 'humidity': 61, 'battery': 95, 'battery_volts': 3.058, 'counter': 216, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:04:03', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.24, 'counter': 135, 'rssi': -78}
Temperature info {'mac address': 'vanna_200cm_l', 'time': '01:04:05', 'temperature': 29.9, 'humidity': 37, 'battery': 100, 'battery_volts': 3.24, 'counter': 135, 'rssi': -78}
Temperature info {'mac address': 'holodilnik___', 'time': '01:04:06', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.787, 'counter': 93, 'rssi': -96}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:04:08', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.251, 'counter': 185, 'rssi': -74}
Temperature info {'mac address': 'holodilnik___', 'time': '01:04:08', 'temperature': 23.4, 'humidity': 61, 'battery': 65, 'battery_volts': 2.787, 'counter': 93, 'rssi': -96}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:04:12', 'temperature': 28.7, 'humidity': 38, 'battery': 100, 'battery_volts': 3.198, 'counter': 116, 'rssi': -88}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:04:17', 'temperature': 28.8, 'humidity': 38, 'battery': 100, 'battery_volts': 3.196, 'counter': 117, 'rssi': -88}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:04:18', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.252, 'counter': 186, 'rssi': -74}
Temperature info {'mac address': 'vanna_200cm_r', 'time': '01:04:18', 'temperature': 28.7, 'humidity': 39, 'battery': 100, 'battery_volts': 3.239, 'counter': 222, 'rssi': -80}
Temperature info {'mac address': 'vanna_150cm__', 'time': '01:04:19', 'temperature': 28.8, 'humidity': 38, 'battery': 100, 'battery_volts': 3.196, 'counter': 117, 'rssi': -78}
Temperature info {'mac address': 'toilet_______', 'time': '01:04:21', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.006, 'counter': 180, 'rssi': -88}
Temperature info {'mac address': 'vanna_60cm___', 'time': '01:04:23', 'temperature': 32.9, 'humidity': 32, 'battery': 100, 'battery_volts': 3.252, 'counter': 186, 'rssi': -80}
Temperature info {'mac address': 'toilet_______', 'time': '01:04:26', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.007, 'counter': 181, 'rssi': -80}
Temperature info {'mac address': 'toilet_______', 'time': '01:04:28', 'temperature': 26.5, 'humidity': 61, 'battery': 89, 'battery_volts': 3.007, 'counter': 181, 'rssi': -80}
на вид многовато вроде как пропусков измерении... или нормально? проблема с драйверами? кривой aioblescan? или надо внешний приемник делать для более стабильного приема?
 

pvvx

Активный участник сообщества
приобрел такой не давно, из коробки не захотел работать в armbian на orangepi zero, пришлось пересобрать ядро до 5.15.11.
Есть 7 термометров расстояние до них не больше 4м, наблюдается такая картина приема с aioblescan
...
на вид многовато вроде как пропусков измерении... или нормально? проблема с драйверами? кривой aioblescan? или надо внешний приемник делать для более стабильного приема?
При настройках по умолчанию термометр Xiaomi LYWSD03MMC меняет передаваемые данные раз в 10 секунд. За эти 10 секунд он передает одинаковые данные 4-ре раза с одинаковым счетчиком 'counter' для уверенного стороннего приема.
CGG1 и прочие, с E-Inc, т.к. эти экраны потребляют значительно больше вопреки уверениям рекламщиков, меняет передаваемые данные реже и реже опрашивает датчик чтобы не менять отображение.
Принимающие программы отбрасывают идентичные данные...
На кол-ве приема сказывается производительность обрабатывающего ПО (скриптов), установок драйвера, качества ПО самого адаптера, т.к. это всё в комплексе может не успевать обрабатывать все принятые данные из радио эфира...
 

pvvx

Активный участник сообщества
Вот тестовый HA c
1641258345200.png
на примерно таком BT5.0 адаптере NanoPi Neo Core2 с мамкой для SSD и т.д.
На вид выпадений нет, но и данные интеграция собирает усредненные за 1 минуту.
1641258326498.png
Плата отслеживает ещё пару десятков других устройств.
Нагрузка:
1641258797361.png
И в таком кол-ве HA пишет на диск (счет с рестарта OS):
1641258956472.png
Ступени - это перезаписи текущей полной базы у него по расписанию. Т.е. несколько Гигабайт в сутки при недавно начатой заново базе...
 

pvvx

Активный участник сообщества
@shadows C ESPHome на разных платках c ESP32 было всё значительно хуже уже при 4-х датчиках и замучался... Но это было пол года назад - может что поправили с BT дровами у ESP32 (распределили обработку на ядра и сделали правильное постоянное сканирование)?
Лучше всего принимает аппаратный сниффер - там выпадений до 7% при окружении к сотне BLE/WiFi/ZigBee устройств...
 

pvvx

Активный участник сообщества
Если тупо взять первую попавшуюся выборку 1 секунды со сниффера nRF825xx в радиоэфире на рекламных каналах в Wireshark, в пригороде, в мастерской, вокруг на сотни метров нет более ничего, а на пол-километре пара домов :)
1641261135236.png
То видим, что рекламки идут в среднем с паузами в 200 us...
 

gorec2005

Member
Заказал 10шт LYWSD03MMC - а они пришли hw ver 2.0 :-( - внешне изменился драйвер ЖК... :-(
готов замучить девайс на предмет подпаивания / прошивке / экспериментов...... подскажите в какую сторону двигаться...
 

Вложения

gorec2005

Member
прошил в термометр прошивку 35a - вроде все работает...
и, интересно - признал другую версию HW
21:53:02: Hardware Revision String: B1.7
21:53:02: Detected custom Firmware
21:53:03: Hardware Version: LYWSD03MMC B1.7, Software Version: 3.5, Sensor: SHT4x
 

pvvx

Активный участник сообщества
прошил в термометр прошивку 35a - вроде все работает...
и, интересно - признал другую версию HW
21:53:02: Hardware Revision String: B1.7
21:53:02: Detected custom Firmware
21:53:03: Hardware Version: LYWSD03MMC B1.7, Software Version: 3.5, Sensor: SHT4x
C HW B2.0 только один вопрос - аппаратного определения что это версия 2.0, а не 1.7.
Запись в flash от оригинальной прошивки строки "B2.0" не устраивает, т.к. в процессе может быть стерта вся flash.
 

gorec2005

Member
C HW B2.0 только один вопрос - аппаратного определения что это версия 2.0, а не 1.7.
не уверен, что после стирания всего flash это будет возможно...
но после перепрошивки - он работает ок, и в дальнейшем определяется уже как 1.7 (подозреваю из-за "sensor SHT4x or ?" - из исходников...)
но, в общем-то пофиг... оно работает нормально! и сенсор посвежее :)
 

pvvx

Активный участник сообщества
не уверен, что после стирания всего flash это будет возможно...
но после перепрошивки - он работает ок, и в дальнейшем определяется уже как 1.7 (подозреваю из-за "sensor SHT4x or ?" - из исходников...)
но, в общем-то пофиг... оно работает нормально! и сенсор посвежее :)
Авто-определение версии строится на вариантах микросхемы датчика и дисплея. Комбинация их вариантов и дает B1.7.
У B1.7 вроде другой вид чипа контроллера дисплея, а у 2.0 видимо кристалл чипа поставили на плату, но у меня нет B1.7 и B2.0 для точного сравнения.
 

gorec2005

Member
а у 2.0 видимо кристалл чипа поставили на плату,
скорее всего - просто капля... тем более, что на контроллер дисплея у 1.7 pdf-а не нашлось - т.е. он какой-то заказной...
поработает день-два напишу результат... в интернете не нашел ничего про HW v2.0... если все будет ок - можно на гит добавить, что 2.0 достаточно просто перешить первый раз и потом он становится 1.7...
 

pvvx

Активный участник сообщества
в интернете не нашел ничего про HW v2.0... если все будет ок - можно на гит добавить, что 2.0 достаточно просто перешить первый раз и потом он становится 1.7...
 

pvvx

Активный участник сообщества
@gorec2005 Для датчиков STH4x, если не учитывать задержку показаний, то для снижения потребления лучше установить флаг <Датчик в «режиме пониженного энергопотребления»>:
1641672480059.png
Показания будут запаздывать на 2.5 сек, но общее потребление снизится, т.к. процессор не будет ожидать паузу измерения и дополнительно просыпаться только для считывания данных с датчика, а просто считает данные в следующий цикл просыпания для передачи в RF рекламы.
 

pvvx

Активный участник сообщества
Надо как-то разобраться, зачем испортили BLE в Linux:
Это приводит к тому, что если установлен PIN код, то Linux не соединяется с устройством Bluetooch LE, т.к. интервал рекламы устройства 2.5 сек (а некоторые ставят и более).
В спецификации для BLE указан максимальный advertising interval в 10 сек, а рекомендуемое ожидание соединения в 20 сек.
И не понятно, зачем Johan Hedberg и Marcel Holtmann испортили Linux?
 

pvvx

Активный участник сообщества
Уточнено - понаехавшие Ардуинщики в Linux убили его в kernel для всех Bluetooch LE.
Пока держится только Android и Windows.
 

gorec2005

Member
@gorec2005 Для датчиков STH4x, если не учитывать задержку показаний, то для снижения потребления лучше установить флаг <Датчик в «режиме пониженного энергопотребления»>:
1641672480059.png

Показания будут запаздывать на 2.5 сек, но общее потребление снизится, т.к. процессор не будет ожидать паузу измерения и дополнительно просыпаться только для считывания данных с датчика, а просто считает данные в следующий цикл просыпания для передачи в RF рекламы.
а для SHTC3 это справедливо? или там алгоритм работы с датчиком другой?
 

gorec2005

Member
и еще вопрос:
если RF TX Power установить в максимум 3.01dbm то дальность увеличится (на сколько? нет примерных, хотя бы, данных?) и потребление увеличится в (около 100) раз?
 

pvvx

Активный участник сообщества
а для SHTC3 это справедливо? или там алгоритм работы с датчиком другой?
Другой. Там он переводится в режим низкого разрешения и экономия минимальна, точнее не стоит того, как падает точность.
и еще вопрос:
если RF TX Power установить в максимум 3.01dbm то дальность увеличится (на сколько? нет примерных, хотя бы, данных?) и потребление увеличится в (около 100) раз?
Максимум у TLSR825x +10 Дб, но такой ток батарейка CR2032 не тянет и при установке выйдет реальная мощность меньше, чем 0 Дб. Переключается питание RF части и ток RF больше...
Для включения повышенной отдачи - скачать TelinkMiFlasher.html, в нем найти const MAX_RF_TX_Power = false; и поменять на = true - будет меню до +10 Дб.
И примотать батарейку :)

А +3.01 Дб сильно не помогут, т.к. та-же проблема - хилый источник.
 

pvvx

Активный участник сообщества
SHTC3 на время измерения выводится командой из спящего режима, потом другой командой запускается измерение, далее ожидание измерения, MCU уходит спать на 10 мс и просыпается для считывание измерения с датчика, затем команду датчику обратно в сон. Иначе датчик жрет просто так...
SHT4x всегда сам спит, и его не надо пробуждать и загонять обратно в сон для малого потребления. На команду измерения он сам пробуждается, измеряет и засыпает (но значения измерения сохраняет и они доступны в любой момент).
 
Сверху Снизу