Содержание статьи
Содержание

Главная / Проекты с Arduino / LCD часы, сигнализация и таймер с детектором движения на Arduino

LCD часы, сигнализация и таймер с детектором движения на Arduino

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

Необходимые материалы для проекта

Фото деталей и узлов для проекта
Arduino Uno
LCD шилд
Модуль часов реального времени
Коробка
Зуммер
Датчик движения
Коннекторы
Джек
Переходник для батарейки
Блок питания

Сборка модуля часов реального времени

Порой модуль часов реального времени (например, от компании Adafruit DS1307), поставляется в виде отдельных компонентов. Сборка не должна вызвать проблем. Тем более, есть отличная инструкция по использованию и сборке модуля часов реального времени. Как правило, батарейка идет в комплектации модуля. Работать от одной батарейки он будет не меньше трех лет.

Коннектор для питания

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

Батарейка (крона) на 9 В просто устанавливается на заднюю часть бокса.

Питание Питание 2

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

Подсоединяем провода ко всем элементам

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

Фото деталей подключенных узлов
Часы реального времени с коннекторами
ПИР датчик движения с коннекторами
Зуммер с коннекторами
Вся обвязка коннекторами

Подключаем все к LCD шилду

На LCD шилде 5 рядов контактов, которые соответствуют пинам 1-5 на плате Arduino. Есть контакт для 5v, GND и сигнал. Эти контакты и использовались для подключения. Для обмена данными с часами реального времени, датчиком и зуммером использовались аналоговые пины на Arduino. Естественно, датчик и часы реального времени подключаются к питанию и земле.

LCD шилд LCD шилд и сенсоры LCD шилд и вся обвязка

Установка в коробку

Следующий шаг - упаковка нашего чуда в отдельный бокс. Сначала положите в коробку кабели, которые тянутся от LCD шилда.

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

После этого устанавливаем на Arduino наш LCD шилд. Кабели огибают плату с правой стороны (смотрите на фото ниже).

Модуль часов реального времени отлично устанавливается в левом нижнем углу коробки. Для крепления тоже использовался один винт. Подобная установка дает возможность подключить 2.1 мм джек к Arduino.

Датчик движения (PIR) установлен таким образом, чтобы его можно было легко и быстро снять, так как он мешает подключению USB кабеля к Arduino.

Фото установки
Установка в коробку 1
Установка в коробку 2
Установка в коробку 3
Установка в коробку 4
Установка в коробку 5
Установка в коробку 6
Установка в коробку 5
Установка в коробку 6

Программируем часы

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

На LCD шилде предусмотрено 5 программируемых кнопок. Они используются для установки различных режимов работы часов. Зуммер отрабатывает каждый раз, когда вы нажимаете кнопки. Когда срабатывает будильник, зуммер подает несколько сигналов.

Скетч для Arduino

За основу программы был взят скетч от Adafruit, который разработан для модуля часов реального времени. В этом скетче используется их же библиотека RTClib. Этот скетч вы можете найти на GitHub.

После этого добавлен кусок кода из скетча от DFRobot для LCD шилда (включая опцию управления кнопками). Этот скетч можно скачать здесь.

Ну и, конечно же, добавлен кусок кода непосредственно под наш проект часов-будильника. Окончательная версия скетча доступна по ссылке.

На фотографиях ниже показаны различные режимы работы наших часов с LCD шилдом.

Фото разных режимов работы
Фото разных режимов работы 1
Фото разных режимов работы 2
Фото разных режимов работы 3
Фото разных режимов работы 4
Фото разных режимов работы 5
Фото разных режимов работы 6
Фото разных режимов работы 7
Фото разных режимов работы 8
Фото разных режимов работы 9

Функции кнопок

На LCD шилде кнопки подписаны (смотрите на фото). Первые пять из шести доступных кнопок (button) были запрограммированы следующим образом:

Кнопки на LCD шилде

Кнопка #1 (подписана SELECT) - это кнопка Menu. Эта кнопка отвечает за отображение листаемого списка доступных функций (таймер, установка будильника).

Кнопка #2 (подписана LEFT) - кнопка Select. Служит для выбора функции. Примечание: также используется для инкремента на 10 , когда выбраны часы, минуты и т.п.

Кнопки #3 и 4 (подписаны UP и DOWN) - кнопки Increment и Decrement (инкремент и декремент). Используются для уменьшения и увеличения часов и минут при настройке таймера или будильника. Используются также для переключения между временами суток AM и PM.

Кнопка #5 (подписана RIGHT) - GO! Используется для принятия выбранного значения (например, настроенных минут или часов).

Кнопка #6 (отмечена RST) - Reset, которая перезагружает наш Arduino.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!