Справочник программиста Ардуино C++

Современные и компактные наручные часы на Ардуино

На нашем сайте было написано уже много уроков по созданию различных часов на основе Ардуино и микроконтроллеров - и самые недорогие часы, и цифровые часы на ATMega328, и даже самые стильные электронные часы. Сегодня мы сделаем современные, компактные и удобные наручные часы на основе платы Sparkfun Pro Micro и дисплея ST7789.

Шаг 1. Комплектующие

Для того, чтобы сделать компактные наручные часы на основе Ардуино или аналогов нам понадобятся следующий набор комплектующих:

Плата Arduino

На этот раз мы используем плату Sparkfun Pro Micro 3.3 V 8 MHz.

Дисплей

Используем ST7789 1.3" IPS LCD.

Литий-полимерный аккумулятор

Возьмем для часов 301420 LiPo.

Зарядник LiPo

Используем плату для зарядки LiPo 15 х 15 мм.

Чип RTC

На этот раз мы используем DS3231M, это встроенный кварцевый генератор, никаких дополнительных компонентов не требуется.

Батарея RTC

Необязательно, только если вы хотите сохранить время, даже если батарея LiPo разряжена. MS412FE - это крошечная перезаряжаемая батарея емкостью 1 мАч, согласно спецификации RTC, 1 мАч может сохранять время в течение многих дней.

Ремешок для часов

Самый простой и недорогой вариант - заказать ремешок для часов из ткани шириной 20 мм.

Дополнительно

Дополнительно могут пригодиться, например, диод 1N5822, четыре 6 мм винта M2, лента из медной фольги и несколько проводов.

Шаг 2. Фиксируем плату и дисплей

Используйте небольшой кусок прозрачного пластика как на фото выше, чтобы скрепить вместе Pro Micro и дисплей.

Шаг 3. Подключаем землю

Прочитайте технические характеристики ЖК-дисплея, предоставленные вашим поставщиком.

Отрежьте немного ленты из медной фольги, соедините все выводы GND (земля) и отрицательные выводы дисплея и закрепите на пластине FPC. Затем паяем контакты с медной фольгой.

Шаг 4. Питание

Подсоедините выводы GND платы к медной фольге. Подключите контакты Vcc к выводу Vcc дисплея.

Шаг 5. Подключаем выводы дисплея

Вот краткое описание всех соединений:

LCD  -> Arduino
LED+ -> GPIO 10
SDA  -> GPIO 16(MOSI)
SCL  -> GPIO 15(SCLK)
RST  -> GPIO 18(A0)
DC   -> GPIO 19(A1)
CS   -> GPIO 20(A2)

Шаг 6. Удаляем индикатор питания

Индикатор питания всегда включен и потребляет более 1 мА непрерывно, поэтому лучше его убрать. Нужно распаять и аккуратно снять светодиод.

Шаг 7. Подключаем LiPo батарею

Вот краткое описание всех соединений:

Плата зарядки +ve      -> Pro Micro J1 коннектор рядом с USB сокетом (5V)
Плата зарядки -ve      -> Pro Micro GND пин
Плата зарядки Батарея +ve -> LiPo +ve -> 1N5822 диод -> Pro Micro Raw Pin
Плата зарядки Батарея -ve -> LiPo -ve

Большинство плат зарядки LiPo лучше использовать в качестве входа 5В. Тем не менее, плата Pro Micro не обеспечивает вывод USB 5В. К счастью, разъем J1 рядом с USB-разъемом на самом деле подключен к контакту USB 5В. Внимание! Не паяйте 2 разъема вместе.

Шаг 8. Подключаем RTC

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

DS3231M pin 2 (Vcc)  -> плата Vcc
DS3231M pin 5 (GND)  -> плата GND, MS412FE RTC батарея -ve
DS3231M pin 6 (VBAT) -> MS412FE RTC батарея +ve
DS3231M pin 7 (SDA)  -> плата GPIO 2 (SDA)
DS3231M pin 8 (SCL)  -> плата GPIO 3 (SCL)

Шаг 9. Подключаем датчик движения

Мы можем использовать 2 датчика вибрации в качестве датчика движения, чтобы активировать "пробуждение" платы. Однако в часах нет места для установки двух 5-миллиметровых датчиков вибрации. Мы пытались заменить на один 3 мм датчик вибрации и тестировали несколько дней. Но это приводит к неверному пробуждению часов и батарея разряжается в течение дня.

Шаг 10. Программируем

Если вы этого еще не сделали - скачайте и установите Arduino IDE.

Добавить поддержку Sparkfun Pro Micro

Следуйте инструкциям по установке, чтобы добавить поддержку плат Sparkfun: https://github.com/sparkfun/Arduino_Boards

После установки поддержки не забудьте выбрать правильную плату в Arduino IDE:

Сервис -> Плата -> SparkFun Pro Micro (Tools -> Board -> SparkFun Pro Micro)

Сервис -> Процессор -> ATmega32U4 (3,3 В, 8 МГц) (Tools -> Processor -> ATmega32U4 (3.3V, 8MHz))

Библиотека Adafruit RTClib

Используйте Arduino IDE Library Manager для установки RTClib: https://www.arduino.cc/en/guide/libraries

Библиотека Arduino GFX

Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/moononournation/Arduino_GFX.git

Если вы никогда этого не делали, то просто добавьте библиотеку из GitHub, - нажмите зеленую кнопку «Клонировать или скачать», а затем «Скачать ZIP». Далее в Arduino IDE выберите меню: Эскиз -> Включить библиотеку -> Добавить библиотеку .ZIP ... -> выберите загруженный файл ZIP (англ.: Sketch -> Include Library -> Add .ZIP Library... -> ZIP).

Библиотека LowPower

Добавьте библиотеку Arduino_GFX в Arduino IDE: https://github.com/rocketscream/Low-Power.git

Установка такая же, как описано выше.

Основной код часов Arduino  - Watch Core

Основной код наших часов Ардуино можно скачать по ссылке: https://github.com/moononournation/ArduinoWatch.git. Также вы можете скачать ZIP-архив часов ниже:

Пожалуйста, используйте Arduino IDE, скомпилируйте и загрузите RTClibSetRTC.ino, чтобы инициализировать время в RTC. А затем скомпилируйте и загрузите Arduino_Watch.ino.

Шаг 11. Печатаем корпус на 3D-принтере

Скачать схему и проект корпуса можно по ссылке: https://www.thingiverse.com/thing:3799868

Шаг 12. Итоговый результат

Теперь вы можете показать то, что вы сделали своим друзьям! Кроме того, вы также можете:

  • запрограммировать и создать свой собственный циферблат;
  • добавить больше датчиков или компонентов, чтобы они стали, например, умными часами;
  • создать свой собственный корпус для часов.

/ 16.08.2019

Ардуино+