lunes, 13 de marzo de 2017

Invernadero Automatizado y control de riego






Este proyecto se basa en la automatización  y el control de riego de un invernadero a través de arduino y mediante una red inalámbrica.


Componentes para el proyecto:
- Arduino Uno
- Arduino Atmega 2560
- Sensor de temperatura y humedad DTH11
- Sensor de humedad del suelo higrómetro
-2 motores DC 6V con reductora
- Ventilador 12 V
- 2 Modulos rele para arduino
- Electroválvula DC 12 V
- Modulo bluetooth
- 4  Interruptores
- Fuente de alimentación 12 V
- Puente en H
Dimensiones del invernadero;
-70 cm de ancho
-70 cm de largo
-50cm de alto

Componentes para el invernadero:
- Plancha de madera de 1m x 1m
- 6 barras de madera de 35cm
-3 barras de madera de 50 cm
-Plástico
-Mangas de plástico
- 2 Varillas de acero de 70 cm


Diagrama de Gantt







Funcionamiento de el proyecto

Control de motor de las bandas:
A través de el sensor de temperatura y humedad dth11, dependiendo de la temperatura y humedad que haya en el invernadero a través de arduino accionaremos los motores para que se produzca la subida de las bandas o la bajada, por lo que también se accionara el ventilador para ayudar a expulsar el aire y humedad mas rápidamente, los motores se detendrán a través de los finales de carrera de los que disponen cada banda,.


Control de riego:
A través de una electroválvula y un sensor de humedad de suelo podremos determinar si la plantación necesita ser regada, a través de arduino y los valores que de el sensor podremos obtener la situación del suelo y si la humedad es baja se accionara la válvula a través de un modulo relé que la controla a una tensión de 12 V.

Control Manual:
A través de unos interruptores podremos controlar de forma manual el cierre o la subida de las bandas de los invernaderos.


                           PROGRAMACION

Control Bandas:
Atmega

#include <DHT11.h>
int pin=23;
DHT11 dht11(pin);
int ENA = 10;
int IN1 = 9;
int IN2 = 24;
int ENB = 5;
int IN3 = 22;
int IN4 = 6;
int fin1 = 25;
int fin2 = 26;
int ventilador = 27;
int up = 30;
int  down = 31;
float temperatura;
float humedad;
int Manu = 32;
int automa = 35;
void setup()
{
  Serial.begin (9600);
  while (!Serial);
  pinMode (ENA, OUTPUT);
  pinMode (ENB, OUTPUT);
  pinMode (IN1, OUTPUT);
  pinMode (IN2, OUTPUT);
  pinMode (IN3, OUTPUT);
  pinMode (IN4, OUTPUT);
  pinMode (fin1,INPUT);
  pinMode (fin2,INPUT);
  pinMode (ventilador,OUTPUT);
  pinMode (Manu,INPUT);
  pinMode (automa,INPUT);
}

void Temperatura ()
{
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
    Serial.print("temperature:");
    Serial.print(temp);
    Serial.print(" humidity:");
    Serial.print(humi);
    Serial.println();
    temperatura = temp;
    humedad = humi;
 }
}
void Abrir ()
{
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 100);
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 100);
 digitalWrite(ventilador,HIGH);
}
void Cerrar ()
{
  digitalWrite (IN1, LOW);
  digitalWrite (IN2, HIGH);
  analogWrite (ENA, 100);
  digitalWrite (IN3, LOW);
  digitalWrite (IN4, HIGH);
  analogWrite (ENB, 100); 
}
void Parar ()
{
 digitalWrite (IN1, LOW);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 0);

 digitalWrite (IN3, LOW);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 0);
}
void loop ()
{
 Temperatura ();
 //delay (2000);
 //Abrir ();
// delay (10000);
// Atras ();
// delay (9000);
// Parar ();
 if (digitalRead(Manu)&& digitalRead(up)){
  Abrir ();
 }else if(digitalRead(Manu) && digitalRead(dow)) {
  Cerrar();
 }else if(digitalRead(Manu)&&  digitalRead(Stop) {
  Parar ();
 }
 if( humedad > 70.0 && digitalRead(fin1)&& digitalRead (automa))  {
    Abrir();
 
 
 }else if(humedad < 65.0 && digitalRead(fin2)&& digitalRead(automa){
   Cerrar();
 }else{
  Parar();
 }
 delay (10);

Control Riego:
Arduino
int Rele = 4;
int hum;
void setup()
{
 Serial.begin (9600);
 pinMode (Rele,OUTPUT);
}

void Seco()
{
  Serial.print ("humedad=");
  hum = analogRead(0);
  Serial.print(hum);
  Serial.println("=regar");
  digitalWrite(Rele,HIGH);
}
void Humedo()
{
  Serial.print("humedad =");
  hum = analogRead(0);
 
 // if (hum > 300)
   Serial.print(hum);
   Serial.println("=No regar");
   digitalWrite(Rele,LOW);

}
void loop()
{
 
  if (hum <=400){
   Humedo();
  }else{
    Seco();
  }
   
delay(10000);
}

                                Pruebas de funcionamiento:

Control motor


Control electroválvula

Montaje en invernadero

Motores de las bandas y sistema de movimiento



Los motores están insertados en un carril hecho a partir de un tubo de pvc, lo que hace que el motor vaya subiendo mientras gira y sube la banda del invernadero, que se ayuda de un cardan que transmite el movimiento para mejorar y permitir el giro.
Los carriles disponen de un final de carrera al final del recorrido para la detención del motor.

Sensores y actuadores
Sensores de humedad y temperatura, sensor de humedad del suelo , ventilador y electroválvula.

                      Presupuesto



- Arduino Uno-----------------------------------------------------



21€
- Arduino Atmega 2560---------------------------------------



30€
- Sensor de temperatura y humedad DTH11-----------



5€
- Sensor de humedad del suelo higrómetro------------



2,3€
-2 motores DC 6V con reductora----------------------------



10€
- Ventilador 12 V---------------------------------------------------



3€
- 2 Modulos rele para arduino--------------------------------



3€
- Electroválvula DC 12 V----------------------------------------



6€
- Modulo bluetooth-----------------------------------------------



8€
- 4 Interruptores---------------------------------------------------



1€
- Fuente de alimentación 12 V--------------------------------



10€
- Puente en H-------------------------------------------------------



3€
Total------------------------------------------------------------



102,3€












































































jueves, 29 de septiembre de 2016

SPLIT PARA AUDIO CON PANEO ANALÓGICO Y CONTROL DIGITAL



Origen del proyecto

El concepto del proyecto radica en la necesidad personal (y posiblemente la de alguien más), como aficionado a la guitarra, de poder usar dos amplificadores de guitarra al mismo tiempo (o un amplificador con dos canales con sonidos distintos en paralelo), pero pudiendo controlar en directo (mientras toco) y de manera continua el balance que hay entre los dos sonidos diferentes que proporcionan dichos amplificadores.

Puesto que no he encontrado ningún dispositivo que me ofrezca la solución a mis requerimientos, he optado por intentar diseñar uno propio.



Descripción



El dispositivo consta del módulo principal (que describiremos a continuación), y un pedal de expresión con el que se controla el funcionamiento del primer módulo.

miércoles, 31 de agosto de 2016

Próximamente ... Jugamos con DRONES!!!

Durante los próximos meses vamos a introducirnos seriamente en el mundo de los drones tipo QUADCOPTER.

Partimos de la experiencia previa iniciada hace un par de años, y con ese punto de partida vamos a profundizar todo lo que podamos.

viernes, 8 de julio de 2016

TRIAC Y RELÉ--JEISON


PLACA RELÉ Y TRIAC


Este proyecto es una unión entre dos placas, una ya elaborada anteriormente la cual constaba de un relé el cual conmutaba una bombilla por medio de Arduino y Processing. La otra era con un triac y tres moc3021.


PLANIFICACIÓN DEL PROYECTO:

el diagrama de Gantt es una útil herramienta gráfica cuyo objetivo es exponer el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado.
A pesar de esto, el diagrama de Gantt no indica las relaciones existentes entre actividades.
Para hacernos una idea de saber que días se tienen disponibles para entregar el proyecto lo que hacemos es un diagrama de Gantt, el cual nos divide la tarea principal en tareas y sub-tareas para llevar un control especifico de lo que se tiene que hacer y cuando terminarlo.


DIAGRAMA DE GANTT:


miércoles, 8 de junio de 2016

Control del movimiento de un plotter



Objetivo:
 
El objetivo de este proyecto es conseguir controlar el eje x del motor de un plotter. Se usara el chasis de un plotter antiguo reemplazando los circuitos de dentro. El control se realizara desde un ordenador conectado a un arduino.

Componentes:

Los componentes que necesitaremos aparte de la chasis del plotter son:

8 diodos 1n-4001
1 l293d (puente en h dual con diodos incorporados)
1 arduino 
1 cable usb a arduino para controlar el puerto serie

Los circuito que necesitamos son los drivers para los motores paso a paso. Usaremos este circuito.

Los pines que tenemos a la izquierda son las entradas que vienen desde el arduino y dictaran el sentido de la corriente. Los que tenemos a la derecha son los que se conectan al motor. El de arriba y abajo son vcc y masa respectivamente.

El paso siguiente es cablear al motor. El que hemos usadoes un paso a paso de 8 hilos. Al no disponer de la ficha técnica tenemos que averiguar el cableado usando un polimetro y un osciloscopio. Para descubrir el parejamiento de los cables cogemos el polimetro y lo ponemos en modo continuidad. Cogemos un hilo conectandolo a uno de los terminales del polimetro. Empezamos a conectar uno por uno los otros hilos hasta que suena el polimetro señalando que ese es el otro hilo. Repetimos el proceso hasta que tengamos las 4 parejas. Luego para averiguar los fases, conectamos una pareja a una probeta de un osciloscopio. Conectamos otra pareja a otra probeta y giramos el motor. Apareceran dos señales por el osciloscopio; si están iguales son de la misma fase y tienen la misma polaridad de bobina, si son iguales pero uno invertido, son de la misma fase pero la polaridad de la segunda es al reves. Si aparece un desfase de 90 grados son de distintas fases.

La conexión de bobinas que usaremos es el bipolar serie para simplificar el cableado. Así conectamos los cables de una fase para que la corriente pasa por ellos en el mismo sentido de polaridad. Hacemos eso para ambos fases y cubrimos la soldadura con termoretráctil. Deberia quedar así más o menos:

 


Una vez hecho el cableado falta conectar la placa al arduino y al motor y crear el código para su funcionamiento. El funcionamiento exacto es que metamos un numero y si es positivo se desplazara hacia la izquierda o si es negativo que se mueve para la derecha. (Si nosotros estamos mirando al plotter) Para eso usaremos este codigo:

#include<Stepper.h>
const int stepsperrevolution = 200;
Stepper xstepper(stepsperrevolution, 8, 9, 10, 11);
void setup() {
  Serial.begin(9600);
  Serial.println("Init");
  }

void loop()
{
  int pasos = 1;
  if(Serial.available() > 0){
  int i = Serial.parseInt();
  Serial.println(i);
  if( i > 0){
  for(int stepCount = 0; stepCount < i; stepCount++)
  {
    xstepper.step(1);
    Serial.print("Pasos = ");
    Serial.println(pasos);
    pasos++;
   
        }
    }
    else if( i < 0){
      for(int stepCount = 0; stepCount >i; stepCount--)
      {
        xstepper.step(-1);
        Serial.print("Pasos = ");
        Serial.println(pasos);
        pasos++;

    }
    }
    }
    }

El codigo arranca el puerto serie y espera hasta que recibe un numero por ese canal. En cuanto lo recibe valora si es menor a mayor que 0 y basado en eso gira tantos pasos en un sentido o otro.

Cosas que se podrian añadir a este proyecto serian finales de carrera, que se calibre al principio, tocando cada final de carrera y volviendo a un sitio determinado, el control del eje y que tiene el plotter y el control del marcador y seleccion de color.

domingo, 29 de mayo de 2016

Telecontrol de la réplica 1/5 del submarino Peral

Esta entrada hace referencia al proyecto "El submarino Peral navega de nuevo", que ha culminado con la botadura de dicho submarino de 850 kg de acero, del IES Politécnico de Cartagena.






Incluye 2 arduinos Mega 2560 y un enlace RF-232. En breve, profundizaremos más en la electrónica que incorpora.

miércoles, 4 de mayo de 2016

Proyecto T.A.T.

T.A.T.

TANQUE AUTÓNOMO TELEDIRIGIDO




Este proyecto básicamente es un prototipo temprano que trae consigo una serie de configuraciones y opciones, las cuales le combinan de autonomía y control total, ya sea en modo automático o manual.

En modo automático

Es capaz mediante un sensor de ultrasonidos y un atmega328P de evadir obstáculos que se encuentren en su trayectoria a una distancia no inferior a 30 centímetros, durante la marcha se ayuda de una batería LyPo de 11.1v y 2600mA, mediante la cual alimenta todos los módulos que intervienen en su desplazamiento, la batería se aloja en el interior del tanque, en una zona donde este protegida y otorgue estabilidad.



Con un consumo inferior a 1,5A es capaz de mantenerse en movimiento durante mas de una hora, llegando a cubrir una distancia considerable.
Cuenta ademas con una resistencia LDR la cual activa los múltiples leds frontales, cuando capta una bajada drástica de iluminación, haciendo posible la identificación y ubicación del vehículo mientras se desplaza.



En modo manual

Mediante un juego de conmutadores, se deshabilita el modo automático y se habilita la configuración en modo manual, la cual da control sobre los motores a un PIC-16F877A el cual mediante un modulo bluetooth y receptores de radiofrecuencia, mantiene al tanque a la espera de los distintos comandos necesarios para su desplazamiento y para la activación de los diferentes módulos que lo componen, como un reproductor de sonido, un modulo láser que servirá como guía en su desplazamiento ademas de contar con varios leds frontales y traseros, que ayudaran a identificar su posición con poca visibilidad.

Debido al espacio reducido del vehículo, este integrado se apoya en un demultiplexor ubicado en otra placa, el cual aumenta el numero de opciones y configuraciones.

En definitiva,este prototipo cuenta con estas dos configuraciones, siendo la base para seguir diseñando y fabricando un prototipo posterior que contara con estas y muchas mas mejoras.






martes, 26 de abril de 2016

Domocasa

   Necesitaremos hacer las siguientes cosas:

  • Instalar Raspbian (linux) en Raspberry pi
  • Crear servidor (apache2 en este caso)  y pagina web alojada en el mismo.
  • Crear base de datos mysql e instalar dependencias php5.
  • Crear shell scrip y python para interactuar con los GPIO e interuptores de la web.
  • Software arduino, para importar los datos de sensores a la base de datos previamente creada.
  • Realizar una placa para los led y sensores, son sus transistores y divisores de tensión.

   Para realizar este proyecto, necesitamos los siguientes materiales:

  •    2 Arduino uno
  •    1 Shield arduino-ethernet   
  •    1 Lcd 128x64
  •    2 Relay
  •    1 Placa de control
  •    1 Raspberry pi
  •    1 Servo
  •    3 Sensores de temperatura
  •    1 Ldr
  •    1 Sensor dth11
  •  15 Led
  •    3 Thermistores 100K
  •    8 Transistores PN222 
  •    4 Bombillas 220 - 40W
  •    Resistencias smd
        

      Una vez Instalamos Raspbian, procederemos a instalar el servidor apache2. En este caso la conexion con la Raspberry pi es mediante conexion ssh por terminal dentro del mismo wifi.
 
          Empezamos:
  1.            sudo rpi-update                         (actualizamos el firmware y kernel)
  2.            sudo reboot                               (reiniciamos)
  3.            sudo apt-get update                  (comprobamos las actualizaciones de software)
  4.            sudo apt-get update                  (actualizamos)
  5.            sudo reboot                               (volvemos a reiniciar)
  6.            sudo apt-get install apache2     (instalamos servidor apache2)          
  7.            sudo apt-get install php5           (instalamos php 5
 Asi sucesivamente vamos instalando todas las dependencias que vallamos a utilizar.
       Varios tutoriales para completarlo y bastante informacion sobre php.
        -GeekyTheory 
        - Diymakers 
         -Zona php 
        Una vez terminemos con la configuración del servidor apache2, la base de datos mysql, de haberle dado permisos de ejecución a la dirección del servidor (/var/www..), creado y guardado nuestra web. Procederemos a preparar el arduino con el shield de ethernet.
      
      El funcionamiento del mismo será, guardar las temperaturas de los sensores y humedades en variables, las envía a un archivo.php alojado en la carpeta /var/www/ y dicho php se encarga de reenviar los valores a la base de datos.

 Diseñamos la plac
de control para conectar 
todo el cableado de
 la maqueta



  
     
      

 
 
  


   


     


   






  Empezamos con la maqueta