На нашем сайте было написано уже много уроков по созданию различных часов на основе Ардуино и микроконтроллеров - и самые недорогие часы, и цифровые часы на 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. Итоговый результат
Теперь вы можете показать то, что вы сделали своим друзьям! Кроме того, вы также можете:
- запрограммировать и создать свой собственный циферблат;
- добавить больше датчиков или компонентов, чтобы они стали, например, умными часами;
- создать свой собственный корпус для часов.