Ola Pessoal.

Preciso de ajuda com arduino.

Fiz um programa em java no netbeans,no programa tem um jframe esse aqui:

No meu arduino liguei alguns sensores,quero pegar os valores desses sensores e mudar o texto das labels do jframe para o valor dos sensores,mas não sei como fazer isso.

Alguem pode me ajudar?

Exibições: 383

Responder esta

Respostas a este tópico

Tem um tópico que fala sobre isso aqui :

http://labdegaragem.com/forum/topics/ajuda-arduinoreceber-n-meros-p...

Da uma olhada e veja se ajuda.

obrigado

Olá Matheus!

Para ler dados pela serial com Java, você vai precisar baixar algumas bibliotecas.

Veja um tutorial completo aqui: https://www.embarcados.com.br/comunicacao-serial-java-arduino/

Estudei a biblioteca RXTX:
Estou usando esse script:

package estufaautomatica;

import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Comunicação_com_HardWare {

private OutputStream output = null;
private InputStream input = null;
SerialPort serialPort;
private final String port = "COM3";
private static final int timeout = 2000;
private static final int dataRate = 9600;


public void IniciarConexão(){
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

while(portEnum.hasMoreElements()){
CommPortIdentifier atualPortId = (CommPortIdentifier) portEnum.nextElement();
if(port.equals(atualPortId.getName())){
portId = atualPortId;
break;
}
}

try {
serialPort = (SerialPort) portId.open(this.getClass().getName(), timeout);
serialPort.setSerialPortParams(dataRate, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
output = serialPort.getOutputStream();
input = serialPort.getInputStream();
} catch (Exception ex) {

}


}


}



esse e o do arduino:

#include "DHT.h"
#define DHTPIN 7 //Sensor de Temperatura e Umidade Conectado no pino 7

#define DHTTYPE DHT22 // DHT 22 - RHT03 - AM2302

float umid;
float temp;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);


}

void loop() {
// put your main code here, to run repeatedly:
delay(500){
umid = dht.readHumidity(); // leitura de umidade
temp = dht.readTemperature(); // leitura da temperatura
}

delay(500){

}




}


Mas como eu pego os valores das variaveis temp e umi no java?

Olá !

É difícil analisar com o sketch colado na página. O melhor é enviar como anexo. Existe uma opção no fórum para fazer isso.

Tem alguns problemas com o seu código Arduino:

- Por que tem a chave "{" depois de delay(500)? Não vai dar erro, mas é desnecessário

- Você não está enviando os valores de temperatura e umidade pela serial. Dessa forma o programa em Java não vai receber nada, pois ele está esperando os valores e você não enviou

- Para enviar, os valores use Serial.print()

O que é mais comum quando são enviados vários valores é concatená-los numa única String.

O programa Java ficaria responsável por separar os valores lidos.

fiz os Serial.println depois desse delay(500); mas não apareceu no post deve ter dado algum erro

fiz assim:

delay(500);

Serial.println(umid);

Serial.println(temp);

}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço