• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

pvvx

Активный участник сообщества
А вот результаты измерений температуры и влажности - мягко говоря не очень приятные. Привожу картинку температуры за пять дней. Верхний график - измерения на термисторе 1%, средний ds18s20, нижний - xiaomi с версией 4.2.
Не нравиться шум? Но он есть всегда на нормальных датчиках. И чем дороже и качественнее датчик, тем больше бывает шума. Это давно известно, т.к. сказывается время реакции на изменение температуры.
Также движение объектов дает разный фон ИФК и график волосатится...
 

pvvx

Активный участник сообщества
И в LYWSD03MMC разных версий разные датчики. У имеющих SHT4x скорость изменения меньше. Графики более пологие. У SHTV3 более резкие. Возможно это связано с монтажом - больший кусок-массив платы и разные "дыдочки" в корпусе. А может кристалл и компоненты корпуса другие...
 

pvvx

Активный участник сообщества
Да, могу сообщить и подтвердить, что со свежим дебианом orange Pi 3 Lts и orange Pi zero 2 - long range работает со штатным чипом и штатной внешней антенной без всяких нареканий. Китайцы исправили это сравнительно недавно, предыдущая сборка этого не умела.
Сменили прошивку (загружаемый fw) чипа?
Так же могу сообщить, что вот такой адаптер с внешней антенной
100% работает Long Range на Orange Pi 5 на свежем Armbian.
Дык это Realtek RTL8761BUV. Они все давно имеют загружаемый fw с 5.1 во всех OS.

Тупенькое прикидочное решение вопроса - что будет меньше жрать 1M Legacy vs LE Long Range:
Для достижения одинакового расстояния связи при кодировке без восстановления (1M) и с кодами восстановления (LE Long Range) требуется увеличить RF TX на 7дБм. Но это невозможно на CR2032.

Тут ещё нашелся прикол в статьях сравнения дальности разных типов связи и кол-ва устройств на 2019:
1679181273893.png
 

pvvx

Активный участник сообщества
И по поводу - со свежим дебианом orange Pi 3 Lts и orange Pi zero 2 - long range - оно смогло соединиться c устройством в утилитах bluez?
Мне пока не удалось на самом последнем собранном bluez.
btmon пишет про какие-то ошибки...
Android соединяется в лет. Даже в Chrome. В v4.2 реализована новая функция кнопки/контакта/геркона с названием "connect". При коротком нажатии/замыкании термометр переходит на передачу рекламы в Legecy варианте на 80 сек. Это дает в убожестве Chrome в Android и Windows появиться термометру в списке подключения. А далее уже пофигу на каком PHY будет работать термометр - он подключиться в Android.
Но в Windows - фигу, если время трансляции в Legacy вышло (или кнопку нажали более 1.75 сек) хотя мелкомягкие заявляют, что BT5.1 у них работает :unsure:
 

pvvx

Активный участник сообщества
Наверно WEB Bluetooth API в Chrome для Windows совсем ещё кривое....
 

sL0n1k

Member
Сменили прошивку (загружаемый fw) чипа?
Не могу точно сказать, но возможно.
Кстати, сборка Android 12 для OrangePi zero 2 Long Rage не поддерживает, нордик NRF пишет, что чип не поддерживает Long Range.
А вот debian поддерживает. Вот и думайте теперь. Правда, после запуска debian, где Long Range работает, я больше Android-а на OPI zero 2 не запускал. Следуя логике, если они обновили fw модуля, то теперь Android должен увидеть Long Range фитчи. Можно проверить, конечно.

Интересно, что OPI 3 lts работает Long Range без опции --experimental в конфиге, zero 2 - без этой опции не работает.
И там и там bluez 5.55 из коробки.
Последний bluez (5.62 вроде) собирал на Opi 5, так же работает.

По поводу реалтека могу сообщить, что не все донглы на вышеуказанном чипе от реалтека будут работать, причем далеко не все.
К примеру, свистоки от TP Link на этом же чипе - не работают в Long Range, короче - это еще тот квест)
 

sL0n1k

Member
И по поводу - со свежим дебианом orange Pi 3 Lts и orange Pi zero 2 - long range - оно смогло соединиться c устройством в утилитах bluez?
Точнее так: если вам нужно устанавливать соединение и вычитывать характеристики (например gatttool-ом), то на редкой рекламе от устройства ( насколько я помню реже 2 секунд) это сделать не получится (скорее всего). Если вам нужно соединяться из под линуха с устройствами с редкой рекламой, то придется пересобрать ядро (скорее всего).
 

sL0n1k

Member
Не нравиться шум? Но он есть всегда на нормальных датчиках. И чем дороже и качественнее датчик, тем больше бывает шума. Это давно известно, т.к. сказывается время реакции на изменение температуры.
Также движение объектов дает разный фон ИФК и график волосатится...
Учитывая, что пачка термисторов 1000 штук стоит 100 рублей, а один SHT-датчик стоит как крыло от самолета, даже у китайцев, могу с уверенностью сказать: да, мне это не нравится)).
Если учесть, что это наблюдается при измерении температуры, даже не влажности, да еще учесть, что i2c это совсем не one wire, могу еще более уверенно сказать: то что мы видим - это крайне плохой датчик. Хотя, возможно, это спец. датчик для xiaomi))
 

pvvx

Активный участник сообщества
Откуда скачать тот загружаемый fw?
И подобные. Где-то есть полный пакет на все от Realtek...
Я брал от Windows, но это было давно. А ныне они в Linux-ы пакетом ставятся...
И как его залить на донгл?
В исходниках есть. Оно в RAM грузится. Смотрел, но не уточнял что там и как... Само же работает.
 

pvvx

Активный участник сообщества
Учитывая, что пачка термисторов 1000 штук стоит 100 рублей, а один SHT-датчик стоит как крыло от самолета, даже у китайцев, могу с уверенностью сказать: да, мне это не нравится)).
Если учесть, что это наблюдается при измерении температуры, даже не влажности, да еще учесть, что i2c это совсем не one wire, могу еще более уверенно сказать: то что мы видим - это крайне плохой датчик. Хотя, возможно, это спец. датчик для xiaomi))
Отличие в том, что у вас точки снятия температуры с ваших датчиков идут через большой интервал и оцифровка разрядностью ниже. Подключите 24-х битный ADC к вашему датчику с отсчетом через 10 мс и всё будет волосатое :p
 

pvvx

Активный участник сообщества
Время замера (потребления до 0.5 мА) у SHTxx 6..11 мс 16 бит. У DS18B20 - 750 мс с до 1.5 мА (самопрогрев до +2.5С). Резистивного датчика с самопрогревом - это как там у вас организовано.
Далее передача - у ваших датчиков по графикам 1 число после запятой, у сравниваемых - 2.
И учитывая выборку в несколько мс за десяток секунд - безусловно будет волосатый график, если не округлять пачкой.
Даже если это шум от отсутствующих конденсаторов в питании у вашего термометра, то он не выходит за паспортные данные, в отличии от DS18B20 .
 

pvvx

Активный участник сообщества
Точнее так: если вам нужно устанавливать соединение и вычитывать характеристики (например gatttool-ом), то на редкой рекламе от устройства ( насколько я помню реже 2 секунд) это сделать не получится (скорее всего). Если вам нужно соединяться из под линуха с устройствами с редкой рекламой, то придется пересобрать ядро (скорее всего).
Это исправили во многих релизах, но не во всех.
Вот в Windows всё зависит от адаптера. Но неспособных работать с менее чем на интервал в 7 сек я не нашел. Тупят дольше, но схватывают. RTL один из кучки худших при длинных интервалах. A10 берет и более 10 сек.
Имеющиеся смартфоны - им всё равно и берут стандартные ограничения в 10 сек все и с первого-второго приемного рекламного события
 

pvvx

Активный участник сообщества
В текущей прошивке от v4.2 это всё уже в прошлом - есть кнопка для соединения в Legacy с интервалами 1 сек.
Время гонять аборигенов в Linux по этому поводу вышло. Народ у же осведомлен о безграмотности подписальщиков патчей по данному поводу и большая часть исправлена или находится под гнетом исправления.
В LYWSD03MMC впаяйте геркон и будет такая кнопка тоже :)
 

pvvx

Активный участник сообщества
Если руки-ноги дойдут, то в следующих версиях я перехожу на террор с BT5.2-5.3. Есть новый SDK от Telink, поддерживающий это.
Будет введена периодическая реклама (она ещё из 5.0) и прочие фишки. Уверен, что bluez ничего этого не поддерживает.
Android пишет что всё это есть.
 

pvvx

Активный участник сообщества
Кстати, сборка Android 12 для OrangePi zero 2 Long Rage не поддерживает, нордик NRF пишет, что чип не поддерживает Long Range.
Какой NRF и где пишет?
У самих чипов nRF есть проблемы с его softdevice.
Есть такая тема - ответ сканирования и само тело рекламного события. Вот там что-то не так у nRF, судя по вопросам и ответам их разработчиков...
А это ещё BT4.x

----


Тупая программа с рекламой для проверки есть ли в смарте BT5.0 - "Fast Bluetooth 5.0 Checker"
В ней вроде есть список поддерживаемых BT5.0 смартов...
 

sL0n1k

Member
Какой NRF и где пишет?
У самих чипов nRF есть проблемы с его softdevice.
Есть такая тема - ответ сканирования и само тело рекламного события. Вот там что-то не так у nRF, судя по вопросам и ответам их разработчиков...
А это ещё BT4.x

----


Тупая программа с рекламой для проверки есть ли в смарте BT5.0 - "Fast Bluetooth 5.0 Checker"
В ней вроде есть список поддерживаемых BT5.0 смартов...
Nrf коннект установленный на opi zero 2 android пишет, что чип на zero2 не умеет long range, а на самом деле под дебианом умеет. Так что nrf дальше своего носа ничего не видит, как оказалось))
 

pvvx

Активный участник сообщества
Nrf коннект установленный на opi zero 2 android пишет, что чип на zero2 не умеет long range, а на самом деле под дебианом умеет. Так что nrf дальше своего носа ничего не видит, как оказалось))
Почему - они, nRF, стараются, но китайцы уже перегнали :unsure:
Уже давненько налево и на право продают устройства с BT5.+ и им пофиг. Пользователям, у которых не работает, рекомендуют искать правильный смарт :)
 

pvvx

Активный участник сообщества
Есть ещё нюансы с чипсетами 5.0 - у некоторых мал физический размер буфера RF. Есть куча смартов с менее 1560 байтным буфером RF. А это стандарт от SIG на размер пакета.
Но на всякий случай предусмотрена и передача частями (типа по 256). Наверно для таких обрубков.
Инфо в nRFConnect это показывает.
Пора вводить передачу сообщений для MQTT в рекламе :)
 
Сверху Снизу