Tabla de contenido:

TheSUN, reloj de pared de diseño alimentado por Arduino: 6 pasos (con imágenes)
TheSUN, reloj de pared de diseño alimentado por Arduino: 6 pasos (con imágenes)

Video: TheSUN, reloj de pared de diseño alimentado por Arduino: 6 pasos (con imágenes)

Video: TheSUN, reloj de pared de diseño alimentado por Arduino: 6 pasos (con imágenes)
Video: Empezar con Arduino desde casa - Cap 01 2024, Mes de julio
Anonim
TheSUN, reloj de pared de diseño alimentado por Arduino
TheSUN, reloj de pared de diseño alimentado por Arduino
TheSUN, reloj de pared de diseño alimentado por Arduino
TheSUN, reloj de pared de diseño alimentado por Arduino
TheSUN, reloj de pared de diseño alimentado por Arduino
TheSUN, reloj de pared de diseño alimentado por Arduino

¡Hola de nuevo Instructables-gente!:-PAG

Debido a problemas de envío, no pude continuar con mi proyecto ABTW, así que decidí mostrarles otra, mi creación más reciente.

Creo que a muchos de nosotros, como a mí, nos gustan esas bonitas bandas de LED direccionables (también llamadas NEOPIXEL LED). Puede obtenerlos de ADAFRUIT. Otros proveedores también proporcionarán productos similares. Hay una biblioteca disponible en ADAFRUITS - GitHub (haz clic en mí) que incluye un código de muestra, por lo que la codificación debería ser sencilla …

Vi esos NEOPIXELES un pensamiento, qué diablos puedo hacer con esas cositas brillantes.

  • ¿Una pantalla de matriz de LED? -> Muy complicado y no lo uso (de momento)
  • Iluminación de Navidad? -> Se ajusta a la temporada pero saldría más barato comprar uno:-P
  • ¿un reloj? -> ¡Por qué no! Pero debe ser elegante y poco convencional.

Entonces, hagamos un reloj de pared.

Si miramos de cerca nuestro reloj de pulsera (si tiene un análogo como yo) notaremos que tenemos 12 horas y 60 minutos (con suerte). Eso significa que necesitamos 60 LED direccionables, ¡phu! Si tomamos una franja con 60 LED / metro obtendremos un diámetro de ~ 318 mm (radio = alcance / (2 * Π)) que definitivamente es demasiado grande.

La verdad es que si le preguntas a alguien la hora, ¡nadie te dirá que son las 3 y 2 minutos! Obtendrá "Son las 3 y 5" como respuesta. Entonces, ¿por qué no deberíamos reducir todo a pasos de 5 minutos? Para eso solo necesitaremos 12 LED, lo que significa que obtenemos un diámetro de 63,6 mm. También podemos diferenciar las horas y los minutos dándoles un color diferente. También podremos proporcionar los pasos de un minuto "que faltan" con una tira adicional de 4 LED (o un LED direccionable único.

¡ESE ES EL PLAN! Veamos cómo hice todo. Como siempre, proporcionaré una lista / lista de materiales e instrucciones sobre cómo construirla.

Si cree que solo los suizos pueden hacer relojes geniales, demostremos que está equivocado (lo siento Suiza:-P)

Paso 1: Diseño y elección de materiales

Diseño y elección de materiales
Diseño y elección de materiales
Diseño y elección de materiales
Diseño y elección de materiales

Diseño:

Si miramos de cerca nuestro reloj / reloj analógico nuevamente, vemos que el círculo está dividido en pasos de 12 * 30 ° que sabemos, que necesitamos 63.6 mm para la tira de LED. Por lo tanto, debería ser posible alinear la tira alrededor de un tubo de alguna manera. Decidí usar vidrio acrílico, porque se ve bien y es posible encapsular la luz LED en él y en cada defecto del vidrio se producirá una dispersión de luz. Entonces, digamos: ¡más impurezas conducirán a una mayor dispersión de la luz! Eso es exactamente lo que queremos. Así que siéntete libre de tomar tus herramientas de grabado y sé creativo:-)

Si consulta mi lista de BoM y el nombre que le di al reloj, he elegido un diseño similar al sol. Obtuve todas las piezas acrílicas de un vendedor alemán en E-Bay (enlace proporcionado en el BoM). Para mi diseño necesitará:

  • placa de tierra acrílica, espesor transparente = 6 mm, diámetro = 300 mm
  • placa intermedia acrílica, espesor transparente = 3 mm, diámetro = 150 mm
  • placa frontal de acrílico, satinado, espesor = 3 mm, diámetro = 90 mm
  • tubo acrílico, transparente, diámetro exterior = 64 mm (significará que tendremos que ajustar un poco con la tira de LED)
  • varilla acrílica, transparente, diámetro = 5 mm (estas serán nuestras vigas); También hay varillas de acrílico con burbujas en el interior, las recomiendo pero no las tengo.
  • pegamento acrílico

Electrónica (consulte los archivos Fritzing):

  • Arduino mini (o similar)
  • 1 tira de LED direccionable (12 LED para pasos de hora y 5 minutos)
  • 4 LED direccionables (minutos individuales)
  • 2 resistencias de 330 ohmios
  • 1 condensador de 1000 µF
  • 1 fuente de alimentación (5V / 500mA)
  • un RTC DS-1307 (¡opcional!)
  • Módulo Bluetooth (¡opcional! Sí, puede configurar la hora a través de BT y un teléfono inteligente Android)

Si se pregunta por qué tengo chips MAX485 en mi BoM. La respuesta es que quiero sincronizar el reloj con el sistema de automatización del hogar que estoy a punto de hacer (nunca más tendré que configurar un reloj para el horario de verano:-P). Lo describiré en mi blog en el próximo par de semanas / mes.

Como habrás notado, también intentaré desconectar el reloj de la red con algunos paneles solares y un LiPo, pero no cubro eso en este Instructable, siéntete libre de probarlo tú mismo.

Paso 2: preparar las piezas acrílicas

Prepare las partes acrílicas
Prepare las partes acrílicas
Prepare las partes acrílicas
Prepare las partes acrílicas
Prepare las partes acrílicas
Prepare las partes acrílicas

Las herramientas:

En primer lugar, es realmente útil si imprime el plan DWG que agregué en la escala 1: 1, esto lo ayudará a alinear todas las partes y le servirá como un plan de perforación.

  • navaja
  • calibre de ingletes
  • sierra
  • abrazaderas
  • taladro de mano
  • puede perforar, diámetro 65 mm
  • un juego de taladros de metal
  • una pequeña lima de metal
  • pegamento acrílico

Empecemos:

Tome la placa del suelo y alinéela en el plano, para que pueda obtener el centro del círculo. Ahora tome su taladro de mano con el taladro de lata montado en él y taladre (¡muy lento! ¡Sin mucha presión!) Un agujero en el centro de la placa de tierra, el círculo exterior debe tener ~ 2-3 mm de profundidad. Esto es para hundir la tira de LED en la placa de tierra (tira de LED de ~ 10 mm de ancho, haces de solo 5 mm de diámetro) y alinearlos con los haces (consulte la imagen 1).

Ahora necesitamos la sierra para metales, la guía de ingletes y el tubo acrílico. Simplemente córtelo en pedazos y decidí hacer la carcasa (tubo) de 40 mm de largo (imagen 2). Ahora agarre la sierra para metales de nuevo y haga una pequeña ranura en un lado del tubo, alise con la lima de metal. Ahí es donde saldrán los cables;-) (consulte la imagen 3)

Es hora de un poco de pegamento … Tome la placa del medio (d = 150 mm) y la placa frontal (la satinada). Alinéelos en el plano de nuevo, coloque un poco de pegamento en el centro de la placa del medio, alinee la placa frontal y espere hasta que el pegamento está ligeramente endurecido. El pegamento que utilicé es de endurecimiento ligero y puede tardar hasta 2-3 horas, así que quizás quieras usar una abrazadera … (imágenes 3 y 4)

Haga lo mismo para pegar el tubo en la placa de tierra, asegúrese de que la lengüeta esté orientada hacia la placa y esté alineada en algún lugar donde desee que esté el primer LED (12 en punto).

¡Espere hasta que se endurezca!

Ahora podemos alinear las 2 partes (combinadas con el libro) en el plano y perforar nuestros 4 orificios de un solo minuto (5 mm de diámetro o el diámetro del LED que haya elegido; perforar lentamente sin demasiada presión). Taladre unos 8-9 mm de profundidad. Cuidado, la placa satinada es muy quebradiza y puede romperse si perforas demasiado. Ahora puedes pegarlas juntas o tú decides, como yo, cortar una amenaza en la placa de tierra y fijarla con un tornillo.

Nuevamente, espere hasta que el pegamento se haya endurecido. Ahora alinee y pegue las vigas en la placa de tierra. (imagen 6) Adivina qué … espera a que el pegamento se haya endurecido:-) Pasemos a la electrónica …

Paso 3: Electrónica

Electrónica
Electrónica
Electrónica
Electrónica
Electrónica
Electrónica
Electrónica
Electrónica

Las herramientas:

  • soldador
  • alambre de soldar
  • cuchillo de hobby
  • una pequeña pieza de prototipos de PCB
  • alambre esmaltado o cualquier otro alambre que prefiera
  • pegamento caliente

Empecé con los LED individuales. Si usa alambre esmaltado, no olvide raspar la laca antes de soldar. Puede usar un cuchillo de hobby para eso. Conéctelos, puede consultar la imagen con el pinout en flikto.de. ¡Tenga en cuenta que DOUT pasa a DIN en el siguiente LED! (ver imagen 2) Después de eso, puede cortar la tira de LED en 4 elementos cada uno con 3 LED. Recuerde, tenemos una tira de LED de 63.6 mm y un diámetro exterior de 64 mm del tubo, por lo que necesitamos un poco de "longitud adicional para alinearlo con precisión con las vigas. Conéctelo con alambre esmaltado como en la imagen 4". Hice un pequeño proto PCB que servirá como un "arnés de alimentación" y contendrá los componentes para las tiras de LED (las dos resistencias de 330 ohmios y el condensador de 1000 µF, imagen 7). Para eso, consulte la imagen de Fritzing.

Ahora monte la tira alrededor del tubo, alinee los LED a las vigas. El primer Pixel coincide con las 12 en punto. Si has dado la vuelta a tu vivienda, no olvides que todo está reflejado. ¡Proceda en sentido contrario a las agujas del reloj! Use un poco de pegamento caliente para unirlo al tubo. ¡Una pequeña gota por cada segmento lo hará!

Puede hacer lo mismo con los LED individuales (eventualmente reflejados), simplemente agregue un poco de pegamento caliente y presiónelos en los orificios pretaladrados.

No conecte el Arduino todavía, usaremos el hardware-serial para la conexión BT, así que primero verifique los siguientes pasos donde describo el software.

Paso 4: Código

Código
Código
Código
Código

Ahora puede cargar el boceto en Arduino. Ahora también puede cablear las tiras de LED. ¡¡¡No conecte el Módulo BT !!! Primero queremos echar un vistazo al código, debes saber dónde puedes modificar varias cosas …

Descarga Arduino IDE y Librarys. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

Instale el IDE y coloque las bibliotecas en la carpeta de la biblioteca. Abra el archivo INO adjunto y cárguelo en su arduino. ¡El código descrito aquí es el mismo pero con comentarios adicionales! Si ha hecho todo bien, ahora puede ver la "animación de arranque". Es posible configurar el tiempo a través del monitor serial. Simplemente escriba @ "hora" / "min" / "seg", por ejemplo. @ 33/10/00 (10:33).

Siéntase libre de jugar con el código … Aquí le daré una breve descripción del Código (¡Configuración sin RTC!)

DEFINICIONES:

#define PIN 6 // Hour LED Strip #define MINPIN 5 // Singelminute LED #define NUMPIXELS 12 // Number of Pixels for hour #define MINNUMPIXELS 4 // Number of Pixels for single minute #define BAUDRATE 115200 // Baudrate, should match la velocidad en baudios del módulo BT #define utch '@' // iniciar BYTE de TimeSync

int timeset = 0; // marca para almacenar si la hora se estableció después de bootint delayval = 20; // retraso para la animación de desvanecimiento int clocktimer = 10000; // tiempo de actualización int timebright = 250; // brillo de la hora Strip int mtimebright = 50; // brillo de singelminint initialize = 0; // bandera para llamar a la función clearpixels después de bootint ahour; int oldahour = 0; // almacenar anterior. hora en un minuto; int oldamin = 0; // almacena el minuto anterior para actualizarlo en un segundo; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// Configuración de las 2 matrices LED NeoPixel (NOMBRE = TIPO (NÚMERO DE PÍXELES, CUAL PIN, FORMATO RGB O GRB, FREQ); Consulte la guía de Adafruit para obtener más información. Adafruit_NeoPixel píxeles = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

CONFIGURACIÓN:

configuración vacía () {

Serial.begin (BAUDRATE); Wire.begin (); // Inicialice las tiras, todas OFFpixels.begin (); minpixels.begin (); pixels.show (); minpixels.show ();

// Haz una pequeña animaciónSerial.println ("SUNRISE"); amanecer(); retraso (1000); Serial.println ("PUESTA DE SOL"); puesta de sol(); pixels.show (); Serial.println ("LISTO"); }

CÍRCULO:

void loop () {// verifica la sincronización temporal while (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // si hay una @ en la línea, lea los siguientes bytes / ints {readtime (); }} // inicialice los LED, borre la animación de arranque

if (inicializar == 0) {clearpixels (); inicializar = 1; }

ahour = hora ();

minuto = minuto (); if (timeset == 1 || timeset == 0) // aquí puede verificar si la hora fue configurada, puede detener el programa aquí si Timeset = FALSE, simplemente elimine "|| timeset == 0"!

{

if (oldamin <aminute || oldahour establece todo en OFF, muestra la nueva hora {clearpixels (); ClockDisplay ();}}}

Mostrar el reloj:

void ClockDisplay () {

oldahour = ahour;

oldamin = un minuto; int xhour, xmin;

si (una hora> = 12) {x hora = una hora-12; // solo tenemos 12 LED para visualización de 24 horas} else {xhour = ahour; } // escalarlo en pasos de 5min xmin = (aminute / 5); if (oldamin <aminute) {oldamin = aminute; clearpixels (); } // tomamos el resto de la división del LED singelmin mmin = (aminute% 5); // operador de módulo, por ejemplo. 24% 5 = 4! muy útil: -Ppixels.setBrightness (timebright); pixels.setPixelColor (xmin, pixels. Color (5, 125, 255)); // ¡puedes cambiar los colores aquí! jugar! pixels.setPixelColor (xhora, pixels. Color (255, 50, 0)); pixels.show ();

// muestra el singel minfor (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (m, píxeles. Color (255, 255, 0)); minpixels.show (); }} Leer y procesar información de TIEMPO de serie

void readtime () // si ya obtuvimos el "@" inicial, procese los datos que vienen y almacene el tiempo para TIME Lib {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); asecond = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); año = Serial.parseInt (); Serial.println ("CONFIGURACIÓN DE TIEMPO"); Serial.print (ahour); Serial.print (":"); Serial.println (un minuto); setTime (hora, minuto, segundo, día, mes, año); }

¡Limpiar todo

void clearpixels () // desactiva cada PIXEL para actualizar la pantalla {

pixels.begin (); minpixels.begin (); for (int i = 0; ipixels.setPixelColor (i, pixels. Color (0, 0, 0)); minpixels.setPixelColor (i, pixels. Color (0, 0, 0)); pixels.show (); minpixels.show(); } }

Paso 5: la aplicación Android y la conexión BT

La aplicación Android y la conexión BT
La aplicación Android y la conexión BT
La aplicación Android y la conexión BT
La aplicación Android y la conexión BT
La aplicación Android y la conexión BT
La aplicación Android y la conexión BT

Si tuvo éxito con los pasos anteriores, ahora puede conectar su Módulo BT. (Espero que se haya asegurado de que las velocidades en baudios coincidan). no olvides cruzar las líneas TX y RX:-)

Descargue e instale la aplicación, empareje con su dongle BT, inicie la aplicación, conéctese al dongle y sincronice la hora con su móvil. La aplicación básicamente hace lo mismo que hicimos antes. Simplemente envía @ hh / mm / ss / dd / mm / YYYY generado a partir de su hora del sistema. También proporcioné el archivo AIA de APPInventor y una explicación sobre el siguiente paso (para aquellos que estén interesados).

Paso 6: APPInventor

APPInventor
APPInventor
APPInventor
APPInventor

APP Inventor es bastante fácil de usar y vale la pena el esfuerzo para un programa tan simple.

Si realiza un nuevo proyecto, se encontrará en la pantalla DISEÑADOR. (imagen 1) Aquí es donde agregamos tablas, botones, sensores y otros elementos para su uso posterior, en nuestro caso necesitamos:

  • una mesa (para alinear todos los elementos)
  • un selector de listas (para seleccionar el dispositivo BT al que nos conectamos)
  • un botón (para disparar el TIEMPO sobre BT)
  • algunas etiquetas (muestran la hora y la fecha reales)
  • el sensor del reloj (actualiza la hora)
  • el sensor de cliente bluetooth (conectividad)

¡Agregarlos es tan fácil como arrastrar y soltar! En la Imagen 2 puede ver una descripción general de la "APLICACIÓN" en la pantalla BLOQUES. Bueno, ahí es básicamente donde ocurre toda la "magia". En la parte superior creé algunas variables para almacenar la Hora y la Fecha. El primer bloque en la parte superior izquierda inicializará el elemento listpicker con la lista de dispositivos BT emparejados. segundo bloque decidimos qué hacer con el elemento elegido previamente. Bueno, queremos conectarnos a él.

Si observa de cerca el siguiente bloque, puede ver que generamos, si el estado de BT "está conectado", el mensaje de BT. Es lo mismo que escribimos antes en SerialMonitor. El último bloque de la izquierda nos proporcionará los ceros iniciales para mostrar la hora (por ejemplo, 01:08). En el lado derecho se encuentra nuestro último bloque, ahí es donde usamos el elemento reloj, aquí actualizamos las variables y las fusionamos con el procedimiento de dígitos, esto sucederá cada 1000ms (ajuste por defecto, cámbielo en el modo diseñador) y mostrar los valores actualizados con la etiqueta. Esa es solo una breve descripción, pero APPInventor es realmente tan fácil como eso:-) Tal vez haya alguien en la comunidad que quiera escribir un software para iOS o WindowsPhone. (sería genial)

¡Espero que te haya gustado mi Instructable! ¡Diviértete con tu nuevo reloj de pared! Tal vez quieras regalárselo a alguien que amas (es temporada de Navidad):-)

Y si tienes alguna pregunta, ¡no dudes en preguntarme!

Saludos cordiales y Feliz Navidad.

Recomendado: