?

Log in

No account? Create an account

Previous 10 | Next 10

Feb. 6th, 2018

Утилита настройки устройств (devices tool)

Пора описать работу с этой утилитой, вот так она выглядит:



Ссылка на архив с утилитой (необходима Java - jre.1.7 или jre.1.8)
http://p5277.ru/distr/devices%20tool/dt5277.zip

Блок по середине, между блоком кнопок "Поиск устройств" и т.д. и выводом лога, может сильно отличаться и зависит от выбранного типа устройства.

И так по порядку:

1) Меню - пока только для вида, утилита еще в процессе создания, хватает сил только на поддержку минимально необходимого функционала.

2) USB порт - здесь мы должны выбрать нужный нам последовательный порт (и да, он может быть не только USB)
Кнопка обновить полезна, если Вы подключили новый 'USB свисток' уже при запущенной программе, эта кнопка обновит список таких устройств.

3) Адрес устройства, здесь мы задаем modbus адрес устройства, он может быть в пределах от 0 до 255 (вроде как вики подсказывает, что адреса с 248 зарезервированы и если появится необходимость их использовать, то лучше почитать что там в стандартах сказано). Да, 0 - широковещательный, т.е. все устройства реагируют на запросы с этим адресом, не стоит использовать когда на шине более 1 подчиненного устройства.
После выбора адреса происходит короткий опрос устройства для идентификации его типа, если устройство ответило и идентификация прошла успешно, то мы увидим название типа устройства рядом и сформированный блок в середине формы для данных с этого устройства.

4) Блок кнопок основных действий:
4.1) Поиск устройств - крайне необходима, когда мы не знаем на каких адресах сидят наши устройства. Утилита перебирает последовательно все адреса и выводит в лог информацию о найденных устройствах. В ней указан тип устройства и в том числе его адрес на шине, который после процедуры мы можем ввести в поле 'адрес устройства'.
Прогресс выполнения опроса отражен в нижней строке утилиты, там же с правой стороны есть кнопка остановки поиска.
4.2) Считать - считываем данные с выбранного устройства и заполняем ими форму.
4.3) Записать - аналогично, записываем данные с формы в ППЗУ устройства.
Записи подлежит только правая часть элементов формы.
4.4) Проверить - сравнивает правую часть элементов формы с данными на устройстве (не реализовано)
4.5) Посылает команду устройству выполнить полный сброс настроек. После чего устройству приписывается 1-ый адрес на шине.

5) Основной блок, разделен на две части, плюс имеет дополнение в виде блока просмотра истории событий и элементов непосредственного управления устройством (если это исполнительное устройство - управление)
Левая часть отображает не подлежащие записи данные, правая - подлежащие записи.

Т.е. в левой мы имеем как минимум два значения - версия прошивки и время работы с момента включения устройства. Также здесь отражаются показания устройства, проводимости, токи, температуры, влажности, состояние реле, количество записей в истории  и т.п.

В правом как минимум у нас адрес устройства, который мы можем легко поменять и записать кнопкой 'запись'. Утилита пока сама не меняет адрес устройства(п.2), это необходимо сделать вручную после записи.
Также там могут быть различные режимы работы устройства, как например режим управления, режим инициализации, режим работы светодиодов, различные корректировки показаний, коэффициенты, пороги срабатывания и прочие условия работы устройства.

Более подробно о дополнительных полях по каждому типу устройства нужно смотреть в описании устройства.
Нет информации - пишите, дополню.

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

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

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

7) Статус бар с полезной информацией и кнопкой отмены поиска устройств - сырой, в будущем приведу в порядок.

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

Feb. 1st, 2018

Мои устройства. Модуль для газоанализаторов (превый прототип)

photo_2018-02-01_01-11-42.jpg

Это модуль, в который, как я планирую, можно будет устанавливать датчики газа, такие как MQ-135, MQ-7 и им подобные.

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

Хотелось бы рассказать, чем мое решение отличается от, скажем, такого:



1) Основной плюс - Шина rs485, с протоколом схожим с modbus
2) Диапазон напряжения питания 9-24В
3) Прогрев датчика напрямую от шины (стабилизация питания через ШИМ МК), т.е. без использования стабилизатора с дополнительным охлаждением на плате (т.к. один прогрев требует 160мА)
4) Возможность подключения датчика температуры и влажности типа AM2301
5) Возможность подключения разных датчиков анализа газов (пока под вопросом)

*Стоит сказать, что у устройства достаточно хороший аппетит, около 200мА, из-за необходимости прогрева датчика.

Jan. 29th, 2018

Шина, и с чем ее едят.

Решил, что эта тема слабовато у меня описана.

На текущий момент, все мои устройства базируются на шине по стандарту RS485, который широко применяется в производственной автоматизации.
В данном случае используется 4-х жильный кабель, я стараюсь использовать цвета:
 - красный (питание, + , от 9 до 24 вольт)
 - желтый/зеленый (данные - A(+))
 - белый (данные - B(-))
 - черный/синий (питание, - )
*на платах я также подписываю где какой контакт.

На текущий момент устройства работают на часто используемой частоте 9600 бит/c, протокол близок к Modbus.
Насчет кабеля, я рекомендую использовать UTP-2 (две витых пары) либо UTP-4 (четыре витих пары), при этом на питание отвести две или даже три пары.
Стоимость такого кабеля где-то 5-10 рублей, максимальный ток на пару где-то 0.5-1 ампер (в среднем одно устройство требует 0.020А).
Решение не особо боится просадок по питанию, так как можно на вход подать до 24 вольт (рекомендую 12 вольт), при этом стабилизатору на платах достаточно 7 вольт.
Но, если у Вас длина кабеля пара - тройка сотен метров, при этом всего несколько подключенных устройств, то в принципе Вы можете использовать обычный 4-х жильный телефонный кабель, главное, чтобы напряжение не просело ниже 7 вольт.

Все устройства подключаются к шине параллельно, вот пример корректного подключения:

*на рисунке нет питания, только земля, и да, схема упрощена, при большой скорости передачи данных и/или больших расстояниях все заметно усложняется.
Вы можете найти в поисковике множество подобных картинок по ключевому слову rs485.

По поводу необходимости устанавливать терминаторы и подтягивать линию.
Как говорят различные источники, терминаторы нужно ставить на больших линиях либо на высоких скоростях передачи данных. Также обстоит дело и с подтяжками, защитами и т.п.. Т.е. если Вы решите использовать мое решение на больших расстояниях, либо больших скоростях, либо на открытом пространстве, где есть вероятность попадания молнии - то да, Вам нужно будет изучить подробнее стандарт rs485 и выполнить необходимые рекомендации (вряд ли при этом придется вносить изменения в сами устройства)
Что забыл - спрашивайте, дополню.

Jan. 28th, 2018

Три ИК приемника уходят в студию...

photo_2018-01-28_17-53-20.jpg

Ничего особенного, просто ИК приемники.

Чуть позже сюда добавлю детальную информацию.

* Набор пополнен

Jan. 26th, 2018

Управление через Telegram




Реализована возможность управлять устройствами через телеграмм.

Формат команд:
Выбор локации - пишем одним параметр имя локации, оно  может быть сокращено, регистр значения не имеет. Также бот понимает числа - идентификаторы.
Если бот не смог найти локацию, или под сокращение попадает несколько, то Вы получите либо полный список локаций, либо список удовлетворяющий введенной фразе соответственно.

Получение показаний - два параметра, имя помещения и имя устройства, принцип аналогичный локации.
Управление - три параметра, имя помещения, имя устройства и команда (к примеру вкл, выкл или число от 0 до 100 для задания мощности, к примеру, димеру)
* если необходимо указать канал, как например в многоканальном реле, то добавляем четвертый параметр - число от 1 до 16, по умолчанию используется первый канал.


Решение пока сырое, пока анализатор не умеет работать с именами состоящими из нескольких слов(если используется пробел), но можно воспользоваться идентификаторами. Еще вывод пока не полностью информативен, в будущем доделаю.
И конечно есть, что еще улучшать и дорабатывать, тем не менее базовый функционал реализован, можно пользоваться.

Jan. 25th, 2018

Реле 10А, вариант исполнения

Мопед не мой, я просто разместил объяву





Jan. 24th, 2018

Следующий пакетик 'запрещенного препарата'



Здесь пара реле 10А с датчиком тока и пара без датчика тока.
Как заявлено на реле - 10А 250В, т.е. она рассчитана на максимальную нагрузку в 2.5кВт, но я не стал бы сильно доверять китайцам, думаю 2кВт для нее самое то.

По поводу датчика тока, дискретизация в 114мА (со стандартным коэффициентом в 57, можно менять), ну и такая же ошибка, т.е. где-то точность измерения составляет грубо 30Вт.
Здесь не будет точных значений, по нескольким причинам:
- используется не самый лучший встроенный в МК АЦП(10бит);
- используется датчик тока на эффекте Холла, который легко подвержен электромагнитным наводкам (не забываем, у нас электромагнитное реле);
- нет вычислительной мощности для расчета тока умными и корректными формулами, здесь магия.

Что в итоге - в итоге эксперимент, результаты которого, меня как потребителя вполне устраивают.
Да, вряд ли получится определить подключен ли к такой розетке зарядное устройство для сотового телефона, но вот 40Вт лампу накаливания мое устройство уже достаточно точно определяет, при этом линейка измерения доходит до 5 кВт.

И как не похвастать размерами(ШВТ): 33x18x20.

Пока все. А да, уходит уже двум лицам, надеюсь им понравится моя игрушка ;)

Jan. 22nd, 2018

Прошивка релиз кандидат для 10А реле.

Управление:
1) К устройству можно подключить либо кнопку(без фиксации), либо выключатель(с фиксацией), либо сенсор касания (просто провод или металлическая площадка)
При этом будет выполняться команда инвертирования(т.е. вкл->выкл и выкл->вкл)
*Есть возможность настройки чувствительности сенсора.
2) Удаленное управление через шину, поддерживаются такие команды как вкл, выкл, инверировать
3) Таймер - также через шину можно задать таймер на отложенное выполнение команды. Таймер отсчитывает два периода - для выполнения основной команды и для выполнения обратной основной команде, к примеру: включить реле через 15мс и выключить ее через час. *Любая команда на реле отменяет действия таймера.
*Также, на случай отключения электропитания, устройству можно указать режим старта - вкл, выкл, последнее состояние.
*Реле имеет два контакта нормально закрытый и нормально открытый.

Съем показаний:
Устройство буду производить в двух вариантах - с датчиком тока и без него.
Соответственно с него можно будет получить логическое состояние реле и ток потребления(если есть датчик тока).
*Также есть возможность корректировки коэффициента, участвующего в расчетах силы тока при анализе амплитуды синусоиды.

Низкое энергопотребление:
Был реализован механизм, так как реле достаточно прожорливое(около 100мА при 5В), который изначально подает на реле максимально необходимое питание, а по истечению короткого времени его существенно снижает. Таким образом снижается потребление реле где-то в 2 раза, и тепловыделение на стабилизаторе питания.
*Этот функционал можно отключить.

Индикация:
На устройстве только один индикатор - реле включено, жестко подключено к реле и отдельно не управляется.

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

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

Вопросы надежности и безопасности:
При подаче питания, устройство приступает к работе спустя 1-5 секунд(время выбирается случайно при каждом старте), это сделано из-за особенностей запуска МК и для снижения пиковых нагрузок на сеть (если у Вас, к примеру, используется большое количество таких устройств с подключенными потребителями большой мощности, при этом устройства настроены на автоматическое включение при подаче питания).

Заключение:
Такое устройство думаю будет интересно там, где нужно управлять чем-то существеннее, чем лампами накаливания в 300Вт.
Не уверен, что это устройство вместится в Вашу розетку на стене, но вот где-то в гараже, на чердаке, в погребе и т.п. ее можно легко разместить в распределительной коробке.

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

Jan. 18th, 2018

Telegram

Добавил возможность информирования в мессенджер (p5277_bot).



Пока только информирование, бета версия.

При большом желании и наличии свободного времени можно будет реализовать управление устройствами через бота.
Но точно не в ближайшее время.

Jan. 10th, 2018

Мои устройства. Датчик температуры и влажности.

Новая версия



Используется последняя версия платы универсального модуля и свежая прошивка.
В этой версии прошивки включены управление светодиодами, аналогичное пердыдущим устройствам, и возможность задать смещение для температуры и влажности.
Датчик опрашивается устройством каждые 15 секунд, при этом мигает левый светодиод(в режиме 'активность').
Левый светодиод может также продолжительно гореть, если в течении 10 запросов не удалось опросить датчик.

Датчик можно разместить совместно с самим модулем(как показано на фото), но необходимо учитывать, что модуль немного греется.
Это может повлиять на показания датчика, я думаю максимальное отклонение будет в 1 градус Цельсия при расстоянии от платы модуля до корпуса где-то в 0.5см.
Если нужна точность (и при этом Вы решили использовать АМ2301), то лучше всего их все таки развести на небольшое расстояние и прикрепить к поверхности отдельно.

Утилита:
2018-01-11_12-12-33.png

И да, повторюсь, сам по себе датчик AM2301 не поддерживает паралельное подключение на шину нескольких штук,
Также как не позволяет корректировать показания, для решения этих задач я использую свой универсальный модуль.

Previous 10 | Next 10