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



 
Cortamos la madera para la base






    
 
   

    Una vez cortada la base y todos los trozos 
    de madera que se van a utilizar, se ha montado 
    para marcar las puertas y ventanas.



                                     
Recortamos las puertas y ventana marcadas.
    Una vez recortadas, marcamos por donde van a pasar los cables de  la luz, sensores, tv o lo que queramos poner. La madera que se ha usado, contrachapado, es una madera blanda, por lo que marcandola con un cuter, y dandole con un formón es suficiente. Si lo prefieres puedes usar una fresadora y cepillar los mm que creas oportunos.







 

      También pasamos los cables para la tv, en este caso la conexion es en paralelo y cuenta con 15 cables incluyendo VCC, GND, e iluminación de la pantalla. Un i2c, es mas apropiado y son 4 cables.


  Una vez tenemos ya todas las maderas con los cables enmasillados, las imprimamos.


   
      La otra cara, la de fuera, la imprimaremos una vez montada.
   Ahora empezamos a colocar las maderas y hacemos las "zanjas" para los cables.





 





   Con las zanjas ya echas, y la caseta pegada o atornillada (en este caso va pegada), empezamos a enmasillar todas las uniones de las maderas, esquinas y "fachada" de la maqueta.


                                                              
 Ya tenemos la maqueta montada, con una capa de imprimación por  dentro y terminada de emasilladar. Ahora la imprimamos por fuera.Una vez imprimada lijamos un poco y la pintamos del color que queramos.


       Para las luces, se han usado leds, con unas hembras puestas en la pared para poder cambiarlos en un futuro. A modo de embellecedor se ha diseñado media luna y se ha impreso en un material con un 40% de madera, tiene un acabado bastante bueno.
   
 
               

  
   Los sensores, se han soldado directamente pues no encajaban bien en las hembras, van tapados con un embellecedor.
                                                
 


  
    Para la puerta del garaje, se ha diseñado con un logotipo de arduino + raspberry pi. Se a impreso, enmasillado e imprimada y posteriormente pintada. También se ha impreso un soporte para el servo (9g) que accionará la puerta, medio piñón de 60 dientes y una cremallera para la parte trasera de la puerta.



                                  
 
       

 










  


  

  Los marcos de las ventanas, van en dos partes. La madea que se ha utilizado, es de 10mm. Se han impreso y pintado dos marcos con 4mm de profundidad cada uno, y se ha colocoado un cristal de 2mm en cada una de las ventanas.

  
    Para las puertas, se han impreso en dos partes de 5 mm cada una, con el mismo material que los embellecedores de las lámparas.
 




















   

   Para la escalera, se ha impreso en 4 partes, se han ensamblado, pegado y posteriormente tapizado. Cada dos escalones lleva tambien un led con un embellecedor, esta se encufa al mismo tiempo que la del pasillo de la planta de arriba. 


  Para el suelo interior se ha puesto moqueta negra.



















    



En el suelo exterior cesped artificial.
 

 
  Para las farolas del jardín, se han diseñado 3 piezas, para sujetar la base del tubo a la madera, para el casquillo de la bombilla y un embellecedor para el final del tubo.


             Conectamos los cables de los sensores y led a la placa de control, los del lcd a su arduino y los de las raspberry pi a la placa de control, todas las masas unidas.

 
 











       El neutro y fase que se aprecia a la izquierda, son los cables para las farolas, que van con 220AC, conectadas a un relay, que se accionará según el valor que mida la ldr. Una vez medido tambien mandara el porcentaje de luz a la base de datos.

Programación del proyecto 
 

     Al accionar un botón desde la web, por ejemplo encender salón (que corresponde al GPIO 21 de raspberry pi) la gerarquía sería la siguiente.


  •   Al darle a dicho boton la pagina web, un php alojade dentro de la misma pagina html comprobará que le hemos dado en este caso a "Encender Salón", y nos redirigirá, con la funcion <exec> a un shell script alojado en este caso en </var/www/html/interruptores/salon/endender.sh>. Lo mismo con apagar y parpadear.
  •   La función de esté archivo (encender.sh), es la de coger en este caso el GPIO 21, que fisicaménte es el pin 40 de raspberry pi.

  •   Como vemos en la foto de la derecha, echo (escribe) dentro del directorio /sys/class/gpio , este directorio se encarga de controlar si los gpio estan como entrada-salida o si estan en alto(1)-bajo(0). 
       echo 21 > /sys/class/gpio/export 
  •   Especifica con que pin vamos a trabajar, crea la carpeta gpio21.
      echo out > /sys/class/gpio/gpio21/direction
  •   Escribimos dentro de ./gpio21/direction "out", ya le hemos especificado que va a ser una salida.

echo 1 > /sys/class/gpio/gpio21/value
  •   Escribimos un 1 dentro de la carpeta value, ya lo hemos puesto en alto.
   Para apagarlo, puesto que ya estará encendido, y creada su carpeta, especificando si es entrada o salida y si esta en alto o en bajo, lo ponemos en bajo y liberamos (borramos la carpeta y configuración de ese gpio)
           echo 0 > /sys/class/gpio/gpio21/value
  •   Le ponemos 0 para cambiarle el nivel a bajo.
         echo 21 > /sys/class/gpio/unexport
  •   Liberamos el gpio21 (pin40)
  
   


 
 








No hay comentarios:

Publicar un comentario