Умные часы (Smart Watch) на основе Arduino, OLED дисплея и смартфона

В этой статье мы рассмотрим создание умных часов (Smart Watch) на основе платы Arduino, OLED дисплея и смартфона на Android. На OLED дисплее мы будем показывать основную информацию со смартфона на Android, такую как время, дата, уровень сигнала и уровень заряда батареи. В дальнейшем этот проект умных часов на Arduino можно усовершенствовать, добавив вывод на экран OLED дисплея входящих звонков, сообщений и многого другого.

Внешний вид умных часов на основе Arduino, OLED дисплея и смартфона

В этом проекте мы будем собирать необходимую нам информацию на смартфоне с помощью специального приложения для него и затем передавать эту информацию на OLED дисплей с помощью Bluetooth модуля и платы Arduino Pro Mini. Смартфоны на Android уже имеют в своем составе Bluetooth модуль, а для приема этой информации на плате Arduino мы можем использовать Bluetooth модули HC-05 или HC-06.

От приложения на Android данные передаются плате Arduino в виде строк. Плата Arduino декодирует принимаемые строки, записывает их во временные переменные и отображает на экране ЖК дисплея. Затем мы используем графические возможности OLED дисплея чтобы отображать эти данные в удобной форме. Если раньше вы никогда не работали с OLED дисплеями, то вначале рекомендуем прочитать статью о подключении OLED дисплея к плате Arduino.

Необходимые компоненты

  1. Плата Arduino Pro Mini (вы можете использовать и другие типы плат Arduino) (купить на AliExpress).
  2. 128×64 OLED display Module (SSD1306) – модуль OLED дисплея.
  3. Bluetooth модуль HC05/HC06.
  4. Соединительные провода.
  5. 3.7v Li-On Battery (литий-ионная батарея).
  6. Перемычка (Jumper).

Немного о принципах работы OLED дсиплея

Термин OLED расшифровывается как “Organic Light emitting diode”, что в переводе означает органический светоизлучающий диод. Подобные светодиоды применяются в большинстве телевизоров, выпускаемых в настоящее время. В данном проекте мы будем использовать монохромный 4-контактный OLED дисплей SSD1306 с диагональю 0.96”. Этот дисплей может работать только по протоколу I2C. Внешний вид данного дисплея и назначение его контактов показаны на следующем рисунке и таблице.

Внешний вид OLED дисплея SSD1306

Наименование контакта Назначение контакта
VCC 3.3v
GND земля
SDA SDA (Physical pin 3)
SCL SCL (Physical pin 5)

Для работы с OLED дисплеями сообществом Arduino разработано множество библиотек, мы этом проекте применили одну из этих библиотек — Adafruit_SSD1306 Library. Она достаточно проста в использовании и имеет много возможностей для работы с графикой. Также в этом проекте нам понадобится еще одна библиотека, которую необходимо будет скачать и установить — GFX Graphics Library.

Работа схемы

Схема проекта умных часов на основе платы Arduino показана на следующем рисунке.

Схема проекта умных часов на основе платы Arduino

Внешний вид собранной конструкции проекта умных часов показан на следующем рисунке.

Внешний вид собранной конструкции проекта умных часов

В представленной схеме плата Arduino Pro Mini используется для управления всеми операциями. Причиной, по которой мы выбрали для этого проекта именно плату Arduino Pro Mini, является то, что эта плата может работать от напряжения источника питания 3.3v. OLED дисплей и Bluetooth модуль HC-06 также могут работать от напряжения 3.3v, поэтому всю схему в нашем случае можно запитать от литий-ионной батареи на 3.7v. Подобная батарея отличается небольшим весом, поэтому она очень удобна для применения в различных носимых устройствах.

Но чтобы наша батарея на 3.7 В не повредила компоненты схемы, работающие от 3.3v, мы подаем напряжение от этой батареи на контакт raw платы Arduino pro mini и в дальнейшем в плате это напряжение преобразуется в напряжение 3.3v.

Приложение для Android для передачи данных Arduino при помощи Bluetooth

Специально для проекта этих умных часов мы создали приложение для Android в среде Android Studio, которое можно скачать по этой ссылке. После скачивания установите это приложение в свой смартфон на Android, включите Bluetooth и установите связь с модулем HC-06. По умолчанию пароль для HC-06 — 1234 или 0000. При желании вы можете использовать любое другое подобное приложение из магазина PlayStore.

На следующем рисунке показан пример работы данного приложения (оно называется OLED) когда оно установило связь с модулем HC-06.

Пример работы приложения для Android для нашего проекта

Это приложение может показывать все основные параметры работы смартфона как показано на следующем рисунке.

Отображаемые приложением параметры смартфона

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его основные фрагменты.

Сначала скачайте и установите необходимые для работы программы библиотеки по следующим ссылкам:
1. Adafruit Library.
2. GFX Graphics Library.

Затем в программе необходимо подключить использование этих библиотек.

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

После этого запрограммируем функцию для аналоговых часов.

Также запрограммируем функцию для цифровых часов.

Отображение значения времени в нашем проекте умных часов

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

Отображение заряда батареи в нашем проекте умных часов

Следующая функция будет отображать уровень сигнала сети в цифровой и графической форме.

Отображение уровня сигнала сети в нашем проекте умных часов

Затем в функции setup мы должны инициализировать все устройства, используемые в нашем проекте.

Затем в функции loop мы будем принимать данные от смартфона, декодировать их и давать команды на отображение необходимой информации на экране OLED дисплея.

Исходный код программы (скетча)

Код программы достаточно большой, но по сути он очень простой и прямолинейный – мы надеемся что его понимание не вызовет у вас затруднений.

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
50 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *