Умная техника своими руками: поэтапное создание смарт-часов на ESP8266

Ещё в 1972 году компания Hamilton Watch разработала первые умные часы под маркой Pulsar. Изначально у таких часов было довольно мало вычислительной мощности. Её хватало только на калькуляторы, игровые устройства и тому подобные незамысловатые гаджеты. Но с развитием технологий мощность начала стремительно увеличиваться. Современные смарт-часы — это полноценные компьютеры. Некоторые могут работать автономно, а другие функционируют только в сопряжении со смартфоном.

В этой статье будет описан принцип создания собственных смарт-часов на базе популярного микроконтроллера ESP8266.

Определение функциональности часов

В этой статье мырассмотрим часы, которые смогут выводить текущее время и дату, отображать погоду в вашем городе и позволят удалённо управлять Wi-Fi реле. Это означает, что прямо с часов вы сможете управлять любым прибором, подключённым к розетке, будь то музыкальный центр или электрочайник.

Чтобы получать текущее время, необязательно использовать модуль реального времени. Если смарт-часы будут иметь доступ к интернету, то понадобится ближайший NTP-сервер. С его помощью можно достаточно точно узнать текущее время. Чтобы контролировать Wi-Fi реле в часах, будет использоваться Blynk.

Blynk — это облачный сервис, позволяющий с помощью приложения для Android или iOS контролировать устройства на Arduino, Raspberry Pi или же, в данном случае, ESP8266.

Подбор элементов

В часах элементами управления будут 3 тактовые кнопки. Экран тут используется доступный — двухцветный OLED 0’96. Для питания нужен аккумулятор, а для зарядки — специальный контроллер. В этих часах используется литий-ионный аккумулятор и соответствующий для него контроллер TP4056.

Не стоит забывать, что ESP8266 работает на 3-вольтовой логике. Для получения необходимого напряжения питания можно использовать любой доступный стабилизатор напряжения на 3,3 В. Остаётся лишь немного деталей: разъём для зарядки, переключатель, несколько светодиодов, набор резисторов и пара конденсаторов.

Необходимые для сборки часов элементы

Необходимые для сборки часов элементы

Создание и распайка печатной платы

Если хотите, чтобы итоговый вариант часов был надёжным и компактным, лучше всего распаять часы на печатной плате. Для создания рисунка печатной платы подойдут, к примеру, Sprint Layout или же EasyEDA.

Печатная плата в EasyEDA

Вы можете создать печатную плату в домашних условиях либо заказать её у специализирующихся сервисов — те же EasyEDA или JLCPCB. К этим смарт-часам в свободном доступе уже есть Gerber PCB файлы печатной платы.

После получения/создания платы стоит распаять на ней все компоненты. Монтаж SMD компонентов удобнее делать паяльной пастой и паяльным феном. Но такую работу можно будет выполнить и обычным паяльником с тонким жалом.

Процесс распайки элементов на печатной плате

Подготовка прошивки часов

После того, как все компоненты будут распаяны, можно приступить к программной части. Вначале следует разобраться с API для получения погоды. К примеру, можно использовать Weather API Yahoo.

Примечание С января 2019 года процесс работы с Weather API Yahoo немного изменился. Однако API всё ещё в бесплатном доступе. О том, как получить доступ, детально расписано на их странице.

После получения ссылки с API можно приступить к прошивке микроконтроллера. Сам скетч для Arduino можно взять здесь.

В первую очередь подставьте ваш код аутентификации Blynk в char auth[]. Этот код будет выслан вам на почту сразу после создания нового приложения в Blynk.

Затем введите SSID и пароль от вашей точки доступа Wi-Fi в char* ssid и char* password соответственно.

Скопированную из Weather API ссылку необходимо вставить в const String url.

В BLYNK_CONNECTED() можно вставить код аутентификации Blynk другого ESP модуля, управляющего электрическим прибором (если такой имеется). Этот процесс можно увидеть в видео о создании Wi-Fi реле. И под конец не забудьте в TimeChangeRule указать параметры вашего часового пояса (в методе tellTime()).

Прошивка микроконтроллера

Теперь в Arduino IDE нужно установить все необходимые библиотеки:

  1. Time.h и TimeLib.h.
  2. Timezone.h.
  3. SSD1306.h и SSD1306Wire.h.
  4. NTPClient.h.
  5. ESP8266WiFi.h и WifiUDP.h.
  6. Последняя версия Blynk.

Чтобы прошить ESP8266, нужно подключить его к мосту USB-UART. Все необходимые контакты уже выведены на торец печатной платы. Обратите внимание, что RX контакт одного подключается к TX контакту другого и наоборот. Более подробно о прошивке микроконтроллеров серии ESP8266 можно почитать тут:

Потом в Arduino IDE нужно будет выбрать текущую плату и COM-порт. Зажав кнопку flash на микроконтроллере, начните прошивку. После удачной прошивки остаётся лишь присоединить аккумулятор и ремешок.

Включите часы. Должна высветиться надпись «Connected to Wi-Fi». Если это так, то микроконтроллер прошит, а значит, ваши смарт-часы готовы.

Смарт-часы на ESP8266

При нажатии на среднюю кнопку на часах будет отображаться текущая дата, время и температура. Две боковые кнопки управляют двумя подключёнными к Wi-Fi реле электрическими приборами.

Не смешно? А здесь смешно: @ithumor