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?
Tags:
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/
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) {
}
}
}
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);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por