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 доступно несколько плат расширения, вот некоторые из них:
- С GPRS-модулем SIM800L
- С контроллером сенсорных кнопок
- С GPS-приемником
- С GPS-приемником и LoRa трансивером
- С вибро-моторчиком, динамиком и датчиком пульса MAX30102.
Также доступно большое количество дополнительных простых модулей, которые подключаются с помощью комплектного кабеля: кнопка, барометр, потенциометр, фоторезистор и другие.
В качестве небольшого примера использования я набросал простенький скетч для управления радиореле с помощью облачной платформы blynk.
Код из видео.
Подводя итоги можно отметить, что T-watch довольно интересное и продуманное устройство c внушительным функционалом и потенциалом использования. Широкий набор дополнительных модулей значительно расширяет варианты использования.
Из минусов вначале я хотел отметить неполноту документации и небольшое количество примеров использования, но спустя некоторое время примеров стало гораздо больше, и, очевидно, если T-watch обретут некоторую популярность их станет еще больше.
У неопытных пользователей могут возникнуть некоторые затруднения с разработкой программной части и графического интерфейса, но в тоже время это может стать дополнительным стимулом для саморазвития. Ибо преодоление трудностей - высшее из наслаждений.
Конечно, для ношения непосредственно на руке T-Watch слишком громоздки и напоминают первые смарт-часы, которые появились на рынке несколько лет назад. Но вряд ли это можно отнести к минусу, так как варианты использования T-Watch не ограничиваются применением их только в качестве часов.
Как видим в T-Watch, реализованы практически все мои желания, но у моего проекта есть ключевые отличия, которые, надеюсь, когда-нибудь будут реализованы. Уже разработанное же ПО для T-Watch я планирую адаптировать для своего проекта.
На моей странице Github также можно найти несколько примеров для T-Twatch. В будущем, я надеюсь, их количество увеличится.










Комментарии
Отправить комментарий