Lista de lo que necesitamos:
- Digispark Attiny85
- Pantalla Oled 128x64 I2C
- sensor de temperatura ds18b20
- Resistencia 4.7 Kom 0.25 W
- programador ISP o Arduino Tarjeta de firmware Digispark Attiny85
- Tableta de plástico con clip o lámina de plástico delgado.
- cables
- Conectores Dupont de 2,54 mm "hembra"
- Botones 2 uds.
- Placa de circuito pequeña o moldura pequeña
- soldador
- Soldadura, colofonia
- tijeras
- cuchillo de oficina
- Pistola de pegamento caliente
- pegamento caliente
Paso 1 Seleccionar componentes.
Como controlador principal usaremos Digispark Attiny85. Hay varios tipos de ellos. Necesitamos una placa con un conector micro USB. El resto no cabe en la caja del reloj.
Para mostrar, necesitamos una pantalla Oled 128x64 I2C. Vienen en diferentes colores: blanco, azul, azul con amarillo. ¡Llamo tu atención! El concepto de "dos colores" en la descripción o título de esta pantalla significa una franja de un color en la parte superior de la pantalla y el segundo color en toda la pantalla restante, ¡y no la capacidad de mostrar dos colores con esta pantalla! Todas las pantallas de este tipo muestran solo un color, o en la parte superior una tira de un color en la parte inferior - otro. Como, por ejemplo, el que usaré. La barra de arriba es amarilla; el resto de la pantalla es azul. Puedes elegir el color que quieras.
También necesitamos el sensor de temperatura integrado DS18B20. No fue elegido por casualidad. Primero, el DS18B20 se comunica con el microcontrolador a través de una línea de comunicación de un solo cable utilizando el protocolo de interfaz de 1 cable. En nuestro caso, esto es importante, ya que las conclusiones de Attiny85 sin sensor son pocas. En segundo lugar, este sensor es un dígito, es decir, toma todas las medidas en sí y simplemente transmite datos de temperatura sin gastar los recursos informáticos de Attiny85.
En cuanto al resto, creo que no habrá preguntas, así que pasemos a fabricar el caso.
Paso 2 Montaje de la carcasa.
La caja del reloj estará hecha de plástico delgado. Tenía una tableta de plástico con un clip en mis manos. Es lo suficientemente resistente como para mantener su forma, y al mismo tiempo se puede cortar con tijeras comunes y un cuchillo de oficina. Él salió perfectamente.Si no está disponible, puede comprar una tableta en una tienda de suministros de oficina o encontrar el plástico adecuado para reemplazar la tableta. Realizamos marcas en plástico según el esquema:
Recorta todas las líneas continuas. Punteado: ligeramente cortado con un cuchillo de oficina. Las líneas punteadas son líneas plegadas. Como ya entendió, este es el diseño de cubo habitual. A continuación, debe soldar los cables a la pantalla, lo mejor es tomar varios colores y anotar qué conduce a qué. Pegue la pantalla en el adhesivo termofusible en el medio, de modo que la parte frontal salga por la parte posterior. Como puede ver, hemos cerrado las designaciones de pin de pantalla. Por lo tanto, era necesario anotarlos. Le entregué un poco al cuchillo, y así corté la parte inferior del cuerpo. No hay nada de malo en eso, todo se puede pegar. Pero es mejor no repetir mis errores.
El resultado debería ser así:
En este caso está listo. Todavía puede cortar la cubierta posterior del mismo plástico, pero esto es opcional.
Paso 3 Soldamos.
Nuestro caso es pequeño, y tenemos que meter mucho allí. Por lo tanto, tomamos un pedazo de la placa de circuito no mayor de 2.8 x 2.8 mm y soldamos en dos botones, un sensor ds18b20, una resistencia y varios contactos. De acuerdo con el siguiente esquema:
No es necesario soldar los cables directamente a Attiny, ya que es necesario desconectar todo para el firmware. El resultado debería ser algo como esto:
Se necesitan botones para configurar la hora. La energía se puede tomar del puerto USB de la computadora. Combinando el más y el menos, respectivamente:
Si desea prescindir de los cables, necesita encontrar una pequeña batería de iones de litio. Aquí hay uno, por ejemplo:
Esta batería cabe dentro de la caja. Solo es necesario proporcionar conclusiones para la carga de la batería.
Paso 4 Preparando el programador.
Digispark Attiny85 se puede programar a través del conector micro USB de la placa, utilizando el IDE Arduino como entorno de programación. Pero al mismo tiempo tienes que sacrificar 2 KB de memoria para el gestor de arranque. Attiny 85 tiene un total de 8 KB Flash. Mi boceto no encaja con el gestor de arranque, por lo que necesito programar a través del programador ISP. No tengo un programador así, pero hay una placa Arduino Uno, que usaré como programador. Si tiene un programador ISB, puede omitir este elemento. Abra el IDE de Arduino y complete nuestro boceto llamado ArduinoISP en nuestro Arduino Uno. Puede encontrarlo como este Archivo - Ejemplos - Arduino ISP. El boceto comienza con una pista sobre cómo conectar el Arduino al controlador programable. En lugar de Arduino Uno, puede haber cualquier otra placa Arduino.
// 10: reinicio esclavo
// 11: MOSI
// 12: MISO
// 13: SCK
Esquema de conexión a Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Paso 5 Preparar el entorno de programación.
Para editar el firmware y completar el boceto en Attiny 85, debe preparar no solo el programador, sino también el entorno de programación en sí. Para hacer esto, instale el IDE Arduino desde el sitio web oficial Arduino.cc, y también instale el complemento Attiny para microcontroladores a través del Administrador de Tableros.
Inicie Arduino IDE, luego Archivo - Configuración - en el campo URL de Boards Manager adicionales, pegue el enlace:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
haga clic en Aceptar (puede ingresar varios enlaces separados por una coma en este campo). Herramientas siguientes - Tablero - Administrador de tableros en el campo de filtro, ingrese Attiny y haga clic en "attiny by David A. Mellis". Haga clic en Instalar y espere a que termine la descarga. Ahora en el menú Herramientas, seleccione:
Junta - Attiny 25/45/85
Procesador - Attiny 85
Reloj - interno 16
y seleccione el puerto serie al que está conectado el programador ISP o Arduino como programador.
Probé muchas bibliotecas diferentes para trabajar con la pantalla. En mi opinión, el más conveniente y trabajando en Attiny85: TinyOzOLED.
Un sensor de temperatura necesita la biblioteca OneWire.
Instala estas dos bibliotecas. Puede instalar bibliotecas de terceros directamente en el entorno de programación. Sin desempaquetar los archivos descargados, en el IDE de Arduino, seleccione el menú Sketch - Connect Library. En la parte superior de la lista desplegable, seleccione el elemento Agregar biblioteca .Zip. En el cuadro de diálogo que aparece, seleccione la biblioteca que desea agregar. Abra el menú Boceto - Conectar biblioteca nuevamente. Al final de la lista desplegable, debería ver una nueva biblioteca. Ahora la biblioteca se puede usar en programas. No olvides reiniciar el Arduino IDE después de todo esto.Si eso no ayuda, simplemente descomprima los archivos en la carpeta "bibliotecas" ubicada en la carpeta con el IDE Arduino instalado.
Paso 6 Edite y complete el boceto.
El sensor de temperatura funciona de acuerdo con el protocolo One Wire y tiene una dirección única para cada dispositivo: un código de 64 bits. Los recursos de Attiny no son suficientes para buscar este código cada vez. Por lo tanto, primero debe conectar el sensor a cualquier placa Arduino, complete el boceto ubicado en el menú Archivo - Ejemplos - Temperatura de Dallas - OneWireSearch. A continuación, ejecute Herramientas - Monitor de puerto. Arduino debe encontrar nuestro sensor, escribir su dirección y lecturas de temperatura actuales. Copiamos o simplemente escribimos la dirección de nuestro sensor. Abra el boceto Attiny85_Oled_SPI_Term_2, busque la línea:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Anotamos la dirección de su sensor entre llaves, reemplazando la dirección de mi sensor. Después de eso, conecte Attiny al programador o Arduino como programador (esto se describe en el Paso 4) y complete el boceto. Queda por desconectar el programador y conectar todo de acuerdo con el esquema en 3 pasos. El montaje resulta algo como esto:
La pantalla es pequeña, es imposible poner tanto el tiempo como la temperatura para que sea visible. Por lo tanto, el reloj cambia la hora con una lectura de temperatura cada 10 segundos.