Не дай себе засохнуть (окончание)… или о том, как программист создавал первое в своей жизни устройство на базе 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» — позволяет изменять состояние реле удаленного модуля

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


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение