Радиосеть для управления разнородными устройствами дома и на участке
- Войдите на сайт для отправки комментариев
День добрый,
Ваяю радиосеть для управления разнородными устройствами дома и на участке.
Вся управляющая часть на 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. Список контроллеров , которые находятся в выбранной области.
Тут начинаются проблемы с интерфейсом.
Хочется видеть все контроллеры, например, чтобы поменять что-либо в их сетевых настройках, названии и тп.
С другой стороны, контроллеры полива должны выводить в таблице влажность с верхнего и нижнего датчика и температуру, а ретранслятор, например, уровень заряда аккумулятора и мощность, выдаваемую СП.
Т.е. в одну таблицу не разместишь.
Может предложите варианты?
Вообще, подумываю, получив от контроллера его тип, подключать соответствующий плагин и давать плагину область на экране для отображения и приема параметров.
Но пока, совершенно не представляю как это сделать.
Как вообще это делают?
А интерфейс нужен для "пользователя" или для разработки/отладки? Я бы в варианте "для пользователя" вообще минимизировал объём информации. Минимум цифр. Мне кажется достаточно знать, что все хорошо или где-то есть проблемы. А развивая идею более глубокой локализации информации при выборе объекта, то при просмотре контроллеров/датчиков выбранной области (2 закладка) можно выбрать нужный контроллер и там будут все его настройки, значения датчиков и т.п.
Благодарю за ответ.
Интерфейс и для пользователя и для отладки.
В настройках в базе просто будет признак: пользователь/сисадмин.
Это не проблема, скрыть/показать столбцы/панели.
Моя проблема не в минимизации информации.
Проблема: как разнородные по функциям контроллеры втиснуть в единый интерфейс.
Сейчас ищу на просторах инета что-то подобное для идеи.
Можно, конечно, на каждую группу написать отдельную программу.
Но, подкупает единая радиосеть и единый контроль ошибок.
Единую программу проще отлаживать и сопровождать.
Я-то один.
Вот и хочется единый интерфейс с плагинами для более детальной конкретики.
Жена говорит: сделай мне таблицу полива, а свои ретрансляторы показывай в ней с пустыми полями.
Кстати, первый вариант: скрывать/показывать столбцы в зависимости от выбора типа контроллеров.
Тогда, в таблице отображаются все контроллеры из области ( и могут быть отсортированы по названию).
Но, в каждый конкретный момент, отображаются столбцы только выбранного типа.
Если контроллер не выбранного типа, то в столбцах пустота.
Сортируем, чтобы, например, ретрансляторы были рядом и выбираем тип - ретранслятор.
Или, сортируем полив и выбираем тип - полив.
Не пойму, почему, психологически, нужно видеть все контроллеры?
Да, если уже заинтересовал конкретный контроллер, то идем в закладку 3 и там плагин делает то, что хочет.
Но, интересует организация именно единого интерфейса на закладке 2.
Пустые поля в таблицах, на мой взгляд, достаточно рискованная затея. Т.к. Со временем (и появлением новых типов устройств) она станет огромной и не читаемой.
А если сделать так: одна колонка: тип контроллера, и 3-5 колонок с их наиболее важными параметрами. Причём для разных типов устройств они будут разные (и по типу данных и значениям). При этом данные, скорее всего, будут значительно отличаться от разных типов источников, и сортировка будет работать даже в общем списке. А чтобы было наглядно видно что там за данные в конкретной ячейке можно добавить единицу измерения величины или подсказку.
Не могу сказать, что это очевидное решение, но может быть даст какие-то новые мысли...
Еще раз благодарю за диалог.
Тема непростая, поговорить не с кем.
Я имел в виду, что, выбирая тип отображаемых контроллеров, напр. полив, выбираем, какие колонки показывать.
Остальные прячем.
Села жена, ткнула в верхний огород, попала на закладку 2.
В ней в таблице все контроллеры, которые есть на этом огороде: и поливные, и ретрансляторы, и ночная подсветка.
Выбрала тип:полив.
Теперь в таблице все контроллеры остались, но осталось всего несколько столбцов по поливу: влажность верхнего и нижнего датчиков, температура грядки, возраст растений в днях, % от предельной поливной влагоемкости, кол-во проверок в день, пропущенных дней.
Напротив ретрансляторов в столбцах пусто и столбцы, естественно , не редактируются.
Подошел я, выбрал: ретрансляторы.
Все контроллеры остались, столбцы только относящиеся к ретранслятору: напряжение на АКБ, мощность с СП, текущее потребление, время включения, время отключения и тп.
Валить в кучу не хочу. Размерности не выручат - жена будет путаться.
Нужны еще идеи.
Может, во второй закладке оставить все контроллеры, а в третьей как раз отображать только поливные либо только ретрансляторы из второй закладки плагином?
А может просто 2 отдельных интерфейса: для себя и для жены :). И там оставить только то, что нужно ей?
И пошло-поехало: мне тут вот это добавь и еще и еще :)
Все же я за одну программу и универсальный интерфейс.
Потом и моя мама, думаю, подключится.Пусть терпят единый интерфейс. А права доступа несложно добавить, т.к. у меня есть привязка к области (месту, напр. мамина теплица или теплица жены) и к типу контроллеров (полив).
Пока сделаю общую панель в интерфейсе с выбором типа контроллеров.
Выбираешь "полив", щелкаешь на область на карте, попадаешь в закладку 2. В ней таблица со всеми контроллерами из области, но столбцы только для полива. На добавочной панели все параметры для текущего контроллера полива подробно.
Еще надумал для скорости вообще не вводить средства/кнопки для добавить/удалить. Всю базу править ручками в SQLiteStudio. А интерфейс будет работать с тем, что есть. Иначе мне целую программу придется разрабатывать не один месяц. Если будет нужно, введу режим редактирования, в котором возможно будет только добавлять/изменять/удалять в базовых таблицах.
Буду искать как делают плагины. Плагин должен выдавать количество данных, подписи к ним, значения. Что-то все сложно. Боюсь, снова по старинке придется делать: куча скрытых закладок на все случаи жизни и показывать их в случае необходимости.
http://homes-smart.ru/index.php/oborudovanie/bez-provodov-2-4-ggts
Не понял, к чему ссылка? У меня самописный проект, в стандартные не впишется. Например, кому нужен контроль полива либо контроль уровня воды в колодце? И кто будет строить сеть на nrf24l01+ без ACK? У меня свои концепции и, по опыту, большинство считает их несерьезными. Измерять температуру/влажность дистанционно - не проблема.
Если есть ссылки на софт, чтобы почерпнуть идеи интерфейса для управления разнородными функциями - буду благодарен.