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

pvvx

Активный участник сообщества
провел тестирование 4-х модулей по влажности (по госту).
Показания регистрировались через 4 часа.
В итоге разброс показаний составил +-2% влажности ( тестируемая влажность 75%. показания от 74% и до 77%)
На оригинальной прошивке значения влажности завышены в среднем на 5 %. Это уже статистика по разным опросам и писаниям в инет при сравнении с прямыми показаниями от датчика.
Тут и не ясно что вы там измеряли или вообще что-то измеряли?
 

pvvx

Активный участник сообщества
Оригинал от Xiaomi передает измерения раз в 10 минут (есть ещё зависимости от изменений показаний), а читает датчик каждый 4-й Advertising interval.
Advertising interval у него фиксирован - что-то около 1.7..1.8 сек.
Посылка значений осуществляется пачкой от десятка Advertising с коротким интервалом. В этот момент он жрет значительно больше.
В режиме Connect оригинал не перестраивает интервалы сonnection и потребление зависит от опрашивающего устройства и может в среднем достигать и 3 мА.
Тем более при соединении и Advertising у оригинала используется шифрование, на что проц плохо приспособлен и жрет немерянно по времени обработки процедур шифрации и дешифрации.
Так-же фирменное ПО и шлюзы от Xiaomi периодически соединяются с устройством и что-то там принимают-передают, что сильно сокращает время жизни батарейки.
 

pvvx

Активный участник сообщества
Вопросы и поведение оригинального ПО от Xiaomi сильно не изучал, но прикидочно - батарейки с ним не хватит и на 1 год.
 

pvvx

Активный участник сообщества
Несколько ссылок по чтению данных с термометров Xiaomi и/или custom прошивке.
Xiaomi LYWSD03MMC passive sensor readout (ESPHome)
Xiaomi Mijia BLE MiBeacon Monitor
Вообще все ноги и последующий ажиотаж блогеров в Инет по этому устройству растут из кода для андроид приложения miaomiaoce.sensor_ht.t2.
Большего, чем там описано, никто и не сделал. Только портирование на питон или js или в код для ESP32. :)
 

pvvx

Активный участник сообщества
Т.е. никакого "хакерства" и не было, т.к. давно умерло.
 

pvvx

Активный участник сообщества
Для тех, кто хочет создать полностью совместимую с Mijia прошивку, Telink давно выложил SDK "mi_release_version_4_1_1" для TLSR825x/826x. Но ныне убрал, посему дублирую:
Требует библиотеку "libmijia_std_authen_eclipse_telink_1_0_1.a" от Xiaomi, получаемую по подписке:


Поддерживаемые чиповые решения
Mijia предоставляет демонстрационный проект со стандартным доступом, основанный на плате разработки.

Адрес демонстрационного проекта GitHub следующий: (следуйте документу README под каждой веткой, чтобы завершить импорт проекта)

Производитель чиповЧип-платформаДемонстрационный проект
Скандинавский51 серииhttps://github.com/MiEcosystem/mijia_ble_standard/tree/nordic_legacy
Скандинавский52 серииhttps://github.com/MiEcosystem/mijia_ble_standard/tree/nordic
Силиконовые лабораторииBG13https://github.com/MiEcosystem/mijia_ble_standard/tree/silabs
TelinkTLSR825xhttps://github.com/MiEcosystem/mijia_ble_standard/tree/telink
RealtekRTL8752x / RTL8762xhttps://github.com/MiEcosystem/mijia_ble_standard/tree/realtek
ДиалогDA145xxhttps://github.com/MiEcosystem/mijia_ble_standard/tree/Dialog
ДиалогDA146xxhttps://github.com/MiEcosystem/mijia_ble_standard/tree/da146xx
 

pvvx

Активный участник сообщества
Как итог: На сегодня все блогеры в инет и всякие "народные" IoT программы - это пиар ЭГЕ-шников, основанный на незнании и неумении разруливать информацию. Т.е. чистый обман и развод непосвящённых.
 

pvvx

Активный участник сообщества
Если раньше “сИкретики” хранили корпорации, то теперь это делают представители “народных сообществ” ради личного пиара. Пора уже их “хакать”. Всё течет и меняется, но каждому течению требуется альтернатива и противопоставление…
 

nikolz

Well-known member
В быту это никому не требуется. Тем более отклонения от абсолютных значений.
Вы ошибаетесь.
вот пара ну очень бытовых задач:
1) Инкубатор.
2) Самогонный аппарат.
В обоих случаях нужно как раз то, что я указал.
 

pvvx

Активный участник сообщества
Вы ошибаетесь.
вот пара ну очень бытовых задач:
1) Инкубатор.
2) Самогонный аппарат.
В обоих случаях нужно как раз то, что я указал.
Дык после калибровки точность температуры 0.1 С, влажности 0.1 % с не включенной опцией Sensor "Low Power". Сам сенсор дает влажность в 100/65536 % (дискрет 0.0015%)
Графики биений показаний приведены ранее https://esp8266.ru/forum/threads/tl...mc-xiaomi-bluetooth-termometr.5263/post-77079
Триггер на ножку GPIO работает c минимальным гистерезисом +- 0.1 от уставки... до +-12.5.
И что вы хотите от дешманской коробочки?
 

pvvx

Активный участник сообщества
nikolz - Жду не дождусь от вас ссылки на термометр с влажностью с абсолютными показаниями +-0.1 градус или %, который не требует калибровки (или поверки каждый год в спец. пунктах).
 

nikolz

Well-known member
Дык после калибровки точность температуры 0.1 С, влажности 0.1 % с не включенной опцией Sensor "Low Power". Сам сенсор дает влажность в 100/65536 % (дискрет 0.0015%)
Графики биений показаний приведены ранее https://esp8266.ru/forum/threads/tl...mc-xiaomi-bluetooth-termometr.5263/post-77079
Триггер на ножку GPIO работает c минимальным гистерезисом +- 0.1 от уставки... до +-12.5.
И что вы хотите от дешманской коробочки?
если Вы об этом графике
1609951927023.png
то размах ошибки составляет от 26.65 до 27.15 т е 0.5 гр С.
Непонятно, что именно на этом графике измеряется с точностью 0.1 гр.
 

nikolz

Well-known member
nikolz - Жду не дождусь от вас ссылки на термометр с влажностью с абсолютными показаниями +-0.1 градус или %, который не требует калибровки (или поверки каждый год в спец. пунктах).
А кто сказал что калибровка не нужна?
А вот спец пункт для этого не требуется.
Калибровку можно делать на своем столе, а не в спец пунктах.
Проблема в том, что большинство аля-кулибиных даже не задумываются об этом.
А с Вашей подачи (Сам сенсор дает влажность в 100/65536 % (дискрет 0.0015%) ) считают, что 0.0015% - это и есть точность.
------------
Прикольно было в прошлой жизни наблюдать как студенты на лабах по электротехнике считали по закону Ома требуемое сопротивление цепи
и радостно сообщали, что надо взять сопротивление в 10.450792345 Ом.
 

nikolz

Well-known member
Например надо поддерживать температуру в диапазоне 36.9 .. 37.2 гр С
А у датчика погрешность 0.1 гр С. при этом непонятно 0.1 гр - это что среднее, медиана?
Так как это случайная величина то какой доверительный интервал?
И естественно возникает вопрос: какую точность поддержания температуры в заданном диапазоне обеспечит такой датчик?
--------------
М, да...
 

pvvx

Активный участник сообщества
Например надо поддерживать температуру в диапазоне 36.9 .. 37.2 гр С
А у датчика погрешность 0.1 гр С. при этом непонятно 0.1 гр - это что среднее, медиана?
Никакой из обычных электронных датчиков температуры работающих по i2c не даст вам такой возможности. Они не для этого сделаны.
Те-же ИК датчики для замера температуры по роже не дают такой точности и стабильности замеров...
С чего вы тут заняты такими загибонами? Берете что аналоговое и лепите к нему АЦП в 24 бита с требуемой стабильностью Uref и вперед.
Сколько раз говорить - "проволочка" пока есть самый точный датчик.
 

nikolz

Well-known member
Никакой из обычных электронных датчиков температуры работающих по i2c не даст вам такой возможности. Они не для этого сделаны.
Те-же ИК датчики для замера температуры по роже не дают такой точности и стабильности замеров...
С чего вы тут заняты такими загибонами? Берете что аналоговое и лепите к нему АЦП в 24 бита с требуемой стабильностью Uref и вперед.
Сколько раз говорить - "проволочка" пока есть самый точный датчик.
как говорится - про АЦП в 24 бит и дураку понятно, понял - не дурак.
------------------
Прикольно то, что дураку очевидно не понятно,
что 0.3 гр от 36 гр это примерно 1%,
т е если измерять даже в 10 раз точнее,чем 1%( т е с точностью аж 0.03 гр),
то достаточно АЦП в 10 бит,
а этого аж в 4000 раз погрешность больше, чем та, что дураку понятна.
 

shadows

New member
С TLSR825x бяда - при выходе из deep-sleep он аппаратно дергает ногами в "0" и создает импульс, который не дает использовать режим готовности данных в I2C по растягиванию SCL и типа.
1. а че то там в СДК было вроде написано, что при выходе из deepsleep GPIO может инициализировать по макросам типа "PA5_DATA_OUT" не пробовали их конфигурить?
2. если мне нужно использовать UART для чтения статусов стороннего устройства, про deepsleep можно забыть?
3.а developer handbook для single connection вообще есть в доступе? telink его может высылать обычным людям?
4. вам попадались примеры для LONG RANGE?
 

pvvx

Активный участник сообщества
как говорится - про АЦП в 24 бит и дураку понятно, понял - не дурак.
------------------
Прикольно то, что дураку очевидно не понятно,
что 0.3 гр от 36 гр это примерно 1%,
т е если измерять даже в 10 раз точнее,чем 1%( т е с точностью аж 0.03 гр),
то достаточно АЦП в 10 бит,
а этого аж в 4000 раз погрешность больше, чем та, что дураку понятна.
Прикольно то, что у ADC младшие разряды всегда шумят, а общее окно измерения с учетом всяких смещений выбирается так-же больше и кол-во бит в представлении итогового числа ни о чем не говорит.
И 10 бит АЦП не хватит для разрешения 0.1%
 

pvvx

Активный участник сообщества
1. а че то там в СДК было вроде написано, что при выходе из deepsleep GPIO может инициализировать по макросам типа "PA5_DATA_OUT" не пробовали их конфигурить?
Это если вы сами вызываете процедуру инициализации всех GPIO void gpio_init(int anaRes_init_en).
Обычно, в примерах, она в main.c
2. если мне нужно использовать UART для чтения статусов стороннего устройства, про deepsleep можно забыть?
У UART есть ножка RX. Это такой-же GPIO и есть пробуждение по изменению состояния на GPIO.
3.а developer handbook для single connection вообще есть в доступе? telink его может высылать обычным людям?
Это вы у них спрашивайте. Я с ними не знаком и связей не вел.
Но большинство ссылок по чипу находится там
А тут про LYWSD03MMC XIAOMI Bluetooth термометр.
4. вам попадались примеры для LONG RANGE?
Всё есть в разнообразных SDK от Telink.
Но вот 'LONG RANGE' и прочая проприетарщина мне пока не нужна.
 

pvvx

Активный участник сообщества
3.а developer handbook для single connection вообще есть в доступе? telink его может высылать обычным людям?
На данном форуме есть такой nikolz - он ближе подбирался к Telink и даже выудил у китайцев задорого EVK для программирования... Только толку никакого.
Для любой инфы у Telink писано, что нужно подписать NDA. А если бы я это сделал - тогда бы никакой информации вы от меня не получили. :)
 
Сверху Снизу