Не дай себе засохнуть (окончание)... или о том, как программист создавал первое в своей жизни устройство на базе Arduino

Ранее в сериале:
Тут я рассказал, как создавал два, взаимодействующих между собой, электронных модуля, для обеспечения системы автоматического полива.
Тут я раскрыл тайны их внутреннего мира, т.е. программного обеспечения.
Вполне можно было бы на этом и остановиться, но, вкратце, пробежавшись по командам управления «домашним» модулем, я, конечно же, указал, как в дальнейшем им можно пользоваться, но, опять же, не рассказал, как пользуюсь ими сам, а это не есть хорошо в образовательном процессе. Поэтому, и пишу, дорогие читатели, эту главу, дабы, завершить описание моей системы, на том состоянии в котором она сейчас и прибывает. Очень надеюсь на её дальнейшее развитие, о котором я обещаю вас ставить в известность на страницах этого блога.

Часть 5. Наружка.

Все эти команды можно посылать через терминал последовательного порта на «домашний» модуль, этим управляя системой.


На настоящий момент, я не нашёл ни чего лучшего, для управления «домашним» модулем, как подключение его к персональному компьютеру. В этом есть несколько резонов:
— поскольку, настройка «будильников» не требует постоянного вмешательства в работу модуля, то достаточно один раз, подключить к ПК, и установить режимы работы, затем, отключив его от ПК, модуль будет функционировать автономно.
— поскольку, отсчет времени поддерживается в модуле за счёт работы RTC, нет необходимости в постоянной корректировки точного времени в случае, например, потери питания, т.е. достаточно единожды, подключив к ПК, настроить время на модуле RTC и система будет корректно востонавливать свою работу.
— если необходима диагностика включения или выключения реле на «внешнем» модуле, опять же достаточно через порт RS232 ПК послать на «домашний» модуль соответствующую команду и убедиться или наоборот в полной функциональности системы.
— «домашний» модуль получился довольно компактный и простой, что облегчает его расположение в доме.

Это, разумеется, далеко не все резоны в пользу управления «домашним» модулем через ПК. Согласен, что отсутствие постоянного визуального отображения состояния работы системы, как то напрягает, но, как говорится «лиха беда — начало» и при наличии свободного времени, я не собираюсь сидеть, сложа руки, одним словом будет!

Ну, а пока, представляю вашему вниманию, мой код программы, написанный на языке C# под Windows, для управления «домашним» модулем.
Опять же, за основу была взята программа из статьи «Настройка модуля часов реального времени RTC для Arduino», мною переработанная и дополненная, огромное спасибо её авторам или автору, кстати, кому интересен оригинал этой статьи, то вот она пожалуйста RTCSetup. В этой статье, довольно детально разбирается, как настраивать модуль RTC. От себя же, я добавил работу с «будильниками» (установка, сброс, просмотр, изменение и получение текущего значения) и теста переключения реле на внешнем модуле, так что и прибыль будем делить 1:2, ну мне, конечно, больше. Шутка!
Довольно трёпа переходим непосредственно к программе.Собственно говоря, и говорить то особо не о чем, всё и так видно и, надеюсь, что понятно.
  • Раздел «RTC» — позволяет подключиться к соответствующему порту на который установлен «домашний» модуль и при нажатии на соответствующую зелёную стрелку вверх, запросить текущее на «домашнем» модуле время.
  • Разделы «Custom Time» и «System Time» предназначены для установки и загрузки в «домашний» модуль даты и времени, чтобы синхронизировать RTC «домашнего» модуля.
  • Раздел «Alarm Time» — предназначен для установки «будильников». Соответственно времени срабатывания, дня недели, устройств, которые необходимо включить, продолжительности их включения и признак активности конкретного будильника. Зачем нужен признак активности, я, пока не знаю, но писал это вдохновлённый будильником на iPhone. Тут присутствуют кнопки «Изменить» и «Добавить». «Изменить» изменяет содержимое отмеченного в списке из «Alarm List» будильника. «Добавить» — для добавления в конец списка нового будильника.
  • Раздел «Alarm List» — отображает записанные в память «домашнего» модуля будильники. Позволяет их редактировать и удалять. А так же отображает ближайший на текущий день активный будильник.
  • И, наконец, раздел «Test nRF24» — позволяет изменять состояние реле удаленного модуля

Ссылка на исходники на ГитХабе
В общем и всё, осталось лишь запустить программу и начать ею пользоваться. Удачи, ваш покорный слуга.

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.