Reloj-Texto con dos alarmas y 2 husos horarios

Reloj-Texto con 2 alarmas y 2 husos horarios. Digitalización de audio analógico, para almacenarlo en la memoria de un ESP32. Estos archivos de audio contienen señales acústicas y mensajes de voz, para utilizarlas en el nuevo firmware del display Reloj-Texto controlado por el ESP32. Con esta actualización, el display Reloj-Texto dispondrá de dos alarmas horarias, pudiendo configurarlas con alguno de las dos husos horarios que gestiona el nuevo firmware. El display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, pudiendo mostrar la hora local, a elegir entre dos husos horarios diferentes.

Reloj y Texto en display LED, con ESP32

Audio sintetizado

El sonido de la alarmas no lo haré activando un buzzer piezoeléctrico, será un sonido PCM de 8 bit, el cuál grabaremos en la memoria del ESP32. Esa información de audio digital, se convertirá en audio analógico aprovechando uno de los dos conversores D/A (DAC) que incluye este microprocesador. En este caso, como el pin GPIO25 ya se está utilizando en este reloj, la salida de audio será a través del pin GPIO26

Muestreo y Retención

Es la extracción de algunos valores instantáneos de duración teóricamente nula. Según la teoría de Shannon,  para muestrear una señal y poderla reconstruir, es necesario que el muestreo se realice un número de veces al menos igual al doble de la frecuencia máxima a muestrear. Para muestrear una frecuencia vocal de 4 kHz, necesitaríamos muestrear  como mínimo a:  4×2=8 kHz.

Esto lo podríamos representar con un interruptor que se abriera y cerrara 8.000 veces por segundo. A la salida de éste, obtendríamos una secuencia de impulsos cuya amplitud sería el valor instantáneo que tenía la señal de audio original.

Cuantización

Es la conversión que efectuamos para trasladar los valores instantáneos de tensión de la señal muestreada, a una escala compuesta por una serie de niveles. Cuanto mayor sea el número de niveles, mayor será la relación S/R. Como es de esperar, estos niveles los analizaremos con un sistema binario, para posteriormente poderlos transmitir de una forma digital. Con los sistemas PCM de 8 Bit, se obtienen 256 niveles de cuantización (±127 con respecto a cero).

Codificación

Es el proceso de lectura, de forma digital, de la secuencia de valores cuantizados. Esto quiere decir que a cada nivel de cuantización le corresponde un valor binario determinado, y dependiendo del número de niveles, necesitaríamos un número de bit por cada muestra. Esta es la primera limitación que encontramos para cuantizar la señal con un máximo de niveles, pues necesitamos transmitir todos los valores instantáneos de una muestra, en un tiempo máximo dado por la inversa de la frecuencia de muestreo ( t = 1/f ).

Esquema de montaje

Para que este display Reloj-Texto funcione, sólo hay conectar 5 hilos entre un lateral del display LED y el módulo ESP32. El sonido de la alarma sale por el pin GPIO26 del módulo ESP32, y hay que conectarlo a un amplificador de audio con su altavoz.

IMPORTANTE: la salida de audio DAC del ESP32 está referenciada a 1.5V.  Así es necesario bloquear la corriente continua continua a la entrada del amplificador de audio, intercalando en serie un condensador cerámico de aproximadamente 100nF. Como el nivel de audio a la salida DAC puede llegar a medir 3Vpp, es conveniente intercalar un atenuador a la entrada del amplificador, intercalando un divisor de tensión resistivo, o un potenciómetro si se quiere disponer un ajuste del nivel de audio.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub: Clock-Text_ESP32

Caja 3D (Reloj-Texto)

El fichero .stl que necesitas para fabricar la caja de este display LED, lo puedes descargar desde el siguiente enlace: Clock-Text with 2 alarms and 2 time zones (revision)

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

Reloj de precisión, 8 x 7 segmentos LED

Construcción de un reloj de precisión, con 8 dígitos LED de 7 segmentos. Este display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, convirtiéndolo así en un reloj muy preciso. Este display está construido con el módulo ESP32 y 8 dígitos LED de 7 segmentos, pudiendo conectar también un segundo display OLED de 64×48 pixel (0,66 pulgadas).

 

8 dígitos de 7 segmentos con MAX7219

Hace unos meses monté un reloj de precisión, sincronizado desde un servidor NTP. Hice dos versiones distintas, y en ambas utilicé 4 matrices LED de 8×8 pixel.

Reloj de precisión, configurado por WiFi

El primer reloj tenía un display adicional de tipo OLED, y en el segundo sólo instalé las 4 matrices LED con el fin de reducir el tamaño de la caja.

Reloj y Texto en display LED, con ESP32

Ahora voy a montar otro reloj todavía más pequeño y barato, utilizando 8 dígitos LED de 7 segmentos.

8 dígitos LED de 7 segmentos

Este reloj tendrá la misma precisión y funcionalidades que los anteriores, sincronizando la fecha y hora a través de un servidor NTP, y controlando sus funciones mediante un interface Web, a través de una conexión WiFi.

Esquema de montaje

El montaje de este reloj es muy rápido y sencillo,  sólo hay que conectar 5 hilos entre un lateral del PCB de 8 dígitos y el módulo ESP32.

Esquema de montaje del reloj de 7 segmentos

Configuración con interface WEB

Este reloj LED se configura a través de su propio interface Web, tecleando la dirección IP que le asigna el Router WiFi, en la ventana de cualquier navegador de Internet que esté conectado a la misma red. Todos los cambios se guardan en la memoria EEPROM del módulo ESP32.

Configuración del reloj por WiFi

De esta forma el reloj siempre arrancará con los parámetros que tenía programados la última vez que se desconectó su alimentación.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub:

Precision_Clock_ESP32_7Segment

Y también desde Dropbox:

ESP32_Time_8BCD_JR.rar

Caja 3D (Reloj de 7 segmentos)

 

Caja 3D, para el PCB de 8 dígitos LED de 7 segmentos

El fichero .stl que necesitas para fabricar la caja de este reloj LED de 7 segmentos, lo puedes descargar desde el siguiente enlace: Precision clock on 7 segment LED display, configured by WiFi

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

 

Reloj y Texto en display LED, con ESP32

Construcción de un display LED de reloj y texto con matrices LED. Este display se configura desde un teléfono móvil vía WiFi. La información de la fecha y hora se sincroniza a través de un servidor NTP, convirtiéndolo así en un reloj muy preciso. Este display está construido con el módulo ESP32 y 4 matrices LED de 8×8 pixel. De forma opcional, también se puede montar un segundo display OLED de 64×48 pixel (0,66 pulgadas).

Este display lo he montado con un módulo LED que ya contiene las 4 matrices, en lugar de los 4 módulos independientes que utilicé en el montaje anterior:

Reloj de precisión, configurado por WiFi

Matrices LED de 8×8 pixel

En la construcción del último reloj LED que monté, lo hice conectando 4 matrices LED de 8×8 pixel. Estas matrices llevan las conexiones de entrada y salida por la cara inferior y superior, y esto obliga a que el tamaño del reloj sea más grande de lo necesario.

Matriz LED 8x8 pixel

En este caso voy a montar otro reloj con un display LED del mismo tamaño, pero será más pequeño que el anterior. Aunque el nuevo firmware también permite utilizar un segundo display OLED, en este caso no lo voy a montar, y además utilizaré 4 matrices LED interconectadas en un sólo PCB.

PCB con 4 matrices LED de 8x8

Esquema de montaje

El montaje de este reloj es muy rápido y sencillo,  sólo hay que conectar 5 hilos entre un lateral del display LED y el módulo ESP32.

Montaje del display: Reloj-Texto

Configuración con doble interface WEB

Ahora el display LED permite mostrar la hora, o textos rotantes de hasta 255 caracteres. Tanto el modo de funcionamiento como su configuración, se programa a través de una conexión WiFi, y se guarda en la memoria EEPROM del módulo ESP32. De esta forma el reloj arranca siempre en el modo en el que se dejó la última vez: modo texto, o modo reloj.

Doble interface WEB

Esta nueva versión de firmware incluye un menú WEB con nuevas opciones,  y también animaciones cada vez que se reciben datos desde el reloj.

Firmware

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHub: Clock-Text_ESP32

Caja 3D (Reloj-Texto)

Caja 3D, para el PCB de 4 matrices LED de 8x8

El fichero .stl que necesitas para fabricar la caja de este display LED, lo puedes descargar desde el siguiente enlace: Clock and Text on LED display, configured by WiFi

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

Transmisor DCF77 con ESP32

Construcción de un pequeño transmisor de 77,5 KHz, para poder poner en hora los relojes DCF77 que no reciban correctamente la señal del transmisor de Alemania. Este transmisor es portátil, funciona con una batería de 3,7V y es muy preciso, ya que toma la información de la fecha y hora sincronizando previamente su reloj a través de un servidor NTP. Este transmisor está construído a partir del módulo ESP32, acoplando un pequeño display OLED de 64×48 pixel y 0,66 pulgadas.

ESP32 + OLED

Sistemas de sincronización horaria

Actualmente existen muchos métodos para mantener la hora exacta en cualquier dispositivo electrónico, ya sea través de un receptor GPS, o la recepción de la señales horarias en onda larga que se emiten desde diferentes países: 77,5 kHz desde Frankfurt en Alemania, 40 y 60 kHz desde Japón, 60 KHz desde Colorado en EE.UU, 66,66 kHz desde Taldom en Rusia, 68,5 kHz desde Lington en China, 60 kHz desde Anthorn en Reino Unido, o 162 kHz desde Allouis en Francia.

Cobertura DCF77

La mayoría de los relojes sincronizados por radio que se venden en Europa, utilizan la recepción de las señales horarias que envía el transmisor DCF77 desde Frankfurt, en Alemania.  Como sucede con cualquier transmisión por radio en Onda Larga, su cobertura varía en función de la distancia, climatología y el umbral de ruido electromagnético existente en el punto de recepción.

Con el fin de poder utilizar algunos relojes DCF77 que no disponen de ajuste de hora manual, hace algo más de un año publiqué una información para construir un pequeño transmisor que simulara la emisión DCF77. Este transmisor constaba de dos partes: una hardware construida con Arduino, junto con un software que funcionaba bajo Windows, encargado de suministrar los códigos de tiempo al transmisor.

Transmisor experimental DCF77

Tiempo UNIX

Tiempo Unix  se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970, sin contar segundos intercalares. El tiempo que representa es UTC, pero no tiene forma de representar segundos bisiestos de UTC (por ejemplo, 1998-12-31 23:59:60).

Cualquier dispositivo que disponga de una conexión a Internet, podría sincronizar su fecha y hora con gran precisión en cuestión de segundos. Sólo es necesario  conectarse a un servidor NTP para recibir el código de tiempo, y luego introducir los comandos en una librería para que nos entregue la fecha y hora local en la zona que queramos .

D1 mini ESP32

Para hacer este nuevo transmisor DCF77, he utilizado una placa ESP32 y un pequeño display OLED de 64×48 pixel, 0,66 pulgadas. El módulo ESP32 dispone de todo lo se necesita para hacer un transmisor DCF77  completo.

Bloques ESP32
ESP32
  • Procesador de 32 bit, que permite generar la frecuencia de 77,5 kHz con mucha más precisión que Arduino.
  • Reloj en tiempo real (RTC) para gestionar el envío de los códigos de tiempo DCF77
  • Interface WiFi, para conectar a un servidor NTP y sincronizar la fecha y hora con gran precisión.

LIVE D1 mini ESP32

El módulo ESP32 es capaz de sincronizar cualquier reloj DCF77 por si solo, incluso se podría prescindir del display. Sólo sería necesario conectar un trozo de cable en el pin IO25 (antena) y acercarlo al reloj, aunque su alcance sería muy limitado.

MiniKit ES32

HW-699 0.66″ OLED display (64×48)

Con este display, además de mostrar la fecha y hora, es posible saber qué está haciendo el transmisor DCF77 en cada momento. El display  HW-699 se comunica con el módulo ESP32 mediante su interface I2C, y es posible configurarlo con dos direcciones diferentes (0x3C / 0x3D). Por defecto utiliza la dirección 0x3C, y así es como lo he utilizado para hacer este montaje.

Display OLED 0,66"

Módulo ESP32, dentro del transmisor DCF77

Aprovechando que ya tenía un transmisor DCF77 con Arduino, he montado dentro de su caja el módulo ESP32, junto con el display OLED. De esta manera aprovecho además de la caja su fuente de alimentación (batería 3,7V + StepUp 5V + módulo de carga), los indicaciones LED y el amplificador de potencia junto con su bobina de antena.

Esquema: Transmisor DCF77

Firmware:

Repositorio GitHub:
https://github.com/J-RPM/DCF77-Transmitter

El archivo que necesitas para programar el ATmega328P, lo puedes descargar de forma gratuita desde el siguiente enlace: TX_DCF77.rar

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el siguiente enlace: DFC77_ESP32_JR.rar

Soporte 3D (ESP32+Display)

Soporte OLED

El fichero .stl que necesitas para fabricar esta soporte, lo puedes descargar desde el siguiente enlace: DCF77 transmitter with ESP32

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

https://www.pcbway.es/

Control-Medidor de Ozono en el aire, con Arduino

Construcción de un medidor de ozono en el aire con Arduino. Al mismo tiempo, este medidor se encargará de controlar el encendido y apagado del equipo generador de ozono, manteniendo así un nivel de concentración prefijado, dentro de un compartimento destinado a la desinfección de objetos. El sensor de gas ozono tipo MQ-131, de baja concentración, permite medir concentraciones de ozono en el aire comprendidas entre 0,01 y 1 ppm.

Medidor de la concentración de ozono en el aire

 

Concentración de Ozono en el aire

El ozono es muy bueno para desinfectar locales, ropa de trabajo, mascarillas y también alimentos. Debido a la situación actual, se están vendiendo generadores de ozono de todo tipo, y muchos de ellos orientados al uso doméstico.  El ozono, al igual que cualquier producto desinfectante, hay que utilizarlo con precaución. Es importante destacar que el ozono es un gas tóxico para los pulmones. Los generadores de ozono hay que utilizarlos en sitios cerrados y sin gente dentro.

Concentración máxima de ozono en el aire durante 8 horas

El problema que tiene el ozono frente a otros productos desinfectantes, es que es muy difícil de dosificar. El ozono es un gas muy inestable y no se puede envasar, debido a que las moléculas del ozono se recombinan muy rápidamente, convirtiéndose de nuevo en oxígeno. Cuando se utiliza el ozono como desinfectante, lo más importante es calcular el tiempo que debería estar funcionando el equipo generador. Ese tiempo dependerá del valor de concentración de ozono que necesitemos alcanzar (ppm), y varía en función de los metros cúbicos desinfectar (volumen) y de la potencia del generador.

Desinfectantes

Teniendo en cuenta que la producción de ozono de un generador varía en función de la calidad del aire (temperatura, humedad…) y además depende del rendimiento de su elemento reactor, el cual se envejece y no es muy lineal; la única manera de calcular ese tiempo sería mediante un equipo de medida, que a su vez controlara el encendido y apagado del equipo generador de ozono. Este interruptor funcionaría como el termostato de una calefacción, conectando y desconectando el generador en función de la concentración de ozono en el aire que se quisiera alcanzar.

Sensores de gas MQ

MQ  es una familia de sensores de gas, orientados a medir diferentes compuestos químicos dependiendo del modelo de sensor que se utilice. Los sensores MQ están compuestos por un elemento semiconductor (óxidos metálicos) sensible a cada tipo de gas, el cuál varía su resistencia en función de la concentración de gas en el aire.

Sensores de gas de la serie MQ

Estabilidad y Precisión de los sensores MQ

Para obtener una mayor estabilidad, los sensores MQ incorporan una resistencia calefactora, lo cual supone un consumo extra y una falta de precisión en las medidas que se realicen al poco tiempo de alimentar el sensor. Otro punto importante a considerar, es que cada modelo de sensor MQ tienen alta sensibilidad a un gas específico, pero en menor medida también reaccionan o otros gases, y esto provoca una mayor imprecisión. Por ejemplo, el sensor de ozono MQ-131 tiene una alta sensibilidad al ozono, pero también es sensible a otros gases oxidantes como el cloro y el dióxido de nitrógeno.

Módulo sensor de gas ozono MQ-131

Para obtener una precisión mínima, es necesario calibrar cada sensor, y almacenar su valor de resistencia sin presencia de gas, dentro del firmware encargado de calcular las medidas. La precisión de estos sensores depende muchos factores internos y externos difíciles de controlar (temperatura de trabajo, humedad, envejecimiento del sensor), y nunca deberían utilizarse como elemento de control en lugares críticos.

Detalles del módulo sensor de gas ozono MQ-131

Con la ayuda de un controlador programado, por ejemplo con Arduino, los sensores MQ los podemos utilizar para medir la concentración de un gas determinado, dependiendo del modelo de sensor que elijamos.  Los sensores de gas MQ pueden comprarse sueltos, pero es muy común conseguirlos ya montados en un pequeño PCB, en el cuál se incluye un circuito comparador que nos proporciona una salida digital extra, además de la propia salida analógica del sensor. A través de la resistencia variable (trimmer) que incluyen estos circuitos , podríamos prefijar un umbral máximo de gas, y disparar una alarma.

Esquema genérico, para utilizar con los sensores de tipo MQ

Medidor-Controlador de Ozono

En el caso del sensor MQ-131, muy sensible al gas Ozono, mediante esta salida digital podríamos controlar el encendido y apagado de un generador de ozono. Esto sería muy útil para mantener un nivel alto de ozono dentro de un compartimento cerrado (cabina, caja, etc.) con el fin de desinfectar objetos personales, utensilios de trabajo, ropa, etc.

Esquema del Medidor-Controlador de ozono.

Descargar el firmware

El firmware que necesitas para programar el ATMEGA328P (Arduino UNO),  los puedes descargar desde el siguiente enlace:  MQ-131_JR.rar

Cubierta del sensor, impresa en 3D

La cubierta de protección del sensor gas la he fabricado con PLA. El PCB del sensor se fija a esta cubierta sin tornillos,  calentando con un soldador los 4 resaltes de PLA que sobresalen por los orificios del PCB, una vez encajado en la cubierta.

Carcasa 3D, para el sensor de gas MQ

Los archivos que necesitas para imprimir esta cubierta de protección, los puedes descargar desde el siguiente enlace: Cover for MQ gas sensor

¿Necesitas fabricar un PCB?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay. Hasta un 30% de descuento para PCBs especiales, con fabricación en 24 horas.

Logo: PCBWay
Ahora el servicio de montaje en PCBWay por tan solo 30$, con tiempo de entrega rápido: https://www.pcbway.es/