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

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

volaltd

Member
предположу что у Вас сбивается программа измерения для AM2302. У него протокол на основе разной длительности High и low длительности 25 мкс 50 мкс и 70 мкс.
Ваша прога на ардуине вполне может тормозить при измерении разности интервалов.
У меня нет таких разбросов. Есть пять датчиков AM2302 и 4 датчика LYWSD03MMC .
Все тестировал на парах соли. Погрешность по влажности в пределах паспорта т е не более 4%.
Вот такая у меня ардуина на базе BluePill STM32F103, работает с 6-ю датчиками, по два на место измерения дабы видеть на сколько оно точно. Если загляните в исходники, то увидите что чтение сделано аппаратно таймерами, в режиме PWM Input, а вся последовательность пишется в память за счет DMA. Потяните такой полет мысли? :)
А кабы читали вы спеку, то знали бы что там есть CRC, которая не сойдется при ошибках обмена.
Я даже заморочился подать на них отдельно питание с линейного стабилизатора и обвесил каждую линию обмена защитными диодами.
IMG_20210503_100617.jpgIMG_20210503_100631.jpg
А вот смотрите что оно прямо сейчас выдает (слева среднее значение по показаниям, а по середине и справа данные с установленных практически рядом сенсоров):
sensors.jpg

И это еще я из 15шт отобрал те что более-мение правдоподобны.

В довершение как думаете на вот этой макетке с ESP32 и прошивкой EasyESP для чего три колодочки по 4-пина и рядом BME280? ;)
IMG_20210503_102210.jpg
 

Вложения

volaltd

Member
А где тот ваш описанный случай -40..+80С и пром. исполнение? В таком виде (корпусе) оно не лучше Xiaomi. Окислится от конденсата в парнике уже через месяц...
Мне бы сначала с DHT22 на BME280 с CAN переехать, а уже после буду строить парник. А то знаете, пока с одними датчиками выяснишь что не сам дурак, потом с другими выяснится что они только до 80% влажность меряют нормально, тут третьи в цене в 5 раз прибавят, а у четвертых выяснится что при полном доме IT-шников нужно быть очень умным чтобы их применить, то уже и на работу пора идти.

Мы ж с вами взрослые люди и знаем что лаком для ногтей все измазать кроме сенсора и вот она самая лучшая влагозащита :)

Чтобы из Xiaomi LYWSD03MMC сделать датчик протечки и влажности почвы, надо дописать пару кило кода и сделать самое сложное действие - припаять два провода на выходящие в отсек батареи контакты маркированные как GND и "reset" (это если нет отвертки открутить крышку и припаять толпу датчиков на все выводы платы...)
Аналогично и со всеми дверными/оконными контактами у Xiaomi.
Но это незя - цена таких датчиков выйдет в 3..4 раза дешевле и попортит продажи Xiaomi :)
Одно непонятно, для чего при этом использовать этот термометр, а не взять сразу какой из TB-03/04 ?
 

nikolz

Well-known member
Вот такая у меня ардуина на базе BluePill STM32F103, работает с 6-ю датчиками, по два на место измерения дабы видеть на сколько оно точно. Если загляните в исходники, то увидите что чтение сделано аппаратно таймерами, в режиме PWM Input, а вся последовательность пишется в память за счет DMA. Потяните такой полет мысли? :)
А кабы читали вы спеку, то знали бы что там есть CRC, которая не сойдется при ошибках обмена.
Я даже заморочился подать на них отдельно питание с линейного стабилизатора и обвесил каждую линию обмена защитными диодами.
Посмотреть вложение 11124Посмотреть вложение 11125
А вот смотрите что оно прямо сейчас выдает (слева среднее значение по показаниям, а по середине и справа данные с установленных практически рядом сенсоров):
Посмотреть вложение 11127

И это еще я из 15шт отобрал те что более-мение правдоподобны.

В довершение как думаете на вот этой макетке с ESP32 и прошивкой EasyESP для чего три колодочки по 4-пина и рядом BME280? ;)
Посмотреть вложение 11128
Вы написали: Два моих AM2303 поставленные рядом показывали влажность с что-то около 15% разницы,
И где разброс в 15% ?
-------------------
у меня все работает на ESP8266 еще датчик CO2 и управление 8 реле.
вот показания:
1620033674143.png
 

volaltd

Member
Вы написали: Два моих AM2303 поставленные рядом показывали влажность с что-то около 15% разницы,
И где разброс в 15% ?
-------------------
у меня все работает на ESP8266 еще датчик CO2 и управление 8 реле.
вот показания:
Данная система работает на AM2302 или DHT22, AM2303 серого цвета и стоят дороже, покупал на али две штуки ввиду надежды заменить на более правильные без переделки всего что уже сделано, но первый же тест показал разброс.

Специально для ваc:
IMG_20210503_125047.jpgIMG_20210503_125055.jpg

GPIO-21 - правый AM2303, GPIO22- средний AM2303, GPIO23 - левый AM2302, и сравните с BME280. si7021 кажись все распаял уже, не предоставлю для сравнения. Не 15%, но 10% видите?
 

volaltd

Member
Допускаю брак, подделку и т.д., но и при прайсе 10$ за экземпляр особо в лотерею играть не прикольно, особенно когда нужно 15-20 штук.

Ксяоми выглядит привлекательно, но тут нужно садиться и в очередной раз изучать новую экосистему Telink, закрывать дыру с обновлением кем угодно, вероятно менять или шифровать рекламные пакеты, и хез как строить прием ввиду того что в каждой окрестной квартире хорошо если по одному WiFi роутеру забивает 2.4ггц.

Попробую еще прием BLE на RPi, но пока остаюсь при своих BME280 и CAN :)
 

pvvx

Активный участник сообщества
Термометры перешил, да сразу влажность минусует 5%, а вот что любой кому не лень сосед может мне их перешить просто телефоном из браузера безовсяких напрягов - дырень еще та...
Custom прошивку с введенным pin-code сосед не прошьет, и bindkey не узнает чтобы расшифровать передаваемые данные с включенной опцией шифровки по mijia протоколу...
 

pvvx

Активный участник сообщества
Ксяоми выглядит привлекательно, но тут нужно садиться и в очередной раз изучать новую экосистему Telink, закрывать дыру с обновлением кем угодно, вероятно менять или шифровать рекламные пакеты, и хез как строить прием ввиду того что в каждой окрестной квартире хорошо если по одному WiFi роутеру забивает 2.4ггц.
За вас уже всё попробовали и изучили - в худшей что вы сможете найти обстановке с десяnками WiFi и прочим - процент сбитых пакетов около 7.
Для более качественного прима, что нафиг не нужно, вам следует соблюсти простые условия:
1. На пути сигнала между датчиком и приемником не ставить источников шума по всей ширине диапазона 2,4 ГГц значительно превышающих уровни сигналов датчика и приемника. WiFi с сотней антенн при смещении в сторону на пару метров от прямой траектории уже не помеха.
2. Не использовать то оборудование, что любят Ардуинщики и любители именно RPi. Там обычно используется самая худшая программная часть по части приема - будет громадное кол-во потерянных пакетов.
 

pvvx

Активный участник сообщества
Ксяоми выглядит привлекательно, но тут нужно садиться и в очередной раз изучать новую экосистему Telink
Не изучайте - изучите ESP32 и почините ему драйвер BLE, чтобы не пропускал пакетики...
На JDY-10 выходит, что даже при соединении с ним по BLE он ещё успевает принимать и ретранслировать в ту-же антенну необходимое для бытовых нужд кол-во рекламных пакетов от десятка BLE датчиков. Несравнимо с ESP32, особенно одновременно работающим по WiFi.
 

pvvx

Активный участник сообщества
Попробую еще прием BLE на RPi, но пока остаюсь при своих BME280 и CAN :)
Эл.Шокер вам в руки и пощелкать рядом или прямо в бронированный кабель CAN (если он бронирован) :)

Из JDY-10 за 100 рупь или самого термометра но с большей батарейкой, выходит шлюз для Android телефона или Windows с простейшим адаптером BT, который отрабатывает все датчики BLE не занимая WiFi и прочих каналов.
Так-же в него возможно дописать функциональность половины пакетов из зоопарка “HA” и резервные сценарии. Но я знаю, что вам надежность не нужна и по этому - не беспокойтесь: в ближайшее время исходников такого не выложу.
 

volaltd

Member
Custom прошивку с введенным pin-code сосед не прошьет, и bindkey не узнает чтобы расшифровать передаваемые данные с включенной опцией шифровки по mijia протоколу...
Виктор, при всем моем уважении к вам за проделанную вами работу, но решения вы писали "для себя", а не для тех кто попробует им воспользоваться. На сколько я уже поварился в этом - очень напоминает мою позапрошлую работу в большой корпорации, где периодически всплывали целые забытые всеми сервера, на которые больше 5 лет никто не заходил, но при этом выполняющие какую-то очень важную функцию. "Ого, у нас и такое есть" - очень частая была реакция. Извините, но я не хочу то, где без плотного вкуривания всей темы BLE, без кучи времени на вникнуть в мудреный код, нельзя пользоваться. Работаю и с openssl, и с AES, и с RSA, и DES, но вот bind у меня плотно ассоциируется с bind у socket, но не с encrypt data. Очень хорошо что оно надежно и функционально, но если это все интуитивно не понятно с первого взгляда, то пасиба, есть на что более полезное потратить время. А сосед прошьет потому, что по умолчанию нет никакого дефолтового пароля, без смены которого дальше не дает пройти.
 

pvvx

Активный участник сообщества
Виктор, при всем моем уважении к вам за проделанную вами работу, но решения вы писали "для себя", а не для тех кто попробует им воспользоваться. На сколько я уже поварился в этом - очень напоминает мою позапрошлую работу в большой корпорации, где периодически всплывали целые забытые всеми сервера, на которые больше 5 лет никто не заходил, но при этом выполняющие какую-то очень важную функцию. "Ого, у нас и такое есть" - очень частая была реакция. Извините, но я не хочу то, где без плотного вкуривания всей темы BLE, без кучи времени на вникнуть в мудреный код, нельзя пользоваться. Работаю и с openssl, и с AES, и с RSA, и DES, но вот bind у меня плотно ассоциируется с bind у socket, но не с encrypt data. Очень хорошо что оно надежно и функционально, но если это все интуитивно не понятно с первого взгляда, то пасиба, есть на что более полезное потратить время. А сосед прошьет потому, что по умолчанию нет никакого дефолтового пароля, без смены которого дальше не дает пройти.
Т.е. вы на меня вешаете все глупости Xiaomi?
Какое отношение к описанному вами имеет моя прошивка, если в ней пин-код ставится, сообщения шифруются?
Народу вообще требуется обратное - полностью открытая и не защищенная система. Под эти условия и настроены default настройки.
А то, что у вас какие-то неверные ассоциации с bind, то как это может касаться других?
 

pvvx

Активный участник сообщества
Извините, но я не хочу то, где без плотного вкуривания всей темы BLE, без кучи времени на вникнуть в мудреный код, нельзя пользоваться. Работаю и с openssl, и с AES, и с RSA, и DES, но вот bind у меня плотно ассоциируется с bind у socket, но не с encrypt data.
Вы очень похожи на бабушку открывшую для себя меню роутера.
Смысл сего - все ваши знания устарели и не натягиваются на действительность. Об этом и предупреждал всех поклонников Arduino. Оно уже сейчас выродилось в вариант закачки готового кода без разборки что там внутри, но делается путем вставки текстового примера в амбразуру, вместо HTML странички с кнопкой "обновить прошивку".
 

pvvx

Активный участник сообщества
Сейчас прошивки от Xiaomi и прочих для датчиков IoT в основном работают по BLE. Но уже наблюдается смещение в сторону MESH. Представляю как вы запоете, если прошивка будет с MESH. Знаний и описаний в сети про это “кот наплакал”. А в SDK разных производителей приводятся примеры исключительно для выключателя и лампочки :p

Ковырять что-то в MESH планирую не ранее чем после лета. Счас оно мало актуально, но стандарт уже сформировался у Xioami, Tuya и в пром.сфере освещения.

Так-же будете ”смотреть как баран на новые ворота”(?): Дело в том, что бараны довольно тяжело запоминают "свои" ворота, поэтому по возвращении с пастбища хозяевам стоило больших усилий загнать своих баранов по домам. А уж если за время отсутствия баранов ворота меняли ну, или, по крайней мере, перекрашивали, то животные испытывали настоящий шок!

----

На странице http://wiki.telink-semi.cn/wiki/chip-series/TLSR825x-Series/ содержится SDK V3.3.2 and Tools в архиве которого sig_mesh_sdk\firmware\vendor\common\mi_api даны полные библиотеки для шифрования mijia под распространённые архитектуры: cortex-m0plus, cortex-m3, cortex-m33, cortex-m33f, cortex-m4, cortex-m4f , но исключена библиотека для чипов Telink. Данные библиотеки выдают исключительно заключившим договор с mijia.
Это очень странно и, главное, не понятна цель - зачем Telink выкладывает пакет библиотек mijia для всех других чипов BLE, кроме своего?
 

pvvx

Активный участник сообщества
Эти библиотеки позволяют вам легко и непринужденно собрать аналог любого Xiaomi устройства к примеру на nRF и подобных cortex чипах, которые будут регистрироваться в экосистеме Mi-Home. Специализированная прослойка - API для mijia к чипам распространяется свободно – лежат на git от mijia: https://github.com/MiEcosystem/mijia_ble_standard
 

volaltd

Member
Эти библиотеки позволяют вам легко и непринужденно собрать аналог любого Xiaomi устройства к примеру на nRF и подобных cortex чипах, которые будут регистрироваться в экосистеме Mi-Home. Специализированная прослойка - API для mijia к чипам распространяется свободно – лежат на git от mijia: https://github.com/MiEcosystem/mijia_ble_standard
Спасибо, но трудозатраты на все это в разы превышают для меня полезность. Прохожу мимо.
 

pvvx

Активный участник сообщества
Одно непонятно, для чего при этом использовать этот термометр, а не взять сразу какой из TB-03/04 ?
Оно уже с батарейкой, индикатором и сенсором. При этом цена для пользователя одинакова, а работы меньше.
На BLE модулях можно лепить аналог "HA", например для увлажнителя или обогревателя - датчик на Xiaomi LYWSD03MMC, а выключатель, дублирующий установленный триггер на JDY-10. работающий по скану пассивной рекламы...
Можно и мощнее сценарии вписать - раздельно по температуре и влажности... Но пока нафиг не сдалось - тогда зачем "HA" с rPI4 и SSD?
 

Kruzo

New member
На странице http://wiki.telink-semi.cn/wiki/chip-series/TLSR825x-Series/ содержится SDK V3.3.2 and Tools в архиве которого sig_mesh_sdk\firmware\vendor\common\mi_api даны полные библиотеки для шифрования mijia под распространённые архитектуры: cortex-m0plus, cortex-m3, cortex-m33, cortex-m33f, cortex-m4, cortex-m4f , но исключена библиотека для чипов Telink. Данные библиотеки выдают исключительно заключившим договор с mijia.
Это очень странно и, главное, не понятна цель - зачем Telink выкладывает пакет библиотек mijia для всех других чипов BLE, кроме своего?
Ради интереса взглянул, если речь об stand-auth-cortex либах, там 13 коротких функций обертки, приведу для примера одну:
void auth_data_process(uint8_t *pdata, uint16_t len)
{
rxfer_process(&rxfer_auth, pdata, len);
}
Скажем час потратить в си записать для компиляции. Это на эти обертки нужно договор заключать 🙃?
 

Kruzo

New member
А, понял. rxfer_process то кода нет в этом архиве, только заголовок. Короче это обертка, над другой либой, которой нет в архиве.
 

pvvx

Активный участник сообщества
А, понял. rxfer_process то кода нет в этом архиве, только заголовок. Короче это обертка, над другой либой, которой нет в архиве.
Нету всего одного файла standard_auth.с, который дает в \sig_mesh_sdk\firmware\vendor\common\mi_api\libs\standard_auth\ *.a и *.lib
Описание функций в mible_standard_auth.h, все стандартные, но две - нет.
Заняты шифровкой "DevID", bindkey и id для mijia ( команды: mible-login-info, mible-setup-info). Сама шифровка стандартная.

Остальные функции из всей mi_api вообще не нужны. Они известны, описаны и давно работают в custom прошивке термометра...
 

pvvx

Активный участник сообщества
А т.к. в пользовательском соглашении Mi-Home запрещен реверс - я не могу выложить готовые функции не взяв их из независимого публичного источника :)
 
Сверху Снизу