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.
Excelente aportación tengo una pregunta en este caso entiendo que debes tener la base de datos hecha y relacionarla a processing, podrías apoyarme con una pequeña guía de esto.
ResponderBorraragradezco tu valioso aporte.
Sin duda, debes tener la base de datos hecha, pero la relación con processing esta en el código fuente anterior, no es nada complejo, solo la librería y la consulta SQL.
BorrarHice un pequeño tutorial sobre como crear la base de datos, ojalá te sirva. http://geekc0de.blogspot.com/2014/04/instalar-appserv-y-crear-una-base-de.html
Exelente justo lo que buscaba oye de pura casualidad no se podra de modo inverso?? osea de que le modifico a la base de datos y el arduino me obtenga los valores para una acción??
ResponderBorrarClaro que se puede, Simplemente cambias el INSERT por un SELECT y ahí lo mantendrías consultando constantemente. Si deseas que ARDUINO no este constantemente consultando y solo se active en el momento en que llegue un dato especifico a tu DATABASE deberías averiguar sobre TRIGGERS.
Borrarahh gracias...oye soy nuevo en esto del processinn y tengo un proyecto en el cual tengo que mandar datos del mysql al arduino...y no se si sabrías como mandar valor de un codigo del arduino al processin y del processin al arduino...lo que pasa es que ando trabajando con servos y he buscado y solo se pueden programar usando los dos editores o uno solo que sería el arduino..??
Borrarola amigo disculpa el codigo si puede ser usado con otro tipo de sensor o tien q ser cambiado. saludos
ResponderBorrarque bienmuy bien explixado... amigo como haria para que el resultado que me muestra en el puerto serie me lo muestre en una interfaz grafica que e creado ya logre enviar datos de C a el ino de arduino por el puerto serie pero de arduino a C no e podido
ResponderBorrarYo hice lo mismo de mandar datos y recibir pero lo hice con php
BorrarYo hice lo mismo de mandar datos y recibir pero lo hice con php
Borraroye podrias mostrarme el codigo @tablon1723
BorrarHola, muy buen tutorial de como enviar los datos....
ResponderBorrarme nació una duda: Será posible enviar estos datos a mysql ? http://puu.sh/lqBpW/19c9ef6018.png
Solo deberé enviar el print
Excelente ejemplo, me ayudo bastante.
ResponderBorrarGracias
Interfaz Java y Arduino.
ResponderBorrarTutorial diseño de interfaz con Java bajo NetBeans para controlar Arduino desde el puerto serie / USB, odrás encender y apagar un Led, recibir mensajes de textos o comandos desde Arduino.
Ver tutorial.
http://www.slideshare.net/Metaconta2/interfaz-java-y-arduino
Saludos.
Buen tutorial felicidades
ResponderBorrarsolo una pregunta se puede realizar si en vez de tener un sensor análogo, dispongamos de uno digital y que puerto habria que utilizar
por ejemplo int temPin=0; // Es el Pin en el que recibes los datos, A0=0 ¿como seria de manera digital?
Hola Chicharoh , por casualidad te respondiste ya? igual tego la misma duda
BorrarHola, buenas tardes. Excelente tu explicacion.
ResponderBorrarPor favor tienes un ejemplo asi de claro y facil pero para exportar los datos a Excel.
Muchas Gracias.
Hola se podria consultar los datos que existen en la base?
ResponderBorrarDisculpa, que tipo de dato es el campo temperatura y que longitud? tengo un error en mysql que dice data truncated for column 'temperatura'
ResponderBorrarya pude enviar datos desde el arduino a processing luego de processing a la base de datos por el puerto serial quien quiera la informacion mas detallada puede escribirme al correo johbanc@gmail.com
ResponderBorrarNo library found for cc.arduino
ResponderBorrarNo library found for de.bezier.data.sql
ayuda!
Harrah's Resort Southern California - Mapyro
ResponderBorrarFind Harrah's Resort 대구광역 출장샵 Southern California (www.harrahscasino.com) 강원도 출장안마 location 의정부 출장마사지 in 창원 출장마사지 Greater San Diego, CA, revenue, 김해 출장마사지 industry and
titanium arts
ResponderBorrarTATONIC ART CUSTOMING · TATONIC ROCKING T-TATONIC ROCKING 출장안마 T-TATONIC ROCKING T-TATONIC. 바카라 사이트 This unique and original design is novcasino crafted with deccasino the titanium metal trim use of sustainable