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, tableta o PC por medio de una página web y desde ahí configurar todos los parámetros necesarios utilizando un navegador web (Chrome u otro).

Vista frontal del reloj WiFi. En la parte superior están los conectores para el interruptor, en la parte inferior está el puerto de conexión USB para energizarlo.


El reloj se energiza con un cargador USB para celular y se conecta en paralelo a los terminales del interruptor que controlan el timbre o carga a temporizar.

Conexión eléctrica timbre WiFi. Se conecta en paralelo al timbre físico del timbre.


Para configurar el reloj o gestionar un timbre manual, se debe conectar a la red WiFi generada por el equipo. El nombre de la red esta en la parte superior izquierda de la pantalla: MLO-CLK-c3. Se busca la red y se gestiona la conexión.

Selección de la red WiFi generada por el reloj


La red generada es solo para configuración, no tiene acceso a internet. Algunos equipos visualizan una alerta. Se debe seleccionar la opción de conexión.



Si la conexión se hizo adecuadamente, se visualizará un ícono en la parte inferior izquierda de la pantalla.

Nombre de la red WiFi en la parte superior izquierda, ícono de conexión en la parte inferior izquierda, En la pantalla del reloj se indica el estado de la batería interna (parte superior derecha) y la próxima hora de timbrado (parte inferior derecha).

Para configurar la hora del reloj y horas de timbrado, se abre una pestaña del navegador web y se accede a la página de configuración: 192.168.4.1. 

Dirección IP de conexión con la página web de configuración del reloj.


O escanee el QR con su celular o tableta.


Recuerde que debe estar conectado a la red que genera el reloj para poder acceder a la página de configuración.

Página web de configuración del timbre WiFi.

La primera sección de la página de configuración tiene la información de hora actual del reloj, estado de batería interna y botón para deshabilitar los timbres programados.



En la segunda sección de la página de configuración se ajustan las horas de timbrado y tiempo de duración de la campana (en segundos). Para guardar, se presiona el botón GUARDAR. Aparecerá una nueva página con el mensaje de guardado correcto. También se encuentra el botón TIMBRAR para accionar el timbre al momento de presionarlo.


En la tercera sección se puede configurar la hora y fecha del reloj interno. Esta opción es para actualizar la hora del reloj en caso de inestabilidad en la red ya que esto interfiere con el conteo exacto del tiempo. Ajuste el reloj cada vez que crea necesario hacerlo. 

Es muy importante que tenga en cuenta el formato en el que debe escribir la hora y la fecha. En los campos de configuración está el ejemplo de cómo debe escribir los datos. El formato de la hora es 24h.

En la sección de configuración de hora y fecha se debe tener en cuenta el formato de ingreso de los datos: 24h para la hora. Escríbalos como se muestra en el ejemplo que aparece en el campo de configuración.


Tenga en cuenta que los navegadores guardan las páginas web que se usan frecuentemente, por lo que al abrir el navegador, encontrará fácilmente la página de configuración del reloj, lo que facilita su acceso luego de la conexión a la red WiFi generada por él.

Icono agregado en el navegador para acceder rápidamente a la página de configuración del reloj. Recuerde que debe estar conectado a la red WiFi generada por el reloj.

Para borra una hora presione la hora a borrar y presione la tecla DEL si está en un navegador web desde el PC. Si está en un celular o tableta, seleccione la opción borrar que aparece en la ventana de ajuste de horas y minutos.













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.