Разработки ecoins

Библиотеки для разных контроллеров

JonyBest
Рядовой
Сообщения: 95
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 2
Откуда: Близко к Ставрополю
Имя: Евгений

Разработки ecoins

#1201

Сообщение JonyBest » 15.08.2021{, 00:49}

ecoins писал(а):
14.08.2021{, 00:06}
Как и обещал, попробовал изучить проект. результаты:
1.Проект сложно читаем. Попробовал немного структурировать проект с применением некоторых новых возможностей.
2.Очень много работы со строковыми переменные - функции с ними медленно работают и поэтому где можно строковые переменные лучше готовить заранее.
3.В одной свободной задаче (плата 5) включено несколько транзакций по передаче MQTT сообщений с большим количеством строковых операций - это серьезный источник торможения. У меня проект почти не работал (секундные тормоза) - возможно это из-за того что у меня не подключался к сети проект и еще модули MQTT не изучал как сделаны.
Доброго времени суток!
Спасибо за то что нашли время на мой проект. Конструктивная критика приводит к новым решениям :smile9:
1. Такая же беда как и у Вас, тяжело заставить себя делать описания, от этого и недопонимание. Проект используется как шаблон для устройств умного дома в системе Home Assistant, а у меня их много :yes: . Чтобы добиться максимальной универсальности в блоках MQTT используется строковый массив, чтобы в одном месте поменял имена сенсоров - автоматом поменялись во всём проекте и т.д.
2. Кажись понял. Попробую исправить. Хотя в проекте только четыре строковые переменные. Сложение строк производится только в платах перед использованием. Попробую переместить сложение строк на платы с датчиками, посмотрим что выиграем... На сколько я понял, чем больше строковых переменных, тем хуже в плане памяти. Клеммы частично решают этот вопрос, но все же...
3. Платы 7-9 ОДНОКРАТНО по подключению к брокеру MQTT отсылают конфигурацию интеграции в системе Home Assistant., что позволяет быстрее настроить Home Assistant.
ф4.JPG
Проверил, при отсутствии соединения - платы сильно тормозят, тут надо, скорее, делать условие не из диспетчера задач, а по состоянию подключения(есть подключение к брокеру MQTT - передаем, нет - выключаем плату). Так то проект работает вполне быстро.
ф3.JPG
Разбить датчики по отдельным платам с выполнением по условию "свободной задачи" - отличная мысль
Если Вы возьметесь оптимизацию Wi-Fi соединений и MQTT сообщений - низкий поклон и всемирное содействие!!!
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось JonyBest 15.08.2021{, 09:12}, всего редактировалось 1 раз.

Vint
Рядовой
Сообщения: 35
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 3
Откуда: Minsk

Разработки ecoins

#1202

Сообщение Vint » 15.08.2021{, 02:17}

ecoins писал(а):
14.08.2021{, 21:07}
Вместе мы сделаем гораздо больше и лучше.
Конечно вместе. Просто по примитивным и логически решаемым вопросам Вас тревожить и отвлекать не зачем. Без проблем выложу проекты до и после. Нет возможности постоянно сидеть в чате, извините без подробностей...
тема "Разработки ecoins для Nextion" полгода была в спячке, разбудили, замечательно...
Блоки опробую и обязательно отпишусь.

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1203

Сообщение ecoins » 15.08.2021{, 09:34}

JonyBest писал(а):
15.08.2021{, 00:49}
1. Такая же беда как и у Вас, тяжело заставить себя делать описания, от этого и недопонимание. Проект используется как шаблон для устройств умного дома в системе Home Assistant, а у меня их много . Чтобы добиться максимальной универсальности в блоках MQTT используется строковый массив, чтобы в одном месте поменял имена сенсоров - автоматом поменялись во всём проекте и т.д.
Новые блоки "Клеммы" во многом решают эту проблему - тот же массив из десяти строк, но доступ по имени клеммы - это удобнее, чем по индексу. Если понадобиться - можно сделать выход с адресом первого элемента. Можно поставить несколько блоков (каждый из них до 10-ти клемм).
Массив конечно более универсален для применения, но в ряде случаев блок клемм решает эти проблемы.
Собственно можно использовать и выход из массива по индексу с подключением клеммы - такую конструкцию можно использовать в любом месте отнимает (в т.ч. и в первой однократно выполняемой плате).
JonyBest писал(а):
15.08.2021{, 00:49}
2. Кажись понял. Попробую исправить. Хотя в проекте только четыре строковые переменные. Сложение строк производится только в блоках перед использованием. Попробую переместить сложение строк на платы с датчиками, посмотрим что выиграем... На сколько я понял, чем больше строковых переменных, тем хуже в плане памяти. Клеммы частично решают этот вопрос, но все же...
Строки по затратам на них памяти и вычислительной мощности одно из самых ресурсо затратных операций. В идеале их следует подготовить один раз и лучше в памяти PROGMEM.
JonyBest писал(а):
15.08.2021{, 00:49}
3. Платы 7-9 ОДНОКРАТНО по подключению к брокеру MQTT отсылают конфигурацию интеграции в системе Home Assistant., что позволяет быстрее настроить Home Assistant.
Конструкция для отправки один раз очень громоздкая - и не зависимо от того отправляется или нет вся этого конструкция работает при каждом входе в плату.
Запрос лучше готовить заранее - например в одной из первых плат, которую сделать однократно вызываемой, а блок запускать однократным коротким(1 цикл вхождение в плату) импульсом (мы это называем "Событием").
JonyBest писал(а):
15.08.2021{, 00:49}
Проверил, при отсутствии соединения - платы сильно тормозят, тут надо, скорее, делать условие не из диспетчера задач, а по состоянию подключения(есть подключение к брокеру MQTT - передаем, нет - выключаем плату). Так то проект работает вполне быстро.

Скорее всего.
Сколько библиотек ни смотрел везде похожий ... :
1.Запуск соединения.
2. delay(2000);
3.Проверка соединения.
Давно планируем сделать это иначе...
JonyBest писал(а):
15.08.2021{, 00:49}
Разбить датчики по отдельным платам с выполнением по условию "свободной задачи" - отличная мысль
Если Вы возьметесь оптимизацию Wi-Fi соединений и MQTT сообщений -
А вот за это отдельное спасибо - таким образом мы договорились о сотрудничестве, оно уже фактически происходит.
Очень этому рад.
Дело в том, что уже не первый раз выступаю на форуме с предложением объединить усилия - пока ответы были типы "А что нам за это будет", "А вы нас в начале убедите в полезности..." и т.п.
Уже само общение с Вами и изучение разных проектных решений оказывается очень полезным и определяет направления для доработки библиотек и блоков.
Еще раз сформулирую нашу цель - она продолжение целей Arduino и FLProg:
1.сделать проектирование систем автоматизации простым и доступным инженерам при этом убрать (сделать не видимыми ) сопутствующие проблемы - смена платформ (AVR,ESP,STM32 и др.), конфликт библиотек, макроопределений, "временные тормоза" разных библиотек и проектных решений.
2.уровень проектов должен позволять их использовать в промышленных решениях.
-------------
Еще раз спасибо за первый положительный отклик на сотрудничество, сегодня их уже целых два :yes:
И отдельный привет Rovki (KaScada) с которым мы сотрудничаем в режиме прямой связи.

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1204

Сообщение ecoins » 15.08.2021{, 09:38}

Vint писал(а):
15.08.2021{, 02:17}
Конечно вместе. Просто по примитивным и логически решаемым вопросам Вас тревожить и отвлекать не зачем. Без проблем выложу проекты до и после. Нет возможности постоянно сидеть в чате, извините без подробностей...
Сегодня прямо день позитивный - это второй за длительное время положительный отзыв к сотрудничеству.
Буду ждать от Вас результатов по Nextion.
Звоните, пишите, спрашивайте.
Успехов Вами успехов всем нам.

Аватара пользователя
Phazz
Полковник
Сообщения: 1670
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 134
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1205

Сообщение Phazz » 15.08.2021{, 10:12}

ecoins, Долго присматривался к вашему проекту, видимо пришло время ) На новом редакторе еще не закончили?

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1206

Сообщение ecoins » 15.08.2021{, 11:03}

Phazz писал(а):
15.08.2021{, 10:12}
ecoins, Долго присматривался к вашему проекту,
Отлично и спасибо. Мы тоже с интересом и пользой смотрим за Вашими работами.
Последнюю версию выложили наконец в первом посте.
Все сделано на новом редакторе. К нему есть конечно вопросы - проекты получаются объемными, но разработчик возможно найдет оптимизационные решения.
Успехов.

Аватара пользователя
Phazz
Полковник
Сообщения: 1670
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 134
Откуда: Сургут
Имя: Анатолий

Разработки ecoins

#1207

Сообщение Phazz » 15.08.2021{, 11:16}

У вас какой нибудь группы в телеграмм или других мессенджерах нет?

Отправлено спустя 14 минут :
ecoins, А идею отдельного контроллера в флпрог дальше не развиваете? Это бы сильно упростило навигацию по вашим блокам тем более многие повторяют блоки из стандартного набора но как я понимаю они оптимизированы.

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1208

Сообщение ecoins » 15.08.2021{, 11:45}

Phazz писал(а):
15.08.2021{, 11:30}
У вас какой нибудь группы в телеграмм или других мессенджерах нет?
Специально группу не создавал, в телеграмме и WhatsApp доступен по телефону 8-910-451-42-67
Phazz писал(а):
15.08.2021{, 11:30}
ecoins, А идею отдельного контроллера в флпрог дальше не развиваете? Это бы сильно упростило навигацию по вашим блокам тем более многие повторяют блоки из стандартного набора но как я понимаю они оптимизированы.
Сделать кастомный контроллер не сложно, но работа в развитии - в кастомный контроллер хлопотно добавлять. К тому же он конфликтует с одинаковыми блоками из пользовательских блоков - если бы не это, можно было выкладывать кастомный контроллер и периодически его обновлять по мере развития библиотек и блоков.

evgen123
Рядовой
Сообщения: 43
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 1
Откуда: Краснодар
Имя: Евгений

Разработки ecoins

#1209

Сообщение evgen123 » 15.08.2021{, 12:21}

ecoins писал(а):
15.08.2021{, 11:45}
в телеграмме и WhatsApp доступен по телефону 8-910-451-42-67
нет этого номера в телеграмме...

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1210

Сообщение ecoins » 15.08.2021{, 12:52}

evgen123 писал(а):
15.08.2021{, 12:21}
нет этого номера в телеграмме...
Телефон мой, можете писать, звонить, устанавливать контакты.

evgen123
Рядовой
Сообщения: 43
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 1
Откуда: Краснодар
Имя: Евгений

Разработки ecoins

#1211

Сообщение evgen123 » 15.08.2021{, 14:08}

ecoins писал(а):
15.08.2021{, 12:52}
Телефон мой, можете писать, звонить, устанавливать контакты

благодарю... всенепременно воспользуюсь..)

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1212

Сообщение ecoins » 16.08.2021{, 22:57}

16.08.21 Обновление: исправлены ошибки, добавлены функции для STM32, в многофункциональном генераторе добавлен счетчик моточасов.
Изменения в 1-ом посте.
тут viewtopic.php?t=6942&start=80#p105849 тест:============
Что делает тест:
1.Выводит на консоль параметры платы с перечнем доступных пинов (цифровой и буквенной форме).
2.Вызов плат выполняется диспетчер.
3.Сенсоры - DHT22,DS1820,HTU21.
4.Опрашивается аналоговый ввод (потенциометр) - результат выводится на пин PWM (управление яркостью светодиода) и на дисплеи.
5.Три дисплея: 1) HD44780 16x2 i2c; 2)HD44780 20x4 i2c; 3) Nextion 8" UART.
Вывод на дисплеи внешне мгновенный - глаз не отличает, на слух тоже.
6.Вывод через SPI на регистр 74HC595 - светодиоды бегают со сменой 100мс. Можно сделать и меньше (даже меньше 1 мс) - но глаз различать не будет.
7.Вывод через i2c на два регистра MCP23017 - на один со счетчика "Пила", на другой со счетчика "Треугольник" - светодиоды быстро бегают (50мс).
8.Кнопка с защитой от дребезга 50мс - вывод на дисплеи.
------------------
Все очень быстро и без "тормозов".

JonyBest
Рядовой
Сообщения: 95
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 2
Откуда: Близко к Ставрополю
Имя: Евгений

Разработки ecoins

#1213

Сообщение JonyBest » 17.08.2021{, 10:35}

Доброго времени суток!
Вчера случился день разочарований.
1. Переделал проект под клеммы вместо переменных. Кстати, оценил, сколько труда вы вложили, чтобы показать свою идею в моем проекте! Но результат получил противоположный, время цикла выросло до 1,3 мс. Видимо, блоки MQTT плохо работают с индексами клемм. При отключении плат с блоками MQTT или вернув стринговые переменные - время цикла становится 0,1 мс.
aa.jpg
2. Не корректно выводит изображение на дисплей 16х4. Алгоритм остался, похоже, от дисплея 20х4, по этому смещаются в 3-4х строках на 4е колонки ...
122.jpg
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось JonyBest 19.08.2021{, 22:19}, всего редактировалось 2 раза.

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1214

Сообщение ecoins » 17.08.2021{, 11:52}

JonyBest писал(а):
15.08.2021{, 00:49}
Переделал проект под клеммы вместо переменных. Кстати, оценил, сколько труда вы вложили, чтобы показать свою идею в моем проекте! Но результат получил противоположный, время цикла выросло до 1,3 мс. Видимо, блоки MQTT плохо работают с индексами клемм. При отключении плат с блоками MQTT или вернув стриноговые переменные - время цикла становится 0,1 мс.
Это вряд ли из-за клемм.
Завтра будет возможность - посмотрю проект.
Дисплей 16*4 тоже подправлю.

megahamster3
Рядовой
Сообщения: 21
Зарегистрирован: 03.01.2021{, 16:09}
Репутация: 1
Имя: Alex

Разработки ecoins

#1215

Сообщение megahamster3 » 17.08.2021{, 19:14}

Поясните пожалуйста что я не так сделал? На дисплее по идее должен мигать символ но ничего не выводится вообще!
Дисплей стандартный проверенный....сидит на 27-м адресе.
test_display_ICD_I2C.flp
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1216

Сообщение ecoins » 17.08.2021{, 20:15}

Вы делаете все так, только пользовательские блоки следует использовать из новой библиотеки.
eis_lcd_blink.flp
Обе библиотеки (RT_HW_BASE.h и EIS.01.СИСТЕМА размещены в первом посте.
Для скачивания вложений Вы должны быть зарегистрированы.

evgen123
Рядовой
Сообщения: 43
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 1
Откуда: Краснодар
Имя: Евгений

Разработки ecoins

#1217

Сообщение evgen123 » 17.08.2021{, 20:27}

megahamster3 писал(а):
17.08.2021{, 19:14}
....сидит на 27-м адресе.
39 попробуйте...

ecoins
Подполковник
Сообщения: 1207
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 204
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1218

Сообщение ecoins » 17.08.2021{, 21:31}

В библиотеке ПБ ecoins есть простой и удобный блок "Сканирование шины i2c" (в меню Консоль).
Попробуйте и на консоли увидите все устройства, подключенные к шинам i2c в десятичном и HEX форматах.

EISKirill
Рядовой
Сообщения: 8
Зарегистрирован: 12.08.2021{, 18:31}
Репутация: 2
Имя: Kirill

Разработки ecoins

#1219

Сообщение EISKirill » 18.08.2021{, 13:22}

JonyBest, сейчас разбираю ваш проект и пытаюсь подключить к своему облачному брокеру. Можете пожалуйста прислать свой файл конфигурации или настройки

megahamster3
Рядовой
Сообщения: 21
Зарегистрирован: 03.01.2021{, 16:09}
Репутация: 1
Имя: Alex

Разработки ecoins

#1220

Сообщение megahamster3 » 18.08.2021{, 14:01}

Да действительно неувязка с форматами.
В штатном FLprog сканере шины I2C выдает <27> и штатный блок ипользует НЕХХ формат, а блоку от "ecoins" нужен на входе десятичный <39>

i2c0->init Master;
i2c0->39/0x27; qnt=1;

Вобщем это желательно исправить или отобразить данную фичу в документации...

Большое спасибо "ecoins" и "evgen123" за ответы!
Кстати вот баг в блоке....
РАБОТАЕТ.flp
НЕ РАБОТАЕТ.flp
Для скачивания вложений Вы должны быть зарегистрированы.

Ответить

Вернуться в «Библиотеки пользователей»