TTGO T-Watch - конструктор смарт-часов на ESP32

Небольшая предыстория.
Когда я только начинал заниматься ардуино, мне в руки попал 0,96” OLED дисплей и самой первой идеей было сделать смартчасы на его основе. По задумке предполагалось, что в часах будет множество датчиков: барометр, термометр, гироскоп, пульсометр, Bluetooth и вообще куча всего. С получением небольшого опыта работы с электроникой я понял, что это устройство будет размером с кирпич, работать от силы час и вообще вряд ли мне удастся все это запрограммировать и заставить работать вместе.

Прошло время: появился ESP8266, затем ESP32, в продаже появились миниатюрные IPS дисплеи с разрешением 240*240, стали доступны сервисы проектирования и производства печатных плат, я немного поднаторел в программировании и пайке SMD и идея создания программируемых смартчасов забила с новой силой. На волне энтузиазма я набросал вариант печатной платы, заказал необходимые компоненты, появилось несколько ответвлений проекта с различными дисплеями: на базе электронных чернил, с круглым дисплеем, с трансфлективным дисплеем. Стоит ли говорить, что проект я так и не довел до ума: моего уровня знаний электроники недостаточно, чтобы спроектировать энергоэффективное устройство, а уровень программирования по-прежнему не позволяет реализовать все желания. Но проект не умер, а пока законсервирован.

Рабочий вариант платы часов на базе ESP32

Наверняка идея создания подобного устройства возникала не только у меня, и его появление было лишь вопросом времени. Китайская компания LilyGo занимается производством большого числа платформ для разработчиков в основном на базе ESP8266/ESP32 под маркой TTGO. Одним из последних представленных устройств в линейке TTGO является T-Watch – смартчасы на базе ESP32.

Характеристики T-Watch.

  • Чипсет ESP32, двухъядерный MCU
  • Флэш-память QSPI флэш-память 16 MB
  • SRAM 520 КБ SRAM/PSRAM 8 Мб
  • Кнопки Кнопка включения, Пользовательская кнопка (IO36)
  • USB-ttl конвертер CP2104
  • Интерфейсы UART, SPI, SDIO, I2C, светодиодный PWM, PWM, I2S, IRGPIO, емкостный тачскрин, ADC, DAC, LNA
  • Рабочее напряжение 2,7-3,6 В
  • Рабочий ток 70mA
  • Ток в спящем режиме 1mA
  • Диапазон рабочих температур -40 ℃ ~ + 85 ℃
  • Размеры и Вес 46,47*43*20,4 мм 43,19 г
  • Дисплей: 1,54 дюймовый IPS дисплей разрешением 240*240 пикселей с емкостным сенсором
  • Датчики: трехосевой акселерометр BMA423, встроенный алгоритм подсчета шагов, распознавание/отслеживание активности, расширенное распознавание жестов.
  • Часы RTC: PCF8563
  • Аккумулятор LiPo емкостью 180 mAh
  • Контроллер питания AXP202


Принципиальная схема T-watch

Распиновка платы T-watch


Увидев подобное устройство, я сразу загорелся желанием его заполучить и использовать для своего проекта. Однако цена в 40$ для меня несколько высока, чтобы отказаться от покупки других запланированных игрушек. Но мне посчастливилось стать участником программы тестирования T-Watch и получить их безвозмездно, то есть даром.

T-watch поставляется в фирменной коробке

В комплекте:

  • сами часы
  • кабель USB-USB-C
  • кабель для подключения дополнительных модулей
  • плата для прототипирования
  • мануал
  • салфетка
  • отвертка и набор винтов для крепления дополнительной платы
  • ремешок


Слева на корпусе расположен разъем для подключения дополнительных модулей по шине I2C, справа разъем USB-C и две кнопки: сверху кнопка питания, ниже - пользовательская, снизу расположен слот для micro-sd, сверху решетка динамика. На нижней крышке расположено отверстие для датчика пульса.

Базовая плата содержит слот для micro-SD, вибро-моторчик и динамик.

Дополнительная плата для прототипирования помимо слота для micro-SD содержит два 8-ми пиновых разъема с шагом 2,54 мм. на которые выведены порты GPIO. Следует учитывать, что пины GPIO выведены по обе стороны платы и занимают пространство для ремешка.

Вид сверху

Вид снизу

Так T-watch выглядят на руке

Чтобы включить T-watch необходимо зажать верхнюю кнопку на несколько секунд.

T-watch поставляются с загруженной демо-программой самотестирования, которая позволяет проверить базовые функции: работу тачскрина, кнопок, подсчет шагов, сканирование Wi-Fi.
Для дальнейшей работы необходимо обновление прошивки.

Документацию и примеры программ для среды Arduino IDE можно найти на github.

Демо-программа

Прошивка основана на библиотеке lvgl, в ней реализованы базовые функции работы с дисплеем и тачскрином, часами реального времени, акселерометром, менеджером питания AXP202 и micro-sd. Данная прошивка также является скорее демонстрационной и работает не совсем стабильно - устройство часто перезагружается.


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

Интересной особенностью T-watch является наличие встроенного многоканального программируемого чипа управления питанием AXP202. API библиотеки AXP202X позволяет управлять включением и выключением каждого канала питания, считывать уровень заряда батареи, состояние зарядки и даже напрямую отключать питание, как при нажатии хардверной кнопки питания.

Важным параметром использования T-watch именно как часов является энергопотребление. Производителем заявлено потребление около 70 мА при нормальной работе и 1 мА в режиме глубокого сна. Для выключения и включения t-watch необходимо длительно зажать кнопку питания, для перехода в режим глубокого сна необходимо длительное нажатие пользовательской кнопки. По моим замерам потребление при нормальной работе составляет 60-80 мА, при уменьшении яркости подсветки средствами интерфейса демо-прошивки ток уменьшается до 55 мА. В режиме сна потребление меньше 1 мА, при этом, если коснуться дисплея оно увеличивается до 4 мА, вероятно при этом обрабатывается нажатие на сенсорный экран. При выходе из режима сна не сохраняется посчитанное количество шагов и прочие настройки.

В выключенном состоянии потребление составляет менее 0,3 мА и теоретически аккумулятора емкостью 180 мАч может хватить на 25 дней.

Производителем не описан другой режим энергопотребления, в которой t-watch переходят при кратковременном нажатии на кнопку питания. Потребление при этом составляет порядка 4 мА. При выходе из этого режима настройки и прочие параметры сохраняются.

Демо-программа позволяет оценить напряжение и ток на шине usb и на шине аккумулятора.

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

T-Watch напоминает другой проект на ESP32 – M5Stack, но у T-Watch есть ряд ключевых отличий:
  • IPS дисплей большего разрешения с резистивным тачскрином вместо TFT у M5Stack.
  • Более компактные размеры: 46,47*43*20,4 мм. Вес 43,19 г.
  • Наличие контроллера питания AXP202

Для T-Watch доступно несколько плат расширения, вот некоторые из них:
  1. С GPRS-модулем SIM800L
  2. С контроллером сенсорных кнопок
  3. С GPS-приемником
  4. С GPS-приемником и LoRa трансивером
  5. С вибро-моторчиком, динамиком и датчиком пульса MAX30102.

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

В качестве небольшого примера использования я набросал простенький скетч для управления радиореле с помощью облачной платформы blynk.



Код из видео.

Подводя итоги можно отметить, что T-watch довольно интересное и продуманное устройство c внушительным функционалом и потенциалом использования. Широкий набор дополнительных модулей значительно расширяет варианты использования.

Из минусов вначале я хотел отметить неполноту документации и небольшое количество примеров использования, но спустя некоторое время примеров стало гораздо больше, и, очевидно, если T-watch обретут некоторую популярность их станет еще больше.

У неопытных пользователей могут возникнуть некоторые затруднения с разработкой программной части и графического интерфейса, но в тоже время это может стать дополнительным стимулом для саморазвития. Ибо преодоление трудностей - высшее из наслаждений.

Конечно, для ношения непосредственно на руке T-Watch слишком громоздки и напоминают первые смарт-часы, которые появились на рынке несколько лет назад. Но вряд ли это можно отнести к минусу, так как варианты использования T-Watch не ограничиваются применением их только в качестве часов.

Как видим в T-Watch, реализованы практически все мои желания, но у моего проекта есть ключевые отличия, которые, надеюсь, когда-нибудь будут реализованы. Уже разработанное же ПО для T-Watch я планирую адаптировать для своего проекта.

На моей странице Github также можно найти несколько примеров для T-Twatch. В будущем, я надеюсь, их количество увеличится.

Комментарии

Популярные сообщения из этого блога

Maixduino быстрый старт

OpenMV - "Ардуино" для машинного зрения