Smartwatch Arduino DIY: Construye tu Propio Reloj Estilo Apple Watch
Componentes y suministros
| Componente | Cantidad | Notas |
|---|---|---|
| SparkFun Arduino Pro Mini 328 - 3.3V/8MHz | 1 | |
| Adafruit Bluefruit LE - BLE 4.0 (nRF8001 Breakout v1.0) | 1 | |
| Pantalla OLED monocromo 0.96" 128x64 (Adafruit) | 1 | |
| Batería LiPo 3.7V 100mAh (Adafruit) | 1 | |
| Conector Micro-USB | 1 | |
| Resistencias SMD 1206 1M ohm | 3 | Para botones capacitivos |
| Correa reloj 20mm con sprints | 1 | |
| Cable USB-A a Micro-USB | 1 | |
| Tornillos 2x5mm | 4 | |
| Cargador LiPo básico Micro-USB (SparkFun) | 1 | |
| FTDI Basic Breakout 3.3V (SparkFun) | 1 | Programador externo (Pro Mini no tiene onboard) |
| Chapa aluminio 50x50mm | 1 | Tapa trasera conductiva |
| Placa matriz (stripboard) o perfboard | 1 |
Herramientas necesarias
- Soldador (genérico)
- Impresora 3D (genérica)
- Herramientas comunes: sierra, alicates, destornillador, cúter
Aplicaciones y servicios online
- Arduino IDE
Sobre el proyecto
Quería un smartwatch que mostrara notificaciones del iPhone, fuera lo bastante pequeño para llevar, y con batería recargable que durara al menos un día. Creé mi propio "Apple Watch" basado en Arduino: Arduino Pro Mini conectado al iPhone por Bluetooth. Puerto Micro-USB para carga fácil. Cables frontales como botones táctiles (detectan dedo) para interactuar.
El reloj sincroniza hora automáticamente con el iPhone al recibir notificación (más fiable, menos sensible a retardos del Arduino). Tras 10 s, pantalla se apaga para ahorrar batería. Se enciende tocando botón central o al recibir notificación.
Me basé en la página de Luke Brendt (iOS Notifications with Arduino), que hacía lo mismo pero necesitaba hacerlo más pequeño y wearable. Uso su librería ANCS para Arduino (GitHub). ANCS = Apple Notification Center Service: da a accesorios Bluetooth (vía BLE) forma simple de acceder a notificaciones de iOS.
Paso 1: Montaje eléctrico
Muchos cables en poco espacio. Tras iteraciones, propongo este orden:
- Conecta Bluefruit LE al Arduino con cables flexibles.
- Crea placa para botones táctiles (pines recortados de LEDs) y conéctala al Arduino con cables flexibles.
- Modifica pines del OLED y móntalo al Arduino.
- Los siguientes pasos pueden esperar a verificar hardware y subir código.
- Cable flexible a GND, largo hasta tapa trasera (contacto con cuerpo). Necesario: el tacto capacitivo requiere referencia a tierra.
- Conecta conector Micro-USB flexible a GND y RAW. Positivo USB → RAW (no VCC). Consulta pinout Micro-USB.
- Conecta batería a GND y RAW. Positivo batería → RAW (no VCC).
Cargador personalizado:
- Corta cable Micro-USB.
- Rojo cable USB → rojo conector batería; negro → negro.
¡IMPORTANTE! El smartwatch NO se puede cargar directo con 5V USB con cable normal. Se necesita cargador LiPo, si no la batería se daña.
Tip: usa cinta aisladora entre componentes para evitar cortos.
Paso 2: Software
Librerías usadas (con modificaciones):
- ANCS Library for Arduino: GitHub
- Bluetooth LE SDK for Arduino: GitHub
- U8glib para pantalla: GitHub
- Capacitive Sensing Library: Playground
Modificaciones necesarias:
- ANCS Library, archivo
notif.cpp, línea 826: cambia pin reset a 9:aci_state.aci_pins.reset_pin = 9; // Era otro valor - ANCS Library,
ancs_data_source.cpp: reemplaza todo el archivo por la versión corregida (enlace en original). Añade en línea 217:case ANCS_NOTIFICATION_ATTRIBUTE_DATE: debug_print(F(", Date: ")); datetime = (char*)malloc(5); // ¡Añade esta línea! strncpy(datetime, buffer, 4); - ANCS Library,
ancs_notification.h: reemplaza todo por versión corregida (enlace en original).
El Pro Mini necesita programador externo: usé SparkFun FTDI Basic 3.3V (#9873).
Problema al compilar con Arduino IDE 1.8.3 (bug conocido GCC). Solución: usar Arduino IDE 1.0.6 para compilar y subir.
El ZIP adjunto contiene código Arduino y todas las librerías modificadas, comentadas.
Paso 3: Caja del smartwatch (impresión 3D)
- Diseña caja que quepa todo. STL adjunto en el proyecto (dos iteraciones; forma puede variar en fotos).
- Tapa trasera: chapa aluminio de caja vieja. Recorta, taladra agujeros para tornillos. Deja hueco para correa. Material conductor ayuda porque el cable GND-cuerpo se suelda a esta tapa.
- Acabado caja 3D:
- Lija grano fino.
- Imprimación en spray, cubre bien.
- Lija de nuevo. (Repite 3-4 veces hasta acabado liso.)
- Pintura en spray, cubre bien.
Sigue instrucciones de los sprays para mejor resultado.
Paso 4: Montaje final
- Inserta pines botones por agujeros inferiores, dóblalos hacia atrás e insértalos en superiores. Ajusta para que queden lisos.
- Coloca resto de componentes; procura centrar pantalla (tuve problemas de alineación por diseño caja/montaje; por eso sale ligeramente rotada).
- Pasa conector Micro-USB por agujero lateral. (Usé cinta para ajuste ceñido).
- Suela cable cuerpo-GND a tapa trasera, aísla con cinta. Atornilla tapa (4 tornillos).
Paso 5: Uso del smartwatch
- En iPhone: Ajustes → Bluetooth → ON → busca "ANSC rusk" → empareja.
- Reloj e iPhone emparejados: recibes mismas notificaciones que en iPhone.
- Reinicio forzado: toca botón central + derecho a la vez (útil si falla conexión).
- Carga: enchufa cable Micro-USB modificado al cargador LiPo.
Código
Archivo ZIP Arduino Apple Watch.zip con todo el código y librerías modificadas. (Solo descarga; sin vista previa).
Partes personalizadas y cajas
Caja para smartwatch que aloja todos los componentes (STL).
Esquemático
Conecta componentes según diagrama de circuito (imagen en original).
Proceso de manufactura
- La evolución de la medición del tiempo: de los relojes de sol a los relojes de cuarzo de precisión
- Construye un Reloj de Pared Elegante con Anillo Neopixel 60 LEDs Adafruit y Arduino
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- UnifiedWater v1 – Kit completo de sensor de calidad de agua con Arduino
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Arduino 101 BLE + Blynk: Robot Tanque Controlado por Bluetooth DIY
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón