jueves, 11 de enero de 2018

Temporizador WiFi

En esta versión de Reloj-Temporizador (Ver versión anterior), el dispositivo genera una red WiFi (modo Server) a la cual nos podemos conectar desde un celular o una tableta con S.O. Android y desde ahí configurar todos los parámetros necesarios utilizando una aplicación diseñada para ello.

Reloj - Temporizador WiFi v1.0


Luego de conectar el reloj a la fuente de alimentación, se procede a conectar los cables a los terminales del interruptor que controlan el timbre o carga a temporizar.

Conexión eléctrica timbre WiFi


Para configurar el reloj, se debe conectar el equipo (celular o tableta) a la red generada por el reloj.

Red WiFi Generada por el reloj. Busque la red WiFi Clock-MLO desde su equipo celular o tableta y conéctese a ella.

Esta red no conecta al servicio de internet, por lo que algunos equipos suelen dar aviso de ello. Esto no afecta el funcionamiento del reloj.

Aviso del equipo de que el internet no esta disponible. En algunos equipos se debe seleccionar la opción Conectar de todos modos.

Luego de que se gestione la conexión en el equipo Android, se abre la aplicación ConfigCLK.apk para configurar los parámetros.



Para realizar la configuración se selecciona el parámetro que se quiera ajustar y se escoge la opción deseada.

Los parámetros son los siguientes:

Configuración Alarmas
DIA: Lunes a Sabado
00:00: Hora de timbrado (del dia seleccionado)  0: Numero de timbres
Enviar Alarmas: Botón para enviar la configuración de las alarmas

Configuración Reloj
DIA: Lunes a Domingo  01:01:17: Configuración fecha
Hora: Configuración Hora
Configurar Reloj: Botón para configuración de la hora

Timbrado Remoto
1: Numero de timbres a realizar
Timbrar: Botón para realizar el timbrado remoto

Cambio de contraseña
Cuadro de texto: Espacio para escribir la nueva contraseña
Cambiar contraseña: Botón para configurar la nueva contraseña. Se debe presionar mas de 1seg.

Borrar Alarmas
Al presionarse sostenidamente (por mas de 1s) se borra la información de las alarmas configuradas en el reloj. El archivo donde se almacenan las memorias en el celular se borra.




Configuración Hora de timbrado


ATENCIÓN: Se debe presionar primero el botón MEMORIA USADA para leer los datos del reloj a configurar.

Luego de haber leído el número de memorias del reloj a configurar, aparecerá en el botón la información correspondientes a cuántas memorias tiene programadas. El número máximo de memorias es 500.

Luego de presionar el botón MEMORIA USADA aparece la cantidad de memoria utilizada en el reloj. En el ejemplo: el reloj tiene cofigurados 5 espacios de memoria

Para realizar la programación de la hora de timbrado, se presiona el botón de configuración del DIA y se selecciona el valor a configurar. Luego se presiona el botón de la hora (00:00) y se selecciona el valor de la hora y minuto de timbrado. Finalmente se presiona el botón de número de timbres (0) y se selecciona el valor a configurar (0 a 5).

Para guardar los datos en el reloj, se presiona el botón ENVIAR ALARMA. En el reloj se visualizará el mensaje CONF en el display y en el celular se visualizará el mensaje de DATOS PROGRAMADOS. Además, vibrará y emitirá un sonido (beep).



Los datos de las alarmas programadas se almacenan en el archivo TimbresMLO.csv en la memoria del celular. La ruta de almacenamiento es: Memoria Interna/Android



En el archivo está almacenada la información de los timbres programados en el reloj que ha sido configurado desde la aplicación. Tenga en cuenta que si configura diferentes dispositivos con la misma aplicación, la información almacenada en el archivo corresponderá a la de ambos dispositivos.

Información almacenada en el archivo. La columna A corresponde al dia, la columna B corresponde a la hora y la columna C corresponde al numero de repeticiones de timbrado.

Configuración Reloj


Para configurar la hora del reloj se realizan los ajustes en la sección Configuración Reloj.

Ajustes a la configuración de la Hora del reloj. Al presionar cada botón aparecen las opciones de configuración. Al presionar el botón Configurar Reloj se enviarán los datos al reloj.


Cuando se presiona uno de los botones de programación del reloj (Alarmas u Hora), éstos se desactivarán momentáneamente mientras se realiza el proceso de configuración de los datos, una vez finalizada dicha configuración los botones se habilitarán nuevamente.

NOTA: Si los botones no se habilitan nuevamente (o no se recibe la alerta de Datos Programados) después de varios segundos, reinicie la aplicación. Tenga en cuenta que la calidad de la señal WiFi se debilita con la distancia, por obstaculos o interferencias electromagnéticas.

Los botones de programación se desactivan mientras se configura el reloj via WiFi. Si pasado un tiempo no se recibe la alerta de configuración exitosa, reinicie la aplicación.

Para cambiar la contraseña de fábrica WiFi del reloj, se escribe la nueva clave en el cuadro donde esta el mensaje Nueva Clave.



Una vez hecho esto, se presiona durante mas de 1seg el botón Cambiar contraseña. La aplicación enviará las alertas mencionadas anteriormente y además se mostrará la siguiente información.

Aviso que da la aplicación para reiniciar el reloj y la aplicación una vez se ha realizado correctamente el cambio de contraseña.
en el display del reloj se visualizará la siguiente información, lo cual indica que se debe desconectar de la fuente de energía, esperar 5seg y volver a conectar.



Como la clave no es la misma, los equipos Android emiten una alerta de conexión fallida por autenticación.

Alerta por fallo en autentificación en la clave WiFi

Se debe ingresar a la configuración de conexiones de nuestro equipo celular o tableta y seleccionar la red Clock-MLO dando tap sostenido, con lo cual aparecerá la opción de Olvidar Red.


Opciones de configuración para el cambio de contraseña en nuestro equipo celular o tableta Android después de haber cambiado la contraseña de acceso en el Reloj WiFi
Al presionar la opción OLVIDAR podremos gestionar la conexión al RelojWiFi nuevamente con la nueva contraseña configurada. Es responsabilidad del usuario guardar y recordar dicha contraseña.

El reloj tiene las siguientes características:

  • Configuración Inalámbrica WiFi (Server) - hasta 50m de alcance.
  • Diez horas de timbrado para cada dia
  • Horarios diferentes para cada dia (Lunes a Sábado)
  • Hasta cinco repeticiones por hora de timbrado
  • Pila para respaldo a la hora interna (no necesita reconfigurarse si se va la energia electrica)
  • Memoria EEPROM para los datos del timbrado (no necesita reconfigurarse si se va la energia electrica)
  • Aplicación exclusiva para la configuración de parámetros
  • Display de 7 segmentos de alta visibilidad
  • Controla cargas de hasta 500W


Algunas capturas del dispositivo



Un video del funcionamiento del equipo


Un video de la configuracion del equipo


domingo, 26 de febrero de 2017

Modulo TM1637

En esta ocasión, me han llegado unos módulos de referencia TM1637 los cuales sirven para controlar 4 display de 7 segmentos via serial, pero no es compatible con otros protocolos como lo son el IIC y el 2wire.


Buscando en la red, encontré mucha información de la manera de utilizar el módulo con Arduino, mas no encontré algo definitivo con PICC, por lo que me puse manos a la obra.

Hice un circuito rápido en la protoboard con un PIC12F629, el cual controlará, ademas del módulo un pulsador para realizar la configuración de los dígitos con el fin de montar un reloj básico; la idea es que funcione con una interrupción interna (TIMER0, por ejemplo).


El módulo se controla con dos pines del PIC, en este caso: PIN A0 (clk) y PIN A1 (data), ademas de los pines de polarización. El pulsador lo conecté al PIN A2 con una resitencia PullUp de 10k.

No hay mucho que decir del módulo ... tiene buen brillo, el cual es configurable vía software y se puede configurar cada display enviando el respectivo byte con el segmento A en el LSB y no es necesario estar refrescando cada tiempo, lo que es una gran ventaja. Un video del montaje:



lunes, 8 de agosto de 2016

Controlador PID de Temperatura

El PID es una estrategia de control que combina tres acciones de control diferentes que son: Proporcional, Integral y Derivativo para mantener en un valor definido alguna variable que se quiera controlar, en este caso la temperatura de un horno para la fabricación de protesis acrilicas.

En este caso, el control de la temperatura tiene unas características muy bien definidas que no se pueden lograr con otras estrategias de control, como lo son el ON-OFF, como que el error en el valor programado debe ser muy pequeño y se deben cumplir unas rampas de temperaturas para garantizar que el material cure de la manera apropiada y obtenga asi las caracteristicas optimas para su utilizacion sin ningun riesgo para la salud de quien las usa.

Para diseñar dicho horno, he decidido reutilizar un horno convencional de 800W de potencia, la suficiente para lograr las temperaturas necesarias que necesita el material, y un PIC 18F252 para embeber el control PID, el control de los pulsadores y el control de fase de las resistencias termicas.


El horno tiene las rampas preprogramadas para facilitar su uso. De esta forma, bastas solo con presionar uno de los pulsadores externos para seleccionar el tipo de proceso (normal o alto impacto) y el controlador se encargara del control de temperatura y de temporizar el proceso de curación.


Luego de realizar la respectiva sintonización del controlador y de armarlo completamente en el armazón, se hizo pruebas para verificar que cumplia la rampa preprogramada.


Unas fotos del horno en accion de control.



y el resultado del proceso:



sábado, 9 de julio de 2016

Server Off Line


Una de las grandes dificultades en los colegios rurales es la falta de conectividad para que los estudiantes puedan acceder a referencias bibliográficas o ayudas audiovisuales. Muchas instituciones rurales tienen laptops y, actualmente, tabletas; mas sin embargo estas herramientas quedan casi que inutilizadas en sus verdaderas potencialidades de muestra y sistematización de información.

Una primera opción es utilizar el almacenamiento interno para guardar la información, pero esto implica un menor rendimiento en el funcionamiento de los equipos (por la cantidad de salones y asignaturas), ademas de que los contenidos quedan expuestos a ser borrados de manera accidental.

Una mejor manera de darle utilidad a estos equipos es utilizando uno de los equipos de escritorio como servidor; de hecho, en la estrategia de CPE (Computadores Para Educar) se dona un Server el cual puede ser utilizado a nuestro antojo y se capacita a los docentes en el manejo y configuración de herramientas TIC.

Este Server se puede conectar a un router, el cual, ademas de asignarle una dirección IP específica al Server, puede generar una red WiFi local con la cual se puede acceder a los contenidos alojados en dicho equipo, estos contenidos pueden ser diseñados por los docentes de cada área, y de esta forma se podría tener un espacio Off Line con todos los contenidos necesarios para reforzar los aprendizajes de los estudiantes y con la opción de manejar plataformas de manejo de cursos (Moodle).

En un primer intento por adecuar estos espacios virtuales de aprendizaje e instalado una herramienta de fácil configuración y uso llamada WampServer. Sobre esta herramienta se pueden instalar otros servicios como lo son Joomla y Moodle, y con ellos se pueden crear paginas para manejo de contenidos y manejo de aulas y actividades de aprendizaje.



Para acceder a los contenidos solo basta con escribir en el navegador la direccion IP asignada por el router.

La ventaja es que estos contenidos y aulas pueden ser accedidos de forma simultanea y sin ninguna restricción de horarios.



En mi caso, he utilizado infogramas para resumir las temáticas de tal manera que les resulte un poco mas agradable a los estudiantes.



Una de las ventajas es que la conexión es inalambrica, por lo tanto el espacio de aprendizaje no queda en el aula.






pero tampoco la excluye :)



Otra de las ventajas es que poco a poco los estudiantes se comienzan a responsabilizar del uso y contenidos de la pagina y de los equipos.




y son ellos mismos quienes educan su uso



Tan solo es necesario un pequeño espacio para realizar la configuración de la plataforma y educar poco a poco para que sean los propios estudiantes quienes asuman esta labor.



jueves, 14 de enero de 2016

Data Logger WiFi

Un data logger es un dispositivo que permite desplegar la información de un sensor determinado en alguna pantalla o display y ser almacenados en memoria para luego ser utilizados en algún análisis.

La ventaja con los dispositivos actuales como tabletas y celulares es que tienen pantallas y modos de comunicación que, sabiéndolos utilizar, pueden ser herramientas muy útiles para nuestros propósitos, como fabricar un data logger.

En este caso, he utilizado a WiBOT para que envíe datos a una aplicación para Android OS vía WiFi y sean graficados en un plano cartesiano, ademas, existe la opción de guardar los datos en un archivo para poder ser utilizado posteriormente con algún software como Excel u Origin.

Un ejemplo de aplicación pude verse en el siguiente enlace:



Al iniciar la aplicación, aparecen dos cuadros de texto en los cuales se debe ingresar los valores máximos de nuestros ejes de coordenadas (Ymax y Xmax). Es obligatorio conectarse a la red generada por el PIC para poder acceder a la información.


Al presionar el botón AJUSTAR, se dibujara un plano cartesiano con la grilla de referencia segun los valores máximos configurados.


Al presionar el botón "IniciarADQ", se iniciara la recepción de datos desde el PIC, los cuales se graficarán en la pantalla. Adicionalmente, se visualiza el dato actual y el código response.

Un vídeo de la aplicación funcionando.



La aplicacion la puedes descargar AQUI

Una de las ventajas con el uso del TCP/IP es que varios equipos pueden conectarse al mismo server y obtener la información simultánemente; algo que no se podía hacer con el Bluetooth. Esta parte de adquisición simultánea aún no funciona al 100%, pero sí hay algunos avances.




jueves, 7 de enero de 2016

Arduino - Tarjeta Multifuncion


Esta vez he trabajado con un Arduino, plataforma muy interesante para iniciarse en la programación, y una tarjeta que tiene muchas opciones hardware para divertirse por horas.

El Arduino que tengo es un Arduino UNO chino:



Los drivers USB de esta tarjeta Arduino los puedes descargar AQUI. Luego de instalarlos, el Arduino ya se puede utilizar con el IDE oficial sin ningun problema.

La tarjeta Mutifuncion es la siguiente:



Cuyo esquema es el siguiente:



Como se puede observar, se tienen varias herramientas muy útiles:

  • 4 Display de 7 segmentos
  • Canal ADC con potenciometro
  • 4 Entradas para sensores TTL con su respectiva alimentación.
  • Entrada para sensor de temperatura (LM35 o DS18B20)
  • 3 pulsadores
  • 4 LED
  • 1 Buzzer
  • Entrada para modulos seriales.
El programa que he realizado es solo a modo demostrativo de algunos de los módulos. Se despliega en el display el valor digital de la conversion AD del canal del potenciometro y con cada pulsación de los botones se enciende un LED ademas del aviso sonoro del buzzer.



El programa:
/*
    Tarjeta Multifuncion
    MLO
    miguel_626@hotmail.com
    
    Ejemplos de uso de los diferentes modulos de la tarjeta.
*/
//Botones
#define BUTTON1 A1
#define BUTTON2 A2
#define BUTTON3 A3

//Buzzer
#define BUZZER_DIO 3

//Estados para los LED y el Buzzer
#define OFF HIGH
#define ON LOW

//LED
const byte LED[] = {13,12,11,10};

//Control del display
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8
//Numeros display
const byte SEGMENT_MAP[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90};
const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};

//Potenciometro
#define PotPin 0

void setup() {
  pinMode(BUZZER_DIO, OUTPUT);
  digitalWrite(BUZZER_DIO, OFF);
  
  pinMode(LED[0], OUTPUT);
  pinMode(LED[1], OUTPUT);
  pinMode(LED[2], OUTPUT);
  pinMode(LED[3], OUTPUT);
  
  digitalWrite(LED[0], OFF);
  digitalWrite(LED[1], OFF);
  digitalWrite(LED[2], OFF);
  digitalWrite(LED[3], OFF);
  
  pinMode(LATCH_DIO,OUTPUT);
  pinMode(CLK_DIO,OUTPUT);
  pinMode(DATA_DIO,OUTPUT);
}

void loop() {
  if(!digitalRead(BUTTON1))             
  {
    digitalWrite(LED[0], ON);
    digitalWrite(LED[1], OFF);
    digitalWrite(LED[2], OFF);
    digitalWrite(BUZZER_DIO, ON);
    delay(20);
    digitalWrite(BUZZER_DIO, OFF); 
  }
  
  if(!digitalRead(BUTTON2))             
  {
    digitalWrite(LED[0], OFF);
    digitalWrite(LED[1], ON);
    digitalWrite(LED[2], OFF);
    digitalWrite(BUZZER_DIO, ON);
    delay(20);
    digitalWrite(BUZZER_DIO, OFF); 
  }
  
  if(!digitalRead(BUTTON3))             
  {
    digitalWrite(LED[0], OFF);
    digitalWrite(LED[1], OFF);
    digitalWrite(LED[2], ON);
    digitalWrite(BUZZER_DIO, ON);
    delay(20);
    digitalWrite(BUZZER_DIO, OFF); 
  }
   
   WriteNumber(analogRead(PotPin));
}

void WriteNumber(int Number)
{
  WriteNumberToSegment(0 , Number/1000);
  WriteNumberToSegment(1 , (Number/100)%10);
  WriteNumberToSegment(2 , (Number/10)%10);
  WriteNumberToSegment(3 , Number%10);
}

void WriteNumberToSegment(byte Segment, byte Value)
{
  digitalWrite(LATCH_DIO,LOW); 
  shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
  shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
  digitalWrite(LATCH_DIO,HIGH);    
}


Con eso es suficiente para poder utilizar la tarjeta para nuestros propios propósitos de diseño. 

sábado, 24 de octubre de 2015

Sistema de recirculacion de agua

En esta ocasión, comparto un sencillo sistema que permite reutilizar el agua de los ciclos de lavado. Es conveniente utilizar el agua a partir de la segunda descarga del ciclo de enjuague, ya que en la primera descarga, el agua sale con mucho detergente.

El sistema hidráulico solo consta de unas mangueras en un circuito cerrado bastante básico:  el agua que sale del ciclo de descarga, se almacena en un tanque para luego ser utilizada en el inodoro.

Para no estar ocupando tiempo innecesario en la activación de llaves y el encendido de interruptores (en mi caso el tanque de almacenamiento esta en un primer piso y el baño esta en un segundo piso) para activar una bomba centrifuga, he utilizado un controlador basado en un PIC12F cuya fuente de energía eléctrica es un panel solar.

Un diagrama de como esta dispuesto el sistema:


Luego subiré fotos del sistema montado en totalidad.