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

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

pvvx

Активный участник сообщества
В итоге с BLE работает только Android - он для этого имеет полный и функциональный API. На втором месте - Windows. Но в Windows всё ограничено дровами от горе производителей...
Об других OS и разговора нет - там просто ноль. Есть ещё зоопарк в Linux, но это пока каша...
 

pvvx

Активный участник сообщества
В итоге ZigBee и остальную проприетарщину никто из “энтузиастов“ поддерживать и не собирается. Т.к. если это развивать, то значит способствовать закрытым протоколам направленным на выуживание бабла у населения.
Следствие - готовой прошивки с ZigBee или Огрызок-HomeKit на Xiaomi LYWSD03MMC я распространять не собираюсь. Пусть этим занимаются комерсы :) Когда слепят что-то дельное - разгребу и выкину открытое... Но мечтать что они что-то сделают не приходится..
 

nikolz

Well-known member
В итоге ZigBee и остальную проприетарщину никто из “энтузиастов“ поддерживать и не собирается. Т.к. если это развивать, то значит способствовать закрытым протоколам направленным на выуживание бабла у населения.
Следствие - готовой прошивки с ZigBee или Огрызок-HomeKit на Xiaomi LYWSD03MMC я распространять не собираюсь. Пусть этим занимаются комерсы :) Когда слепят что-то дельное - разгребу и выкину открытое... Но мечтать что они что-то сделают не приходится..
судя по тому, как скоропалительно лепят новые версии BLE -уже 5.2, создатели протокола осознали, что сделали говно, теперь спешно исправляют. В итоге, как обычно, будет куча заплаток (расширений, дополнений и т д) т е много ненужного. Но для задач умных датчиков и умного дома, BLE - это монстр. Возможно ему умереть не дадут, так как уже много налепили ненужного железа.
--------------
Аналогично USB. Сколько лет прошло с момента его создания, прежде чем что-то нормальное появилось в железе и его стали применять.
Но с умными датчиками все гораздо сложнее.
Пока они очень тупые.
 

pvvx

Активный участник сообщества
Тут случайно смотрю, а оригинальный датчик Xiaomi-LYWSD03MMC живет своей жизнью:
1611662741387.png
Среднее потребление валит за 0.16 мА.
Со шлюзом видимо беседует, но очень похоже на прошивку - каждый блок потребления заканчивается объемным прямоугольником с током в 5 мА... Стирание сектора Flash?
1611662931480.png
Частокол пиков тока не от передатчика... а большие с уровнем TX и одним пиком, а не 3-мя как в режиме рекламы... Соединен значит, но значок соединения не показывает!
Mi Home молчит, говорит типа все прошивки уже давно во всех устройствах последние... Ничего - подождем когда успокоиться и шлюз прервет connect, да погляжу что там в flash устроили...
 

pvvx

Активный участник сообщества
Оказалось, что его просто заклинило.... от внешних моих экспериментов :)
 

pvvx

Активный участник сообщества
судя по тому, как скоропалительно лепят новые версии BLE -уже 5.2, создатели протокола осознали, что сделали говно, теперь спешно исправляют.
Вроде ничего сверх естественного и навороченного в BLE и "новых" "стандартах" нет.
В итоге, как обычно, будет куча заплаток (расширений, дополнений и т д) т е много ненужного.
Нету никаких заплаток, т.е. пока не встречал - может у вас пример найдется - опишите - интересно...
Но для задач умных датчиков и умного дома, BLE - это монстр.
Как раз чистый BLE самый простой из всего зоопарка (Zegbee, MESH, WiFi, Ipv4 - TCP/IP...).
И оно работает практически на 8-ми битных MCU c килобайтом RAM. А говорите что он сложный...
USB проще UART или SPI, если вы его хотя-бы начали изучать. Стыковка со всем, без особых плясок с бубном и всего 2 сигнальных провода для трафика в 480 Mbit у простейшего USB2.0-hi.
В данном термометре стоит SoC поддерживающий USB2.0-fs с трафиком в CDC за 600 килобайт в сек.
Пока они очень тупые.
А зачем им быть вумными?
В быту всего то пара функций, даже у человека.
 

pvvx

Активный участник сообщества
для задач умных датчиков и умного дома, BLE - это монстр.
Аналогично USB
В чем ваше непонимание BLE?

Там всё настолько тупо, что описание можно сделать в одном предложении – данные принимаются и передаются в раздельные подписанные ящики, а не по списку условий в зависимости от предыстории и текущего номера команды или текущей температуры на обратной стороне Луны. Названия ящиков и формат данных в них пытается стандартизировать bluetooth.com

В принципе это и есть полное описание BLE.

C USB не сложнее – там тоже есть ящики, но их опрашивает (изымает из них данные) ведущий шины. Описание что и в каком ящике лежит так-же находится в “верхнем” ящике и стандартизировано...

Как это можно сравнить с зоопарком протоколов в WiFi, UART, SPI и т.д.?
 

pvvx

Активный участник сообщества
Пока они очень тупые.
Возьмем простейший пример – надо узнать версию устройства, изменить его имя, изменить параметры соединения, считать температуру и т.д.

В BLE это сводиться к таблице описания ящиков со своими стандартными номерками и атрибутами доступа в них. Атрибуты указывают, что и с какими ограничениями можно сделать с данными в ящике: чтение, запись, шифрование, авторизация.

Программно вам остается только положить в ящик данные в нужном формате. Для USB устройства это аналогично.

Опишите, что нужно сделать, чтобы получить эту функциональность в любом стороннем ПО с вашего горячо любимого ESP8266?
 

pvvx

Активный участник сообщества
Как выглядит просмотр окружающих устройств в BLE и считывание данных?

Указываете, какие ящики вас интересуют. Например с “деньгами”. Ящик находится в типовом шкафу. Например “банк”. Указываете адаптеру, чтобы он выбрал все окружающие “банки”. Он выдаст их список. А далее, в зависимости от ваших задач соединяетесь с выбранным устройством имеющим “банк” и открываете ящик с “деньгами”. Можете ‘считать’ их от туда. Ящики имеют и свойство сами выдавать бабки когда их туда дополнили или через какое-то время оповещения, заданное их производителем - когда он заработает новые. Для этого у ящика есть переключатель – notify. Включив его бабки из ящика сами будут приходить к вам.

А такие как nikolz специально пудрят всем мозг, лопоча о какой-то сложности в том, что они не усвоили. Но и возможно причина в том, что им надо продать своё устаревшее барахло...
 

pvvx

Активный участник сообщества
Теперь LYWSD03MMC и MHO-C401 c альтернативной прошивкой запоминает 20 тысяч последних замеров в своей Flash:
1612009479306.png
При установках по умолчанию для LYWSD03MMC интервал измерения выходит около 10 сек с чем-то, т.к. к интервалу маяка по стандарту добавляется случайная задержка (чтобы маяки от нескольких устройств не сошлись).
В итоге глубина записей при default установках составляет 4.5 месяца с шагом по 10+ сек.
Для MHO-C401 интервал опроса датчиков больше - 20 сек, т.к. E-ink тормоз всегда и везде при перерисовке изображения и быстрые переключения выглядят некрасиво. А за период в 20 сек ему нужно отобразить температуру, влажность, батарейку, часы и прочее - по выбору в установках. Т.е. 4 разных экрана.
В итоге глубина записей при default установках у MHO-C401 составляет 9 месяцев с шагом по 20+ сек.

Тут возникает вопрос - зачем нужны какие-то внешние базы Cloud, если даже самые мелкие современные устройства имею массу своих мозгов и возможностей, включая коммуникации с другими устройствами? :)
Это всё безусловно не относится к ESP8266/ESP32, особенно на Arduino - такие устройства стары, тупы и сами не могут ничего.
 
  • Like
Реакции: sdsm

r1vver

New member
pvvx, можете фото сделать про "1.8: Time display (instead of a blinking smile)"?
Что то не могу представить как это может выглядеть на LYWSD03MMC. Железки сейчас на руках нет.

и время для "1.9: Recording measurements to flash memory (cyclic buffer for 19632 measurements) " выставляется на самом устройстве при прошивке и дальше считается уже само?
Не замечали, как с точностью дела обстоят, на много оно теоретически "убежит/отстанет" за эти 4,5 месяца те же?
 

pvvx

Активный участник сообщества
pvvx, можете фото сделать про "1.8: Time display (instead of a blinking smile)"?
Что то не могу представить как это может выглядеть на LYWSD03MMC. Железки сейчас на руках нет.
Ужасно выглядит. Там жуткий LCD. У него контраст зависит от напряжения питания. При 2.5В начинается полное падение контраста... а на 3В - он не полный.
Отображает сверху большими цифрами часы, а маленькими минуты.
Т.к. отображение производится синхронно с маяками, то обновление, переход минут может запаздывать на период маяка и установленного минимального шага интервала отображения.
LCD не может обновляться часто - такая микросхема...
На E-Ink такие-же беды - нельзя часто обновлять, плюс обновление E-ink жрет немерянно. Но у него качество изображения в тысячи раз лучше. Даже лучше активных индикаторов...

и время для "1.9: Recording measurements to flash memory (cyclic buffer for 19632 measurements) " выставляется на самом устройстве при прошивке и дальше считается уже само?
Не замечали, как с точностью дела обстоят, на много оно теоретически "убежит/отстанет" за эти 4,5 месяца те же?
На сей день неизвестно. Экспериментов с уточнением хода часов не ставил.
Если данные снимаются раз в день, то данных в виде "времени" меток достаточно. Кол-во делить на период = более точный шаг. А джиттер каждой точки в этом деле никому не интересен, т.к. не несет никакой информации...
PS: фото счас слеплююю
 

pvvx

Активный участник сообщества
Отображение в цикле:
  1. Температура и влажность
  2. Температура и % батареи
  3. Температура и влажность
  4. Часы и минуты
Записано 2 цикла.
Если отключить показ батареи (2), то будет показывать часы в стадии 2.
Если отключить показ часов (4), то будет показывать батарею в стадии 4.
Если отключить показ часов и батареи - будет показывать только температуру и влажность.
Т.е. на период между замерами 4 стадии. В 2-х может показывать и внешние загруженные "картинки"/числа.
 

pvvx

Активный участник сообщества
Всё остальное отметается - на то есть исходники, а это не магазин бесплатных заказов :)
За предоплату от пары сотен тысяч руб - могу подумать об изменениях :)
 

pvvx

Активный участник сообщества
На счет E-ink дисплеев - они жрут больше чем любой LCD. Если их не обновлять - то может и сравняются когда с каким LCD. :)
Причина без обновления в том, что контроллер тоже жрет. А зарядка на повышение напряжения для смены изображения жрет вообще не мерянно и E-Inc надо иногда обновлять - иначе станет серым...
В итоге "мечтали" не получат завтра E-Ink часов с BLE на CR2032...
 

pvvx

Активный участник сообщества
"Вечная" батарейка:

CJMCU-2557 BQ25570
 

nikolz

Well-known member
Возьмем простейший пример – надо узнать версию устройства, изменить его имя, изменить параметры соединения, считать температуру и т.д.

В BLE это сводиться к таблице описания ящиков со своими стандартными номерками и атрибутами доступа в них. Атрибуты указывают, что и с какими ограничениями можно сделать с данными в ящике: чтение, запись, шифрование, авторизация.

Программно вам остается только положить в ящик данные в нужном формате. Для USB устройства это аналогично.

Опишите, что нужно сделать, чтобы получить эту функциональность в любом стороннем ПО с вашего горячо любимого ESP8266?
Ну Вы как всегда ....
Начнем разбирать Вашу кашу.
-------------
1) прикольно от Вас слышать что USB проще, чем UART.
Сочувствую, что Вам некогда было учиться в вузе, вы делали бабло. изъяны обучения у вас очевидны.
Универсальное всегда сложнее специального. - это аксиома.
-------------------
2) USB сделали чтобы не лепить множество разъемов на комп для зверинца подключаемых устройств и уменьшить число проводов.
А Зачем универсальный интерфейс на датчик температуры, да еще и беспроводной?
Если у Вас BLE, то нафига USB?
Можете что-то вразумительное сказать?
Можете доказать, что драйвер USB меньше, чем драйвер uART?
Можете доказать чем же протокол и реализация USB проще протокола и реализации uART?
===============
Теперь про тупые датчики.
-------------
3) Вы пишите:
"Возьмем простейший пример – надо узнать версию устройства, изменить его имя, изменить параметры соединения, считать температуру и т.д."
А зачем это надо знать? Можете что-то вразумительное сказать?
Зачем читать температуру каждую секунду?
--------------
4) Вы радуетесь, что средний ток у Вас получился 10 мка.
Если сравнивать с Wifi, то надо приравнять мощности и получим тоже самое.
А почему бы не добавить сюда еще и средний ток смартфона, который принимает каждую секунду эти данные?
А если не принимает, то зачем это все передавать?
Сложность протокола BLE не в том, что кто-то его не изучил,
А в том что для передачи температуры со скоростью 2 Мбит/сек надо передать 64 бита т е затратить 32 мкс
и передавать эту температуру каждую секунду нет смысла.
Если посчитаете, то получите что кпд универсальных протоколов таких как BLE примерно 1%,
т е затраты энергии такими устройствами раз в 100 больше, чем требуется для передачи полезной информации.
Это и есть критерий их сложности т е бессмысленной траты энергии и времени.
-------------------
5) Такие датчики температуры и влажности - тупые,
не потому что у них протокол универсальный,
а потому что у них не используется CPU для решения прикладных задач.
Вся мощность SOC уходит на бесполезное универсальное управление приемо-передатчиком для тупой передачи значения температуры.
------------------
Причем чтобы передать это значение к нему надо еще довесить кучу ненужного хлама.
-------------------
И что в итоге ?
Что конкретно этот датчик позволяет сделать автоматически?
И сколько энергии для решение прикладной задачи потребуется?
----------------
Поэтому пока это тупые, а не умные датчики, которые забивают эфир бестолковой информацией.
Полагаю, что Вы не приписываете себе создание протокола BLE и производство чипов на Cortex-M..?
Прикольно читать как Вы боретесь с ESP уже который год. то пиарили RTL, теперь прилепились к TELINK.
Да флаг вам в руки. Никто с Вами не спорит , Вы все это придумали и сделали.
---------------------
Но прикольно читать Ваш щенячий восторг,
о том, что устройство, мощность излучения которого в 100 раз меньше, чем у ESP,
потребляет в 2 раза меньший средний ток
и, используя другой протокол, забивает эфир ненужной информацией,
при этом измеряет температуру в своем корпусе.
-----------------
И нафига столько шума из-за ничего?
 

pvvx

Активный участник сообщества
Ну Вы как всегда ....
Начнем разбирать Вашу кашу.
-------------
1) прикольно от Вас слышать что USB проще, чем UART.
Сочувствую, что Вам некогда было учиться в вузе, вы делали бабло. изъяны обучения у вас очевидны.
Универсальное всегда сложнее специального. - это аксиома.
-------------------
2) USB сделали чтобы не лепить множество разъемов на комп для зверинца подключаемых устройств и уменьшить число проводов.
А Зачем универсальный интерфейс на датчик температуры, да еще и беспроводной?
Если у Вас BLE, то нафига USB?
Можете что-то вразумительное сказать?
Можете доказать, что драйвер USB меньше, чем драйвер uART?
Можете доказать чем же протокол и реализация USB проще протокола и реализации uART?
===============
Теперь про тупые датчики.
-------------
3) Вы пишите:
"Возьмем простейший пример – надо узнать версию устройства, изменить его имя, изменить параметры соединения, считать температуру и т.д."
А зачем это надо знать? Можете что-то вразумительное сказать?
Зачем читать температуру каждую секунду?
--------------
4) Вы радуетесь, что средний ток у Вас получился 10 мка.
Если сравнивать с Wifi, то надо приравнять мощности и получим тоже самое.
А почему бы не добавить сюда еще и средний ток смартфона, который принимает каждую секунду эти данные?
А если не принимает, то зачем это все передавать?
Сложность протокола BLE не в том, что кто-то его не изучил,
А в том что для передачи температуры со скоростью 2 Мбит/сек надо передать 64 бита т е затратить 32 мкс
и передавать эту температуру каждую секунду нет смысла.
Если посчитаете, то получите что кпд универсальных протоколов таких как BLE примерно 1%,
т е затраты энергии такими устройствами раз в 100 больше, чем требуется для передачи полезной информации.
Это и есть критерий их сложности т е бессмысленной траты энергии и времени.
-------------------
5) Такие датчики температуры и влажности - тупые,
не потому что у них протокол универсальный,
а потому что у них не используется CPU для решения прикладных задач.
Вся мощность SOC уходит на бесполезное универсальное управление приемо-передатчиком для тупой передачи значения температуры.
------------------
Причем чтобы передать это значение к нему надо еще довесить кучу ненужного хлама.
-------------------
И что в итоге ?
Что конкретно этот датчик позволяет сделать автоматически?
И сколько энергии для решение прикладной задачи потребуется?
----------------
Поэтому пока это тупые, а не умные датчики, которые забивают эфир бестолковой информацией.
Полагаю, что Вы не приписываете себе создание протокола BLE и производство чипов на Cortex-M..?
Прикольно читать как Вы боретесь с ESP уже который год. то пиарили RTL, теперь прилепились к TELINK.
Да флаг вам в руки. Никто с Вами не спорит , Вы все это придумали и сделали.
---------------------
Но прикольно читать Ваш щенячий восторг,
о том, что устройство, мощность излучения которого в 100 раз меньше, чем у ESP,
потребляет в 2 раза меньший средний ток
и, используя другой протокол, забивает эфир ненужной информацией,
при этом измеряет температуру в своем корпусе.
-----------------
И нафига столько шума из-за ничего?
Нда - тупость nikolz процветает.
По несколько шибок в каждом абзаце.
 

pvvx

Активный участник сообщества
Если у Вас BLE, то нафига USB?
Можете что-то вразумительное сказать?
Очень часто устройства с BLE используют АКБ и зарядку с USB.
В таких, 90% случаев USB может использоваться для программирования различных опций и аналога OTA.
Можете доказать, что драйвер USB меньше, чем драйвер uART?
Без проблем - смотрите исходники и сравните размер кода.
Можете доказать чем же протокол и реализация USB проще протокола и реализации uART?
Без проблем - в USB встроена блочная синхронизация и нет нужды описывать протокол синхронизации, что в большинстве случаев с UART занимает больше всего места и ресурсов.
Элементарный пример - Modbus.

nikolz Все остальные ваши высеры от технической безграмотности и не восприятия нового. Кароче большие проблемc с обучением и изучением чего нового.
 

pvvx

Активный участник сообщества
Но тут вообще вопиющая тупость у nikolz:
Вся мощность SOC уходит на бесполезное универсальное управление приемо-передатчиком для тупой передачи значения температуры.
А в WiFi не вся мощность SOC уходит на бесполезное?
В UART не вся мощность адаптера уходит на бесполезное преобразование триллионов электронов из одного временного потока в другой?
У Солнца вся мощность уходит на бесполезное рассеивание и описание этого процесса для чело-веков на сегодня составляет толмуты и они не полны.
У nikolz разве не вся мощность мозга уходит на бесполезное рассеивание своего тупизма? Или только для дотягивания руками до тарелки и горшка?
:) :)
 
Сверху Снизу