Радиосеть для управления разнородными устройствами дома и на участке

osetroff
Offline
Зарегистрирован: 27.08.2014

День добрый,

Ваяю радиосеть для управления разнородными устройствами дома и на участке.

Вся управляющая часть на arduino mini и просто на отдельных dip28 atmega328p и самодельных платах.

Радио у них nrf24l01+.

Маршрутизацию и шифрование отладил.

Начал изучать и писать интерфейс на c++/codeblocks/wxwidgets/wxsqlite3.

Хочу потом портировать интерфейс с win под android, потому и выбрал wxwidgets.

И тут - засада: никак не придумаю, как удобно сделать интерфейс.

Оказывается, всегда делал проги для специальных задач.

А тут все должно быть удобно и все в одной программе:

1. Полив участка по грядкам.

2. Полив в трех теплицах.

3. Полив сада.

4. Контроль уровня воды в двух колодцах.

5. Ретрансляторы (кроме маршрутизации они еще управляют питанием для полива от солнечных панелей).

6. Гроубоксы дома.

7. Брудеры и клетки в курятнике.

8. Ночной свет на участке.

И еще много чего добавится.

Интерфейс - notepad, с закладками.

Это как в браузере, когда куча открытых страниц.

Закладки:

1. Виды сверху. Первый вид - план всего участка (выдрал из google maps).

На нем есть области/прямоугольники (сад, верхний огород, нижний огород, первый колодец, дом и тп).

Каждый контроллер привязан к какой-либо области.

Сразу будет видно, где ошибки (будут мигать области, на которых контроллеры выдавали ошибки).

Тут все ясно.

При выборе области дом, может выводится план дома и тд.

При выборе области, идем на вторую закладку.

2. Список контроллеров , которые находятся в выбранной области.

Тут начинаются проблемы с интерфейсом.

Хочется видеть все контроллеры, например, чтобы поменять что-либо в их сетевых настройках, названии и тп.

С другой стороны, контроллеры полива должны выводить в таблице влажность с верхнего и нижнего датчика и температуру, а ретранслятор, например, уровень заряда аккумулятора и мощность, выдаваемую СП.

Т.е. в одну таблицу не разместишь.

Может предложите варианты?

Вообще, подумываю, получив от контроллера его тип, подключать соответствующий плагин и давать плагину область на экране для отображения и приема параметров.

Но пока, совершенно не представляю как это сделать.

Как вообще это делают?

karden.mobile
Offline
Зарегистрирован: 11.02.2016

А интерфейс нужен для "пользователя" или для разработки/отладки? Я бы в варианте "для пользователя" вообще минимизировал объём информации. Минимум цифр. Мне кажется достаточно знать, что все хорошо или где-то есть проблемы. А развивая идею более глубокой локализации информации при выборе объекта, то при просмотре контроллеров/датчиков выбранной области (2 закладка) можно выбрать нужный контроллер и там будут все его настройки, значения датчиков и т.п.

osetroff
Offline
Зарегистрирован: 27.08.2014

Благодарю за ответ.

Интерфейс и для пользователя и для отладки.

В настройках в базе просто будет признак: пользователь/сисадмин.

Это не проблема, скрыть/показать столбцы/панели.

Моя проблема не в минимизации информации.

Проблема: как разнородные по функциям контроллеры втиснуть в единый интерфейс.

Сейчас ищу на просторах инета что-то подобное для идеи.

Можно, конечно, на каждую группу написать отдельную программу.

Но, подкупает единая радиосеть и единый контроль ошибок.

Единую программу проще отлаживать и сопровождать.

Я-то один.

Вот и хочется единый интерфейс с плагинами для более детальной конкретики.

Жена говорит: сделай мне таблицу полива, а свои ретрансляторы показывай в ней с пустыми полями.

Кстати, первый вариант: скрывать/показывать столбцы в зависимости от выбора типа контроллеров.

Тогда, в таблице отображаются все контроллеры из области ( и могут быть отсортированы по названию).

Но, в каждый конкретный момент, отображаются столбцы только выбранного типа.

Если контроллер не выбранного типа, то в столбцах пустота.

Сортируем, чтобы, например, ретрансляторы были рядом и выбираем тип - ретранслятор.

Или, сортируем полив и выбираем тип - полив.

Не пойму, почему, психологически, нужно видеть все контроллеры?

 

Да, если уже заинтересовал конкретный контроллер, то идем в закладку 3 и там плагин делает то, что хочет.

Но, интересует организация именно единого интерфейса на закладке 2.

karden.mobile
Offline
Зарегистрирован: 11.02.2016

Пустые поля в таблицах, на мой взгляд, достаточно рискованная затея. Т.к. Со временем (и появлением новых типов устройств) она станет огромной и не читаемой.

А если сделать так: одна колонка: тип контроллера, и 3-5 колонок с их наиболее важными параметрами. Причём для разных типов устройств они будут разные (и по типу данных и значениям). При этом данные, скорее всего, будут значительно отличаться от разных типов источников, и сортировка будет работать даже в общем списке. А чтобы было наглядно видно что там за данные в конкретной ячейке можно добавить единицу измерения величины или подсказку.

Не могу сказать, что это очевидное решение, но может быть даст какие-то новые мысли...

osetroff
Offline
Зарегистрирован: 27.08.2014

Еще раз благодарю за диалог.

Тема непростая, поговорить не с кем.

Я имел в виду, что, выбирая тип отображаемых контроллеров, напр. полив, выбираем, какие колонки показывать.

Остальные прячем.

Села жена, ткнула в верхний огород, попала на закладку 2.

В ней в таблице все контроллеры, которые есть на этом огороде: и поливные, и ретрансляторы, и ночная подсветка.

Выбрала тип:полив.

Теперь в таблице все контроллеры остались, но осталось всего несколько столбцов по поливу: влажность верхнего и нижнего датчиков, температура грядки, возраст растений в днях, % от предельной поливной влагоемкости, кол-во проверок в день, пропущенных дней.

Напротив ретрансляторов в столбцах пусто и столбцы, естественно , не редактируются.

Подошел я, выбрал: ретрансляторы.

Все контроллеры остались, столбцы только относящиеся к ретранслятору: напряжение на АКБ, мощность с СП, текущее потребление, время включения, время отключения и тп.

Валить в кучу не хочу. Размерности не выручат - жена будет путаться.

Нужны еще идеи.

Может, во второй закладке оставить все контроллеры, а в третьей как раз отображать только поливные либо только ретрансляторы из второй закладки плагином?

karden.mobile
Offline
Зарегистрирован: 11.02.2016

А может просто 2 отдельных интерфейса: для себя и для жены :). И там оставить только то, что нужно ей?

osetroff
Offline
Зарегистрирован: 27.08.2014

И пошло-поехало: мне тут вот это добавь и еще и еще :)

Все же я за одну программу и универсальный интерфейс.

Потом и моя мама, думаю, подключится.Пусть терпят единый интерфейс. А права доступа несложно добавить, т.к. у меня есть привязка к области (месту, напр. мамина теплица или теплица жены) и к типу контроллеров (полив).

Пока сделаю общую панель в интерфейсе с выбором типа контроллеров.

Выбираешь "полив", щелкаешь на область на карте, попадаешь в закладку 2. В ней таблица со всеми контроллерами из области, но столбцы только для полива. На добавочной панели все параметры для текущего контроллера полива подробно.

Еще надумал для скорости вообще не вводить средства/кнопки для добавить/удалить. Всю базу править ручками в SQLiteStudio. А интерфейс будет работать с тем, что есть. Иначе мне целую программу придется разрабатывать не один месяц. Если будет нужно, введу режим редактирования, в котором возможно будет только добавлять/изменять/удалять в базовых таблицах.

Буду искать как делают плагины. Плагин должен выдавать количество данных, подписи к ним, значения. Что-то все сложно. Боюсь, снова по старинке придется делать: куча скрытых закладок на все случаи жизни и показывать их в случае необходимости.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
osetroff
Offline
Зарегистрирован: 27.08.2014

Не понял, к чему ссылка? У меня самописный проект, в стандартные не впишется. Например, кому нужен контроль полива либо контроль уровня воды в колодце? И кто будет строить сеть на nrf24l01+ без ACK? У меня свои концепции и, по опыту, большинство считает их несерьезными. Измерять температуру/влажность дистанционно - не проблема.

Если есть ссылки на софт, чтобы почерпнуть идеи интерфейса для управления разнородными функциями - буду благодарен.