Pages: [1] 2   Go Down
Author Topic: Arduino Duemilanove con BBDD.  (Read 2594 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Muy buenas foreros!

Estamos desarrollando una estación meteorológica con una arduino duemilanove. Ya conseguimos visualizar los datos de los sensores des del pc. La conexión arduino-pc va con un cable usb. Queremos guardar los datos que leemos en una base de datos para poder hacer una posterior comparativa web.  También queremos visualizarlos en tiempo real desde la web. Agradecemos cualquier tipo de ayuda!!

Muchas grácias de antemano!

Saludos! smiley
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Supongo que la manera mas logica es hacer que el programa que esta corriendo en el PC y que esta a la espera de los resultados que llegan por el puerto serie, se ocupe de insertarlos en la base de datos. Para consultarlos via web, necesitas que el servidor de paginas y el lenguaje de scripting que estes usando, se comunique con la BBDD. Todo esto es muy sencillo, pero me temo que necesito mas informacion. Lo primero es saber si la maquina que sirve las paginas web es (o puede ser) la misma que recibe los datos de Arduino. Tambien habria que saber si el sistema operativo es un Linux o Windows, y qué base de datos es a la que teneis acceso.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perfecto!

Tenemos nuestra estación conectada al pc mediante usb. Utilizaríamos un mismo pc para recibir los datos y también nuestra BBDD (en MySql). De momento utilizamos Windows en nuestra máquina.
Nuestra idea sería:
-Tener nuestro Arduino conectado al pc y recibir datos al pc. (probado y funciona)
-Al mismo tiempo que recibimos datos, estos se van insertando en la BD para posteriormente poder realizar consultas dedsde nuestra web.-
-Los datos que constantemente llegan al pc leerlos en tiempo real desde la web.


Muchíssimas gracias!!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 23
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puedes crear un socket en PHP que se conecte al pc y lea los datos que le llegan del puerto, luego los inserte en la BBDD, pero según mi experiencia si eso lo vas a hacer fuera de una LAN, te va a hacer falta un sevidor dedicado para abrirle los puertos para que conecte el socket...
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

¿Donde teneis el servidor de paginas web? Es mas sencillo de lo que parece. Contestame y veras que sencillo.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

De momento estamos en servidor local. Utilizamos el easyphp para desarrollar.

 smiley smiley
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Entonces tienes montado un servidor apache. Leer la base de datos y generar la pagina (incluso con gráficos) en tiempo real, no debería suponer ningún problema. ¿Donde exactamente os estáis atrancando??
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tenemos conocimientos de informática pero no muchos de arduino...
Entonces la duda que tenemos  es si existe la posibilidad de introducir los datos (que leemos de nuestro Arduino) directamente en la base de datos sin llamar al codigo php de nuestra pagina web...
Por una parte ya tenemos el arduino corriendo y por otra parte tenemos la web y la base de datos...faltaría la conexión entre estos.
Utilizamos el paquete de esayphp para poder trabajar en local. No sé si necesitamos alguna cosa mas. Que pasos debemos seguir? Podemos conectar directamente nuestro arduino con la base de datos? Algunos consejos?

Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

TE habia entendido que, el mismo programa que recibe los datos procedentes del Arduino es el que los incorpora en Mysql. Creo que eso es lo unico que os falta. ¿En que lenguaje esta hecho el programa que escucha al Arduino? Practicamente todos los lenguajes tienen una interfase para Mysql.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leemos los datos desde el programa de Arduino, segun la web de Arduino "esta  escrito en Java y basado en Processing, avr-gcc y otros programas también de código abierto".  

 smiley
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Entonces lo unico que teneis que hacer es un programa que este ejecutandose continuamente, y se limite a monitorizar el puerto serie. Cuando entre un dato procedente del arduino, debe validarlo (ver que no es una chorrada fruto de una mala transmision. Para esto os sugiero que hagais algun tipo de suma de verificacion) y grabar el dato en Mysql.
Lenguajes para hacer esto, teneis muchos. Si seguis pensando en trabajar en Windows, os sugiero que visiteis la siguiente direccion:
http://www.microsoft.com/express/Downloads/
Se trata de las herramientas de microsoft que pueden ser usadas sin necesidad de comprar los paquetes.
Si no sois programadores expertos, os recomendare que jugueis con Visual Basic. Encontrareis un monton de documentacion y os resultara muy sencillo. Para conectar con Mysql, me imagino que tendreis que hacerlo a traves de ODBC, aunque siempre teneis la opcion de grabar un fichero de texto con la sentencia del insert, arrancar el programa de gestion de mysql para que ejecute el archivo que acabais de crear, y lo borrais a continuacion.
Se que en C existen librerias para enlazar directamente con el API de Mysql, pero probablemente sea mas complicado. De todas maneras, si googleais 'conectar visual basic-Mysql', obtendreis esto como primera entrada:
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/mysql/respuestas/839037/conexion-mysql-y-visual-basic
A lo mejor, con un corta y pega os despachais.
Suerte, y ya nos contareis.
P.D:
Si quereis que os eche alguna mano, mandadme un email a pofenas@pofenas.com
« Last Edit: December 09, 2010, 08:36:21 am by Pofenas » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Me parece interesante el proyecto.

Por lo que entiendo estais recibiendo los datos en el IDE de Arduino, no?

Si es así, podeis utilizar el código del IDE de Arduino (la parte del terminal serie) para conectaros con Arduino y leer los datos por el USB y luego utilizar algún conector con MySql para guardar dichos datos en la BD. Todo ello en Java, porque el código del IDE de Arduino está escrito en Java.
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi propuesta:

Arduino -> Serie -> Processing -> MySQL
http://bezier.de/processing/libs/sql/

Un saludo
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Adumet,no se si sabeis que el ordenador "ve" al Arduino como un puerto serie, es decir, no necesitais para nada el IDE de Arduino para recibir datos. Es decir, cualquier programa que maneje puerto serie os puede servir. El IDE de Arduino (el programa que se utiliza para programar la tarjeta), simplemente trae un terminal serie muy sencillo. Pero podrías visualizar con otro como Realterm, hyperterminal de windows, o lo que sea....

Si ya teneis EasyPHP, disponeis de todo para empezar (bueno no sé si por defecto viene la clase para manejar serie, si no es cuestión de descargarla). Es decir, ya teneis el servidor apache+PHP+msql... todo!!!
http://www.communitymx.com/content/article.cfm?page=2&cid=8658A
http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html

Cualquiera de las opciones que han sugerido los compañeros es válida, pero sólo puntualizar que con lo que teneis ahora, deberíais poder hacerlo.


 smiley-wink


« Last Edit: December 09, 2010, 03:26:38 pm by igorreal » Logged


Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Aunque es posible hacer un programa en apache+php que monitorice el puerto serie, es un ejemplo muy interesante del concepto de 'espera ocupada'. Imaginate que el Arduino pasa a razon de tres o cuatro datos por hora... a 9600 baudios, apenas un segundo de trabajo eficaz por cada hora de toooda la memoria que necesita un pesado servidor de paginas web como es apache, mas un interprete de PHP mas un script ejecutandose constantemente solo para comprobar que no hay gran cosa que hacer.
En el post anterior recomendaba Visual Basic, porque es un lenguaje que funciona por eventos: el programa no hace nada hasta que se produce un evento ('OnComm') que es el que desencadena que se ejecute el resto del programa y se quede durmiendo de nuevo hasta que se dispare el siguiente evento (espera desatendida).
Java es otra opcion interesante: funciona exactamente igual que VB, pero no sabria que entorno de desarrollo recomendarte. En Linux te habria sugerido Gambas, o un simple script en bash, pero eso esta fuera de lugar.
Logged

Pages: [1] 2   Go Up
Jump to: