We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hola. Necesito hacer un fichero txt con los datos que mide un circuito arduino. Por ello he pensado en hacer una pequeña aplicación para ejecutarla desde un pc con processing. El tema es que necesito medir la humedad relativa y la temperatura por un lado, y la presión por otro lado, y recoger los datos en un fichero de texto de un ordenador. Es evidente que necesito que se esté midiendo de forma contínua cada cierto tiempo para recoger un número de datos significativo para el estudio que debo hacer en un trabajo académico.
Aunque he estudiado programación en PASCAL hace ya algún tiempo, mis conocimientos de programación están bastante obsoletos, por lo cual el contacto con el JAVA y PROCESSING me está costando mucho trabajo.
Estudiando un poco por aquí y por allí he logrado hacer un código para un programa, pero me da problemas. Y quisiera preguntar si alguno puede ayudarme en este proyecto, que imagino para algunos será relativamente fácil.
El código que he logrado hacer es el siguiente:
import processing.serial.*; //Importamos la librería Serial
Serial port; //Nombre del puerto serie
PrintWriter output; //Para crear el archivo de texto donde guardar los datos
float valorP;//Valor de la presión
float valorH;//Valor de la humedad relativa
float valorT;//Valor de la Temperatura
int index=0;
{ println(Serial.list()); //Visualiza los puertos serie disponibles en la consola de abajo port = new Serial(this, Serial.list()[1], 9600); //Abre el puerto serie COM3
output = createWriter("Parametros_datos.txt"); //Creamos el archivo de texto, que es guardado en la carpeta del programa
size(800, 400); //Creamos una ventana de 800 píxeles de anchura por 600 píxeles de altura }
void setup() { port.write("p"); //Envia una "p" para que el Arduino lea la presión }
{ //Recibir datos presión del Arduino if(port.available() > 0) // si hay algún dato disponible en el puerto { valorP=port.read();//Lee el dato y lo almacena en la variable "valorP" }
//Visualizamos la presión con un texto text("Presión =",390,200); text(valorP, 520, 200); text(" hPa",547,200);
//Escribimos los datos de la presión con el tiempo (h/m/s) en el archivo de texto output.print(valorP + " hPa "); output.print(hour( )+":"); output.print(minute( )+":"); output.println(second( )); output.println("");
}
{ port.write("h"); //Envia una "h" para que el Arduino lea la humedad y la temperatura
}
void draw()
{ //Recibir datos de Temperatura y Humedad del Arduino if(port.available() > 0) // si hay algún dato disponible en el puerto
{
//Leemos hasta que se encuentre un espacio y guardamos lo leido en Data Data = port.readStringUntil(" "); //buscamos la posición del espacio que separa //los dos valores y guardamos la posición en index index = Data.indexOf(" ");
//almacenamos la primera parte del texto en valorH valorH= Data.substring(0,index); //Almacenamos la segunda parte en valorT valorT= Data.substring(index+1,Data.length()); } } { valor=port.read();//Lee el dato y lo almacena en la variable "valorH" } //Visualizamos la humedad y la temperatura con un texto text("Humedad = ", 390, 300); [color=green] text(valorH, 520, 300); text(" % ", 547, 300); text("Temperatura = ", 630, 300); text(valorT, 520, 547); text(" ºC ", 547, 300);[/color] } { //Escribimos los datos de la temperatura y la humedad con el tiempo (h/m/s) en el archivo de texto output.print(valorHT + " % ºC "); output.print(hour( )+":"); output.print(minute( )+":"); output.println(second( )); output.println("");
}
void keyPressed() //Cuando se pulsa una tecla {
} { //Pulsar la tecla E para salir del programa if(key=='e' || key=='E')
{ output.flush(); // Escribe los datos restantes en el archivo output.close(); // Final del archivo exit();//Salimos del programa } }
Pero no se si está bien porque me da varios errores. Si alguien pudiese echar un vistazo a ver qué está mal, me sería de gran ayuda. Muchas gracias.
Answers
https://forum.Processing.org/two/discussion/8045/how-to-format-code-and-text
Gracias por las indicaciones. Pero si supiera hacer todo eso no tendría que pedir ayuda.
You need to edit your code text block for proper format. It's a mess right now!
Highlight it and hit CTRL+O in order to indent it with 4 spaces.
I am trying to write it as a code.
I understand it is a mess now! But thank you because I wrote it as a code!! Thank you for your help!!
No need to re-post it. You can edit your own posts.
Remove those ``. Highlight the whole code. Press CTRL+O.
Hola. He llegado al siguiente código, pero me da un error en
text(" ", 520, 547);[/color];
hi, you are trying a difficult task if you are not a processing programmer . like you , i am a novice processing programmer , jj . i made a similar project in processing with temperature , humidity and light , i started with this code (i am not the author i get this code of Derek Runberg's book) , but it s more clear for me and it works , i suggest you , to read some processing book , processing is not complicated but you have to learn some concepts , studying processing examples. i hope it helps you
change it , if you have doubts post it with arduino code
Thank you, thankyou, thank you so much!! In this moment it takes a little mistake, but it seems I can use it in my project!! I have to modify a few, but I can use it!! My problem is that I don't have time to study in this moment, because I have to start this project.
But I will study processing because I don't want new problems with it!!
As I told you before, thank you so much again.
The code, goes and create the file!!. But now i've got a new problem. I have to send h from the pc to arduino, because I don't have data until aruino receive this char. I can't change it in Arduino, so I have to do it in proccessing. I have think the following code:
I don't know if it's right. ¿Can anyone answer me about it? Thank you.
im not sure, but if i understand your task , you are trying to manage your readings , aren't you? portwrite(h); from processing to arduino , and start to read humidity ,for example.
Yes! The program in this moment only send me zeros. Arduino needs to read a char "h" for reading humidity and temperature, and "p" for pressure. You're right in your example.
maybe i can i help you if you write arduino code , because i think that it s not necessary. Arduino reads and sends to processing without processing's help
I will try to get it!! Thank you again!!
below,the arduino code(without sensors) works with processing code ,you can use it for simulation
Thank you! I don't have the arduino code yet, but I think this is very useful for me! Thank you again!