segunda-feira, 22 de fevereiro de 2010

Arduino + Sensor Temperatura + Visual c# parte 2/2

Vimos anteriormente como utilizar os dados enviados pelo arduino no ZEDGRAPH, agora iremos criar um programa em Visual C#, para formatar os dados.

Você poerá utilizar o programa exemplo em C# anterior para fazer um “managed” de suas portas com.

private void serialPortArduino_DataReceived(object sender, 
  System.IO.Ports.SerialDataReceivedEventArgs e)
{
  int bytesToRead = serialPortArduino.BytesToRead;
  if (bytesToRead >= 13)
  {
    char[] z = new char[13];
    serialPortArduino.Read(z, 0, 13);
    string n = new string(z);
    ProcessReceivedData(n);
  }
}

Código para receber dado do Arduino via Serial. Observe que os dados vão se agrupando em um vetor conforme chegam ao buffer.

delegate void SetTextCallback(string text);
private void ProcessReceivedData(string text)
{
  if (this.zedGraphControlTemperature.InvokeRequired)
  {
    SetTextCallback d = new SetTextCallback(ProcessReceivedData);
    this.Invoke(d, new object[] { text });
  }
  else
  {
    temperatureData.Add(GetActualTimeInDouble(), 
      ConvertToCelsius(Convert.ToDouble(text.Split(':')[1])));
    zedGraphControlTemperature.AxisChange();
    zedGraphControlTemperature.PerformAutoScale();
    zedGraphControlTemperature.Refresh();
  }
}

Função esta que trata o dado recebido pelo Arduino na Serial, já armazenada em vetor. Utiliza do componente ZEDGRAPH para tal.

Previa do programa trabalhando! Não reparem o som (de ótima qualidade, rs)

Código Fonte Projeto pronto:
TemperatureLogger v0.1 (Código fonte)

Executável da aplicação:
TemperatureLogger v0.1

Código fonte para o Arduino:
TemperatureLogger v0.1 (Archivo fuente para el IDE de Arduino)

 

Créditos para:

1 comentários: