» Electrónica » Arduino »Reloj con termómetro en Attiny

Attiny Thermometer Watch

Attiny Thermometer Watch



Hola a todos y que tengan un buen día o noche. Esta vez compartiré las instrucciones para hacer un reloj de habitación con un termómetro. El centro de cómputo del reloj será Attiny85, montado en una placa de Digispark. Para mostrar el reloj - Pantalla Oled. Termómetro: el conocido ds18b20. Para el poder, tomamos el li-ion 18650 (se pueden obtener de una batería vieja de una computadora portátil). Y agregue una pantalla del nivel de batería. Como en todos mis relojes anteriores, prescindiremos del módulo RTC (reloj en tiempo real).

Recopilamos todo lo necesario:

- Digispark Attiny85 (versión micro USB)
- ds18b20 (en una caja de plástico)
- Pantalla Oled con una resolución de 128x64, I2C
- 2 baterías 18650 o una vieja batería de iones de litio para computadora portátil
- Resistencias (3.3 kΩ, 4.7 kΩ, 10 kΩ)
- Plástico fino (para vivienda)
- Cables de conexión de diferentes colores.
- Programador de ISP (o cualquier Arduino tarifa)
- botón
- Conectores Dupont 2,54 mm "madre", "padre"
- Cuchillo de escritorio, cinta de doble cara, cinta eléctrica, termofusible
- Todo para soldar (soldador, colofonia, soldadura)

Paso 1 Caso.
La futura caja del reloj estará hecha de plástico delgado. Puede comprar una lámina de dicho plástico en una tienda especializada o realizar un pedido en aliexpress. O puede (no esperar y no mirar) para ir a la oficina de oficina y comprar una carpeta de papel plástico de su color favorito. Dimensiones del reloj futuro: ancho - 40 mm, espesor - 30 mm, altura - 70 mm. De acuerdo con el siguiente diagrama, cortamos un escaneo de plástico:


Cortamos a lo largo de líneas gruesas, doblamos suavemente a lo largo de líneas finas. Cortamos el rectángulo en el medio con un cuchillo de oficina, esta es una ventana para mostrar. Como resultado, obtenemos un escaneo de plástico:


Pasamos a Attiny.

Paso 2 Attiny + Oled.
Como dije, en nuestro corazón hecho en casa será Attiny 85. Es mejor comprar este chip, inmediatamente soldado a la placa junto con un regulador de voltaje y arnés. Digispark Attiny85 es muy adecuado. Elija la versión con micro-USB en el tablero. Otras modificaciones al tablero no se ajustarán en tamaño. Sucede que esta placa se vende con conectores Dupon "macho" ya soldados. Si es así, suelde todos los conectores. Recolectamos cables de colores. Necesitamos 10 centímetros en diferentes colores. Los soldamos en Attiny y escribimos qué cable, a qué conclusión corresponde. Los cables P0 y P2 deben soldarse en dos cables. Se necesita el segundo par para conectar la pantalla Oled. Obtenemos lo siguiente:


Escribí el siguiente diagrama en el cable:


La pantalla es pequeña (para que coincida con el controlador), pero se ve hermosa. OLED (diodo orgánico emisor de luz) es una pantalla gráfica. No hay luz de fondo y, en cambio, cada píxel es un LED independiente. Tamaños de pantalla: 0,96 pulgadas.Resolución 128x64. Conectado a través del bus I2C. Utiliza solo dos cables para conectarse con Attiny. Vienen en diferentes colores, elige a tu gusto. Me gustó el azul con una franja amarilla en la parte superior. Actuamos de manera similar a Digispark. Si hay conectores soldados, sueldelos. Suelde, por ahora, solo los cables de alimentación:


Tenga cuidado al soldar, no dañe el cable con un soldador en la pantalla:


Conectamos los tableros con cinta de doble cara:


Soldamos la pantalla Digispark Attiny y Oled juntas de acuerdo con el esquema (los colores de los cables pueden variar, lo principal es no meterse con las conclusiones):


Por conveniencia y orden, recolectamos todos los cables juntos. Puede torcerlos con cinta aislante para no confundirse:


Al final de todos los cables, conectamos el conector "madre" de Dupont, lo insertamos en los aisladores y lo enrollamos todo junto con cinta aislante para hacer el conector. También registramos el pinout del conector:


El pinout debería ser así, ya que en el futuro conectaremos un cable para firmware u otros elementos de vigilancia al conector.
Pegamos la estructura resultante en el estuche, y no olvidemos pegar el estuche en sí, dejando un gemido sin pegar, para futuras manipulaciones:


Al pegar, preste atención a que la pantalla sea uniforme:


Paso 3 Poder.
Para potencia usaremos dos elementos de iones de litio. Escriba 18650. Puede comprarlos por separado. En este caso, suéldelos en paralelo, aísle y haga salir el conector para la conexión y posterior carga:


Muchos tienen computadoras portátiles más antiguas. Si ya no trabajan o trabajan a través del tiempo. Incluso si la batería de la computadora portátil ya está defectuosa y no es adecuada para el uso previsto, puede usarse para todo tipo de productos caseros. En nuestro caso, para un reloj. Tomamos la batería de la computadora portátil:


Lo principal es que sea Li-ion. Lo desmontamos cuidadosamente, debe abrir la caja de plástico para no dañar el elemento interior. Muy a menudo, la batería se divide en dos elementos conectados en paralelo. Los sacamos y separamos un par del resto:


Es mejor soldar a las almohadillas de contacto:


Pegue este par en la parte posterior del reloj:


Paso 4 Determinación de la carga de la batería.
Una función conveniente del reloj es indicar la carga de la batería. Determinaremos el grado de carga por voltaje. El voltaje mínimo para estas baterías es de 2,4 V. No se puede descargar más. El voltaje máximo es de 4.2 V.

La medición de voltaje en el puerto analógico siempre es relativa a algún otro voltaje. No podemos usar el pin AREF del microcontrolador, que sirve para establecer el voltaje de referencia. También es imposible medir el voltaje con respecto al voltaje de suministro (la relación siempre será la misma). Por lo tanto, determinaremos el voltaje en relación con el voltaje de referencia interno o Vbg (voltaje de referencia de Bandgap). Es 1.1 V. Ahora necesitamos calcular el divisor de voltaje para nuestra batería, de modo que a una carga máxima (4.2 V) el divisor tenía (1.1 V). Puedes calcular por la fórmula:



O usar

R1 toma un valor nominal de 10 kOhm. Entonces R2 obtenemos 3.55 KOhm, el más adecuado de los valores estándar de 3.3 KOhm, y lo tomamos. Las mediciones se realizan entre el voltaje interno y GND, por lo que la resistencia de 3.3 KΩ se suelda al menos y 10 KΩ al más. Colocamos las resistencias en la batería, retiramos el cable del divisor.


Aislamos todos los contactos para evitar cortocircuitos:


El cable del divisor se conectará a PB4.

Paso 5 Mida la temperatura.
Un excelente complemento para el reloj es la medición de la temperatura ambiente. Utilizaremos el sensor de temperatura integrado DS18B20. Para trabajar con él, solo se requiere un cable (muy útil cuando se usa Attiny 85). Todas las mediciones son hechas por él mismo, el controlador central no molesta (Attiny 85 también tiene una memoria excelente y muy poco), solo necesitamos dar comandos y obtener resultados. Existen varios esquemas diferentes para conectar este sensor, en mi opinión, utilizaremos la opción que sea óptima para este caso.Usando energía externa y una resistencia de 4.7 kΩ:


Suelde cables pequeños y fije los conectores


El cable del sensor DQ está conectado a PB 3.

Paso 6 Botón.
Tenemos pocas conclusiones, pero hay muchos requisitos para los relojes. Usaremos un botón para establecer la hora. No podemos contar con más. Suelde los cables al botón, un contacto de él a GND. Combina con nuestro sensor de temperatura:


El segundo contacto del botón está conectado a PB 1.

Paso 7 Preparando el entorno de desarrollo
Para seguir trabajando con el boceto, así como su edición y relleno, necesitamos el IDE de Arduino. Descargue este programa desde:

Ahora agregue soporte para Attiny 85 el miércoles. Abra el IDE de Arduion y siga el camino:
Archivo - Configuración - "URL de Boards Manager adicionales" inserte el enlace:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Haz clic en Aceptar.
Ir a:
Herramientas - Tablero - Tableros Manager ingrese Attiny y haga clic en "attiny by David A. Mellis". Haga clic en "Instalar" y deje poner el café.
Y ahora sobre las bibliotecas. Necesitan dos:

Para trabajar con la pantalla Oled

Control del sensor de temperatura

Después de descargar estos archivos, descomprímalos en la carpeta "bibliotecas", que es fácil de encontrar siguiendo la ruta de instalación del IDE de Arduino.

Paso 8 Programador.
Digispark Attiny 85 es una gran tabla. Diseñado para conectarse a una computadora USB. Y se puede programar a través de él. Pero Attiny usa un software USB, que a su vez ocupa 2 KB de 8 KB de memoria. Esto no nos conviene y, por lo tanto, mostraremos Attiny 85 a través de la interfaz del ISP. Y aquí necesitamos un programador de ISP. Si no está allí, no importa. Toma el Arduino. En mi caso, Arduino UNO:


Puede tomar cualquier otra placa compatible de la línea Arduino. Nos conectamos a la computadora, abrimos el IDE de Arduino, seleccionamos el puerto com al que está conectada la placa Arduino, abrimos el boceto en los ejemplos, Arduino ISP y lo llenamos en la placa. También necesitamos un cable para conectarnos rápidamente a Attiny.


La conexión es la siguiente:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

No te olvides de la nutrición Attiny.

Paso 9 Edite y complete el boceto.

Descargar boceto

Antes de completar, debe editar el boceto.
El sensor integrado ds18b20, como se mencionó anteriormente, funciona utilizando el protocolo One Wire. Cada sensor tiene su propia dirección única de 64 bits. Necesita encontrar la dirección de su sensor y escribirla en un boceto. Abra el IDE de Arduino, siga la ruta:
Archivo - Ejemplos - Temperatura de Dallas - OneWireSearch.

Rellena el boceto en Arduino. Abra el monitor del puerto. Debería ver las direcciones de todos los sensores conectados y sus lecturas de temperatura. Anotamos su dirección. Abra mi boceto y cambie la dirección a la suya en la línea:

byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Para ajustar el progreso del reloj, use la siguiente constante:

if (micros () - prevmicros & gt; [b] 497000 [/ b]) 


Cuanto mayor sea este valor, más lento será el reloj.
Para el control, los segundos se muestran en la pantalla:

OzOled.printNumber ((largo) sek, 0, 7); // segundos de salida para un ajuste preciso 


Comente esta línea para eliminar segundos.
Ahora conectamos el programador o Arduino como programador, seleccionamos el puerto com, seleccionamos nuestra placa en el menú Herramientas y establecemos los siguientes parámetros:
Junta: Attiny 25/45/85
Procesador: Attiny 85
Reloj: interno 16
Luego seleccione en el mismo menú:
Herramientas - Programador - "Arduino como ISP".
Y finalmente:
Sketch - Descargar a través del programador

Paso 10 Montaje final y lanzamiento.
Apague el programador y conecte el sensor, la alimentación y el botón:


Hasta que se configure el curso exacto del reloj, puede cerrar la caja con goma de banco. Cuando termines, puedes pegarlo.


Ver calificación
Total de votos: 13
10
10
10

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar
9 comentarios
El autor
La idea es genial. Hice algo al respecto. Solo a mi alcance había una variable de 5 kΩ. Lo incluí en la parte inferior del hombro. Y luego reemplazado por el permanente más adecuado. Pero en las instrucciones de fabricación, creo, escribirlo es innecesario. ¿Por qué no hacer estas mediciones varias veces?
No vi la necesidad de escribir sobre tediosos y largos juicios.
No es necesario hacer nada largo y tedioso. Encienda la resistencia (2.7 ... 3) kOhm en el brazo inferior, secuencialmente con ella una recortadora de 1 kOhm. Desde una fuente de alimentación ajustable, ingresa los valores extremos del voltaje controlado a la entrada, ajusta el punto de operación, luego, si lo desea, puede medir la resistencia del trimmer y reemplazarlo con una resistencia constante.
El autor
A una frecuencia de 8 MHz, no intenté iniciar el reloj y, en consecuencia, medir la precisión del curso. Todas las mediciones se realizaron a 16 desde el interior. No puedo decir sobre el mes tampoco. Hasta ahora, sin cerrar, trabajaron un máximo de una semana. Los experimentos y las mejoras aún están en proceso.
El autor
Con respecto al divisor de voltaje, realmente hay muchos matices y errores. Y la dispersión de la resistencia de las resistencias y la dispersión del voltaje de referencia. Intenté todo en la práctica. Cuando se usa una resistencia de 3.6 kΩ, incluso con un voltaje de batería de 3.9 V, el puerto analógico Attiny muestra 1023 (cuando se convierte al 100% por ciento). Cuando se usa una resistencia de 3.3 kΩ, el valor del puerto analógico disminuye incluso a 4.1 V en la batería. Por lo tanto, escribí que el testimonio se obtiene con mayor precisión, simplemente no vi la necesidad de escribir sobre ensayos aburridos y largos.
El autor
Configuré el reloj durante una semana, ajusté su progreso todos los días o con más frecuencia. Como resultado, a un valor de 497343, se apresuran durante unos 10 segundos a la semana.
La frecuencia puede ser reducida. No cambié el parámetro, no había necesidad
Bueno, ¿y cuál es la precisión del reloj RC de 8 MHz? Por mes?
y por qué Reloj: interno 16?
Es mejor elegir menos, entonces las lecturas son más precisas.
No con mayor precisión, sino simplemente el voltaje de entrada debe ser menor que la referencia. Además, en su razonamiento no tiene en cuenta la dispersión de los parámetros: resistencias, lo más probable es que tenga un cinco por ciento, Vbg = (1.0 ... 1.2) V. Entonces 3.3 kOhm puede ser demasiado grande, y quizás 3.6 kOhms lo harán.
El autor
Si usa un voltaje de salida de 3.6, obtenemos 1.11. Aunque no mucho, pero más voltaje de referencia. Cuando se usa 3.3 - 1.04. Es mejor elegir menos, entonces las lecturas son más precisas.
Y en cuanto a Oh, tienes razón, simplemente no presté atención a este pequeño detalle.
Después de pegar la caja, se puede acceder a la toma de carga y a los botones desde la parte inferior del reloj cortando la cubierta inferior o simplemente sin pegarla.
Entonces R2 obtenemos 3.55 KOhm, el más cercano a los valores estándar de 3.3 KOhm,
En absoluto El E24 más cercano en el rango estándar es 3.6 kOhm. Y por cierto, no "KOhm, sino" KOhm.
Hasta que se configure el curso exacto del reloj, puede cerrar la caja con goma de banco. Cuando termines, puedes pegarlo.
¿Cómo cargaremos la batería?
¿Y cómo manipular el botón?

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...