Arduino Apple Watch
Компоненты и расходные материалы
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 4 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
Необходимые инструменты и машины
![]() |
| |||
![]() |
| |||
|
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Мне нужны были умные часы, которые показывали бы мне уведомления с iPhone, были достаточно маленькими, чтобы их можно было носить, и имели аккумуляторную батарею, которой хватало бы как минимум на день. Я создал свои собственные часы Apple на базе Arduino. Это умные часы на базе Arduino mini pro, которые подключаются к iPhone через Bluetooth. Порт USB-micro подключается к аккумулятору, что делает зарядку легкой и простой. Провода на передней панели представляют собой сенсорные кнопки, которые распознают прикосновение пальца к ним, что позволяет взаимодействовать с часами.
Часы автоматически синхронизируют время со временем на iPhone при получении нового уведомления. Это делает часы более надежными и менее чувствительными к задержкам в Arduino. Через 10 секунд экран выключится в целях экономии заряда батареи. Экран просыпается при нажатии средней кнопки или при получении нового уведомления.
Я наткнулся на страницу Люка Брендта (http://lukeberndt.com/2014/ios-notifications-with-arduino/) и увидел, что он создал то же самое, что и я, но мне нужно, чтобы устройство было меньше и носимый. В этом проекте я использую библиотеку ANCS Arduino Брендта. ANCS расшифровывается как Apple Notification Center Service, описанный ниже от Apple. «Цель службы Apple Notification Center Service (ANCS) - предоставить аксессуарам Bluetooth (которые подключаются к устройствам iOS через канал Bluetooth с низким энергопотреблением) простой и удобный способ доступа ко многим видам уведомлений, которые создаются на устройствах iOS».



Ниже приведено руководство, чтобы вы могли собрать эти умные часы самостоятельно.
Шаг 1. Сборка электрического оборудования
Как видно на принципиальной схеме, необходимо соединить много проводов, и все компоненты должны быть расположены близко друг к другу, что создает проблему.
После нескольких итераций я придумал эти шаги, чтобы упростить сборку. Предлагаю посмотреть на картинки, как я решил некоторые проблемы с подключением проводов.
1. Подключите Bluefruit LE к Arduino гибкими проводами.
2. Создайте доску для сенсорных кнопок и прикрепите штифты. Присоедините эту плату к Arduino гибкими проводами. (Пины отрезаны от LED-диодов)
3. Измените некоторые контакты для OLED-дисплея и установите его на Arduino.
Следующие шаги могут подождать, пока код не будет загружен и не будет выполнено подтверждение правильности работы оборудования.
4. Подключите гибкий провод к земле, сделайте его достаточно длинным, чтобы он доходил до задней части часов, которая должна соприкасаться с корпусом. (Это необходимо, потому что емкостное касание требует заземления для правильной работы)
5. Присоедините разъем micro USB с помощью гибких проводов к земле и RAW. Посмотрите на схему расположения выводов USB-разъема, чтобы увидеть, как должны быть соединены земля и положительное напряжение. (Примечание! Подключайте положительный провод от USB к RAW, а не к VCC).
6. Прикрепите батарею гибкими проводами к земле и RAW (Примечание! Подключайте положительный провод от батареи к RAW, а не к VCC).
Также необходимо настроить зарядное устройство для часов:
1. Отрежьте микрокабель USB.
2. Присоедините красный провод USB-кабеля к красному проводу от разъема аккумулятора, а черный провод USB-кабеля к черному проводу от разъема аккумулятора.









ВАЖНО!
Обратите внимание, что умные часы НЕ МОГУТ заряжаться напрямую от USB с помощью обычного USB-кабеля с микрокабелем. Вместо этого необходимо зарядное устройство Li-Po, иначе можно повредить аккумулятор.
Комментарии:
Попробуйте использовать ленту для изоляции между компонентами, чтобы избежать короткого замыкания.
Шаг 2. Программное обеспечение
Для умных часов использовались следующие библиотеки. Однако некоторым потребовалось несколько модификаций для работы с используемым оборудованием, что будет объяснено ниже.
Библиотеки:
- Библиотека ANCS для Arduino (https://github.com/robotastic/ANCS-Library/tree/master)
- SDK Bluetooth с низким энергопотреблением для Arduino (https://github.com/NordicSemiconductor/ble-sdk-Arduino)
- U8glib для экрана (https://github.com/olikraus/u8glib)
- Библиотека емкостного зондирования (https://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense)
Внесены следующие изменения:
1. Библиотека: Библиотека ANCS для Arduino, файл:notif.cpp, строка:826. Это необходимо изменить, чтобы модуль Bluefruit работал.
aci_state.aci_pins.reset_pin =9; // Это было изменено на 9
Чтобы время правильно синхронизировалось, необходимо внести следующие изменения, чтобы исправить некоторые ошибки в библиотеке
2. Библиотека: Библиотека ANCS для Arduino, файл:ancs_data_source.cpp
- Замените весь код кодом из файла PDF ancs_data_source.cpp здесь ссылка
- Добавьте следующую строку с комментариями ниже в ancs_data_source.cpp в строку 217.
case ANCS_NOTIFICATION_ATTRIBUTE_DATE:debug_print (F (", Date:")); // ГГГГММДДТЧЧММ datetime =(char *) malloc (5); // Добавляем эту строку! strncpy (datetime, buffer, 4);
3. Библиотека: Библиотека ANCS для Arduino, файл ancs_notification.h
- Замените весь код кодом из файла PDF ancs_notification.h здесь ссылка .
В Arduino mini pro отсутствует встроенный программатор, поэтому необходим внешний. Я использовал этот:Sparkfun FTDI (https://www.sparkfun.com/products/9873).


Комментарии:
Прилагаемая zip-папка содержит код, работающий на Arduino, и все необходимые библиотеки. Библиотеки изменены, как указано выше. Код Arduino прокомментирован, что, надеюсь, объяснит функции.
Я столкнулся с проблемой при попытке скомпилировать код с помощью Arduino IDE 1.8.3 из-за известной ошибки в компиляторе GCC. Я загрузил и установил Arduino IDE 1.0.6 и смог скомпилировать и загрузить код.
Шаг 3. Чехол для умных часов
Нарисуйте корпус, достаточно большой, чтобы вместить все компоненты, вложенный в zip-папку - это stl-файл для корпуса, используемого в этом проекте. (Были сделаны две итерации дизайна корпуса. Поэтому форма корпуса может отличаться на некоторых изображениях.)
Задняя крышка сделана из алюминиевого листа из старой коробки. Вырежьте кусок, который подходит к корпусу, и просверлите отверстия для шурупов. Для чехла и браслета, использованного в проекте, необходим промежуток между отверстиями. Хорошо, если задняя крышка будет из электропроводящего материала, так как к этой задней крышке будет подключен провод заземления. Чтобы получить чистые и прямые края на алюминиевом листе, я держу лист между двумя деревянными частями и использую пилу по металлу.
Корпус, напечатанный на 3D-принтере, нуждался в некоторой обработке, эти шаги были выполнены:
1. Отшлифовать корпус мелкой наждачной бумагой.
2. Нанесите наполнитель из баллончика, убедитесь, что он хорошо закрывает корпус.
3. Снова отшлифовать корпус мелкой наждачной бумагой. (Шаги 3 и 4, возможно, придется повторять до тех пор, пока не будет достигнута гладкая поверхность. Я повторил эти шаги трижды.)
4. Нанесите краску из баллончика, убедитесь, что он хорошо покрывает корпус.








Комментарии:
Следуйте инструкциям на баллончиках для достижения наилучших результатов.
Шаг 4:Окончательная сборка





Сначала вставьте штифты сенсорной кнопки в нижние отверстия в корпусе. Отогните их и вставьте в верхние отверстия корпуса. Надавите на провода, чтобы они плотно прилегали друг к другу.
Просто нажмите на остальные компоненты, постарайтесь расположить экран в хорошем месте. У меня возникла серьезная проблема с выравниванием экрана в корпусе. Это зависит как от сборки компонентов, так и от конструкции корпуса. Это причина того, что экран немного повернут.
Вставьте микроразъем USB в отверстие сбоку. (Я использовал ленту, чтобы прижать бедро к отверстию, чтобы соединитель оставался на месте.)
Припаяйте провод заземления к задней крышке и изолируйте заднюю крышку изолентой. Прикрепите заднюю крышку четырьмя винтами.
Шаг 5. Как использовать умные часы
Умные часы просты в использовании. Просто войдите в настройки Bluetooth на iPhone, включите Bluetooth и найдите устройство под названием «ANSC rusk», выберите это и выберите пару. Умные часы и iPhone теперь сопряжены, и умные часы будут получать те же уведомления, что и на iPhone.
Часы будут перезапущены, если одновременно коснуться средней и правой кнопок. Это полезно, если возникает проблема с подключением.
Чтобы зарядить аккумулятор, просто подключите модифицированный USB-кабель и подключите его к зарядному устройству Li-Po.



Код
- Arduino Apple Watch.zip
Arduino Apple Watch.zip Arduino
В zip-файле доступны все измененные библиотеки и коды.Предварительный просмотр отсутствует (только загрузка).
Изготовленные на заказ детали и корпуса
Чехол для умных часов, в который поместятся все компоненты.Схема
Подключите компоненты, как показано на принципиальной схеме.
Производственный процесс