jueves, 24 de marzo de 2016

Cagei: Configuración del módulo reloj ds1307

Conexión del módulo al arduino uno  
Tomado de: http://www.geekfactory.mx/wp-content/uploads/2015/03/arduino_tinyrtc_diagrama_conexion.png 
Imagen propia


Luego de conectar el módulo al arduinio, procedemos con el siguiente sketch para programar la fecha y hora de acuerdo al pc donde hemos conectado nuestro arduino, siguiendo el siguiente programa, descarga primero la libreria RTClib.h, (ver cómo agregarla):

#include <Wire.h> 
#include "RTClib.h"
RTC_DS1307 RTC;

void setup () {
Wire.begin(); // Inicia el puerto I2C
RTC.begin(); // Inicia la comunicación con el RTC
RTC.adjust(DateTime(__DATE__, __TIME__)); 
// Establece la fecha y hora (Comentar una vez establecida la hora)
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
}

void loop () 
{
}

Una vez subido este programa, ya se debe haber configurado el ds1307 con la fecha y hora, para poderla conocer en el monitor serial, cargamos el siguiente programa:

#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Wire.begin(); // Inicia el puerto I2C
RTC.begin(); // Inicia la comunicación con el RTC
//RTC.adjust(DateTime(__DATE__, __TIME__)); // Establece la fecha y hora (Comentar una vez establecida la hora)
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
}
void loop(){
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
   
Serial.print(now.year(), DEC); // Año
Serial.print('/');
Serial.print(now.month(), DEC); // Mes
Serial.print('/');
Serial.print(now.day(), DEC); // Dia
Serial.print(' ');
Serial.print(now.hour(), DEC); // Horas
Serial.print(':');
Serial.print(now.minute(), DEC); // Minutos
Serial.print(':');
Serial.print(now.second(), DEC); // Segundos
Serial.println();
delay(1000); // La información se actualiza cada 1 seg.
}

tomado de: http://www.tuelectronica.es/tutoriales/arduino/reloj-rtc-i2c-con-arduino.html

Aquí algunos tips con alarmas que pueden servir en nuestro proyecto:


Un vistazo a lo que llevo del código del temporizador, con el cual esperamos encender 
un reflector led de 10W de las 6:00 a las 20:00 horas, al igual que un aireador cuatro veces al día.
Aún no está completo el código, pero ya funciona con el modulo ds1307 con los horarios establecidos,
falta aún el sensor DTH11 y el módulo bluetooth HC06, pero con este código ya se puede
empezar a experimentar con las lechugas en la maqueta construida.





#include <Wire.h> 
#include "RTClib.h"

RTC_DS1307 RTC;

int hora=0;
int minutos=0;
int segundos=0;
int luz=13;
int aire=12;


void setup () {
  //Inicializamos el puerto serie, wire y el modulo RTC
    Serial.begin(9600);
    Wire.begin();
    RTC.begin();
    //Si quitamos el comentario de la linea siguiente, se ajusta la hora y la fecha con la del ordenador
    //RTC.adjust(DateTime(__DATE__, __TIME__));
  
  pinMode(luz,OUTPUT);
  pinMode(aire,OUTPUT);

  }
  
void loop () 
  {
    
 // Se llama a la función fecha() para imprimir la fecha en el monitor serie -----
    fecha();
//-------------------------------------------

 //lee el tiempo del modulo ds1307, previamente se ha configurado con la hora.
    DateTime now = RTC.now();
    hora=(now.hour(),DEC);
    minutos=(now.minute(),DEC);
    segundos=(now.second(),DEC);

// tanto el temporizador de luz como aire se puede incluir en un if mayor
// para dar la opción de manual o automático y poder mostrar desde el celular
// como se puede accionar con la app.


//-------------------------- TEMPORIZADOR  DIGITAL PARA ENCENDER LA ILUMINACION ------------------------
// el foto periodo inicia a las 6am y termina a las 20:00 horas o 8pm.
// 14 horas de luz, con un periodo de 10 sin la misma.
// hay que buscar la manera de modificar esto desde android, pero que quede grabado en rom.

  if (now.hour()>= 6 && now.hour()<20)
  {
  digitalWrite(luz,HIGH);
  Serial.println("led on");
  }
  else 
  {
  digitalWrite(luz,LOW);
  Serial.println("led off");
  }

  
//--------------------TEMPORIZADOR PARA ENCENDER Y APAGAR EL AIREADOR -----------------------------------

// Este se encenderá 4 veces al día, de las 1:00 a las 3:00;    2 horas
// de las 9:00 a las 11:00                                      2 horas
// de las 13:00 a las 14:00                                     1 hora
// de las 18:00 a las 20:00                                     2 horas total 7 horas, potencia del aireador 5W

if (now.hour()>= 1 && now.hour()<3)
  {
  digitalWrite(aire,HIGH);
  Serial.println("aireador on");
  }
  else if (now.hour()>= 9 && now.hour()<11)
    {
      digitalWrite(aire,HIGH);
      Serial.println("aireador on");
    }
      else if (now.hour()>= 13 && now.hour()<14)
        {
        digitalWrite(aire,HIGH);
        Serial.println("aireador on");
        }
        else if (now.hour()>= 18 && now.hour()<20)
          {
            digitalWrite(aire,HIGH);
            Serial.println("aireador on");
          }
  else
  {
  digitalWrite(aire,LOW);
  Serial.println("aireador off");
  }



delay(1000);   
   
}//cierre del void loop



//-------------- función para leer la fecha del ds1307-----
//-------------- también escribe en el monitor serie ------

void fecha(){
   
    //lee el tiempo del modulo ds1307, previamente se ha configurado con la hora.
    DateTime now = RTC.now();
    hora=(now.hour(),DEC);
    minutos=(now.minute(),DEC);
    segundos=(now.second(),DEC);
  
   //imprimimos por el monitor serial para ver la información en el pc
  
    //Imprimimos el dia
    Serial.print(now.day(), DEC);
    Serial.print('/');
    //Imprimimos el mes
    Serial.print(now.month(), DEC);
    Serial.print('/');
    //Imprimimos el año
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    //Imprimimos la hora
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    //Imprimimos los minutos
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    //Imprimimos los segundos
    Serial.print(now.second(), DEC);
    Serial.println();
  }
//---------------- FIN FUNCION FECHA-------------------------------------------

En la siguiente entrada se puede apreciar la continuación del proyecto con el sensor de temperatura y humedad.

lunes, 30 de marzo de 2015

Azadas de rueda

Estas son ideas prácticas para optimizar las labores del campo mediante la incorporación de conceptos de ergonomía y sustentabilidad.







domingo, 18 de enero de 2015

Construcción del invernadero

Hacer los sueños realidad en una institución educativa es algo complicado, pero cuando se cuenta con el apoyo de la comunidad, de estudiantes y el respaldo de las directivas todo es posible, este es nuestro caso, aprovechando un poco la semana santa, y con el apoyo de don Gonzalo (maestro de obra) iniciamos la construcción de nuestro invernadero, que nos servirá para implementar los diferentes proyectos que hemos desarrollado, y de esta manera potenciar la investigación como un proceso que genera conocimiento, y no solo como un proceso para hacer dispositivos.

Preparamos las guaduas
Marcamos en el terreno donde van las bases o pilares, con el palín hacemos las perforaciones. 

Ingresamos las guaduas en el orificio que debe tener alrededor de 60 a 80 cm de profundidad. 
Pisamos la tierra que vamos echando. 

Continuamos con la limpieza de las guaduas.

Hay que tener en cuenta los niveles, por eso usamos la manguera de nivel y hacemos una marca en una de las guaduas, la cual se replica en otra.


Amarramos las guaduas que van como largueros, empleando alambre galvanizado y puntillas.

Las guaduas que van a ser de canal o techo las aseguramos con tornillo o esparrago de 3/8", por eso con una broca para madera del mismo o diametro superior hacemos las perforaciones. 
Así debe quedar las uniones. 
Continuamos limpiando las guaduas. 

Debido a que contamos con pocas guaduas, y algunas están llenas de agua, hacemos algunas perforaciones en las mismas para drenarlas. 

Se contruye la puerta con listones y arnillas. 
 
 Como se había explicado, una vez hechas las perforaciones en las guaduas se procede a insertar el tornillo sin fin de 3/8".
Usando dos llaves de 9/16 se ajustan las tuercas. 

El tornillo sobrante se corta con una segueta, recuerde que la hoja debe ser para cortar hierro, hay que tener en cuenta que un extremo se debe conservar, pues si no, no hay forma de seguir ubicando las tuercas en el tornillo ya que un corte mal hecho daña la rosca del mismo.

Después de tener la estructura se procede a ubicar las arnillas de 10 cm de ancho, que nos servirán de soporte para recibir el plástico, en este caso calibre 7.

Amarramos las arnillas a las guaduas, o las atornillamos, recuerde en caso de no haber nudo o empalme, se debe ingresar un liston al interior de la guadua que reciba la puntilla o tornillo, y este debe quedar asegurado a la guadua.

Así queda la estructura, que tiene 2m de ancho por 5m de largo. 
Con mucho cuidado vamos extendiendo el plástico por encima de la misma.

Los sobrantes deben quedar simétricos. 
Se hacen cortes del plástico en las esquinas.

Para posibilitar el ajuste y poder tensionar el plástico. 
Usando una arnilla de 4cm, envolvemos el plástico y con puntillas y tornillos lo aseguramos. 
Aún nos hace faltan detalles y cubrir las paredes con las botellas, tal como lo hicimos en nuestra maqueta, pero poco a poco vamos haciendo nuestros sueños realidad.