domingo, 6 de abril de 2014

Instalar Appserv y crear una base de datos


Existen en el mundo de la informática varias herramientas de código abierto que nos ayudan a crear y apoyar diversos softwares... entre ellas esta appserv.

Appserv es un paquete completo de herramientas diseñado para acelerar nuestros desarrollos de manera muy importante... appserv esta compuesto por Apache, Mysql, Php, phpmyadmin, etc... en definitiva, al instalarlo conviertes el equipo en un servidor con motor de bases de datos...


Su instalación es muy sencilla, lo haremos en windows (existem tambien otros paquetes para otros SO.. como xampp)

Puede ser descargado desde su web oficial.

Después de estar completa la instalación, es probable que nos pida que reiniciemos... al terminar, abrimos un navegador y escribimos en la barra de direcciones: "localhost/phpmyadmin" (sin las comillas)... Esto abrirá phpmyadmin, veremos en el lateral izquierdo una lista de las bases de datos creadas, y en la ventana principal podremos crean una nueva, simplemente debemos darle un nombre, y luego crear, inmediatamente podremos empezar a crear las tablas, se nos pedirá un nombre y cantidad de campos, lo demas es igual de intuitivo. Muy sencillo.



sábado, 16 de noviembre de 2013

Capturar Temperatura con Arduino, USB y Mysql.

Hace poco llegó a mis manos una placa de Arduino UNO, como primer proyecto personal decidí capturar con sensores de Temperatura la información ambiental y enviarla a una base de datos. 

A continuación les comento como lograrlo, porque tuve varios obstáculos que seguro los lectores están teniendo ahora y por eso llegaron a esta entrada de blog. 

Primeros pasos en Arduino:

El lenguaje nativo de Arduino es homónimo y es muy similar a C, existen códigos por Internet que te pueden ayudar a conectar con la base de datos con algunas bibliotecas por medio de Ethernet o Wifi. Si has invertido en estas extensiones para tu Arduino te recomiendo no sigas leyendo, este tutorial es para USB.

Lamentablemente el lenguaje Arduino hoy en día no soporta la transferencia de datos desde la placa a una base de datos por medio de USB. 

Demoré unas cuantas horas en notar que Arduino también soporta un lenguaje similar a JAVA, Processing. Con Processing es posible la transferencia con el uso de algunas bibliotecas.

Seguramente tienes el compilador Arduino 1.X bien, cierralo y bajate el Processing 2.X.
Baja las bibliotecas necesarias: En el top menú selecciona Sketch, Import Library, Add Library y busca BezierSQLive, está biblioteca servirá para la comunicacion con Mysql (también sirve para SQLive y Postgress), tambien baja la biblioteca Arduino, que nos servirá para declarar la placa e interactuar con ella.

A continuación mi propio codigo fuente, tienes las 4 libertades para manejarlo.


import processing.serial.*; // Permite la transferencia de datos por USB
import cc.arduino.*; // Permite la declaración de la placa
import de.bezier.data.sql.*; // Permite la conexion con la base de datos
float temperatura; 
int temPin=0; // Es el Pin en el que recibes los datos, observa tu placa A0=0, A1=1
MySQL msql;
Arduino arduino;
String user     = "Root"; // Naturalmente se debe llenar con los datos propios
String pass     = "****"; 
String database = "Database"; 

void setup(){
    arduino = new Arduino(this, Arduino.list()[0]); //Es el puerto Com usado, si dudas en que indice de la lista está agrega en la linea anterior println(Arduino.list()); en el mio solo apareció COM6 así que es el indice 0.
    arduino.pinMode(temPin, Arduino.INPUT);
    msql = new MySQL( this, "localhost", database, user, pass );
}

void draw(){
  
  temperatura = (5.0 * arduino.analogRead(temPin) * 100.0) / 1024.0; // la temperatura capturada vendrá en VOLTS este es el factor de conversion a grados celcius
  println(temperatura + " Grados Celsius");
  
  
  if ( msql.connect() ){
        msql.execute( "INSERT INTO tabla (temperatura) VALUES ('"+temperatura+");//Acá obviamente debes colocar los datos de tu tabla
   }
   else{
        println( "connection failed");
   }
  delay(2000);// intervalo en milisegundos que leeras datos
}

Bien esta funcionando, ahora si lo ejecutas y tienes la placa conectada deberías ver los resultados, pero NOOOO no está leyendo nada, eso es porque Arduino no entiende Processing debemos enpotrarle a la placa el interprete, pero es un paso sencillo.

Abre el compilador de Arduino (no el processing), y anda a Archivos, Ejemplos, Firmata, StandardFirmata Ahora que tienes el codigo de Firmata en pantalla simplemente clickeas Cargar, y ya tienes el interprete en la placa. vuelve a Processing y prueba de nuevo ejecutando el código.

Felicidades ya eres un usuario intermedio de Arduino.