LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview dos not shows the temperature and humidity soil as the same between Arduino

good afternoon.

I did que sheme in arduino program and he work good.

As soon as I switch to LABVIEW, the values ​​that appear to me are nothing like those that appear in the Arduino program.

Please help me with this problem.

I send the Arduino code and the labview schematic and some more images of the assembled schematic.

Thanks

 

#include <Keyboard.h>   // Transforma arduino em dispositivo Human Interface Device
#include <KeyboardLayout.h>   // Adiciona suporte a diferentes layouts de teclado
#include <Keyboard_da_DK.h>   // Dinamarquês
#include <Keyboard_de_DE.h>   // Alemão
#include <Keyboard_es_ES.h>   // Espanhol
#include <Keyboard_fr_FR.h>   // Francês
#include <Keyboard_hu_HU.h>   // Húngaro
#include <Keyboard_it_IT.h>   // Italiano
#include <Keyboard_pt_PT.h>   // Português
#include <Keyboard_sv_SE.h>   // Sueco

#include <EEPROM.h>   // Guarda dados no arduino mesmo depois de desligado

#include <LiquidCrystal_I2C.h>   // Controla display LCD via interface I2C

#include <Wire.h>   // Comunicação I2C entre Arduino e display LCD

#include "DHT.h"   // Biblioteca q trabalha c/ sensor temp. e humidade
#define DHTPIN 2   // Pino digital sensor DHT

const int sensorHum = A2;   // Pino analógico onde o sensor Humidade está conectado

# define DHTTYPE DHT11   // Define o tipo de sensor DHT que está a ser utilizado

DHT dht(DHTPIN, DHTTYPE);   // Associa pino do Arduino DHTPIN e tipo de sensor
// DHTTYPE ao objeto criado DHT

LiquidCrystal_I2C lcd(0x27, 16, 2);   // Definir o endereço do LCD para 0x27
// para um display de 16 caracteres e 2 linhas

// Função setup inicializa os dispositivos, define configurações iniciais
void setup() {
  Serial.begin(9600);
  // Serial.println(F("DHTxx teste!"));

  dht.begin();

  lcd.init();

}

void loop() {
  float leituraTemperatura = dht.readTemperature();   // Lê o valor da temperatura
  int leituraHumidade = analogRead(sensorHum);    // Lê o valor da humidade

  Serial.println(leituraHumidade);    // Exibe o valor no Serial Monitor

  // Verifica se alguma leitura falhou e tenta novamente
  if (isnan(leituraTemperatura)) {
    Serial.println(F("Falha de leitura do sensor DHT!"));
    return;
  }

  Serial.println(leituraTemperatura);   // Exibe o valor no Serial Monitor


  lcd.setBacklight(HIGH);   // Liga a luz de fundo do display LCD

  lcd.setCursor(0, 0);   // Primeira coluna e primeira linha
  lcd.print(F("Humidade: "));   // Exibe o texto no display LCD
  lcd.setCursor(10, 0);   // Coluna 10 da primeira linha
  lcd.print(round(leituraHumidade));   // Exibe o valor
  lcd.setCursor(12, 0);   // Coluna 12 da primeira linha
  lcd.print(F(" %"));   // Exibe a %
  delay(1000);   // Arduino pausa 1000 ms (1s)


  lcd.setCursor(0, 1);   // Primeira coluna e segunda linha
  lcd.print(F("Temp: "));   // Exibe o texto no display LCD
  lcd.setCursor(7, 1);   // Coluna 7 da segunda coluna
  lcd.print(round(leituraTemperatura));   // Exibe o valor
  lcd.setCursor(9, 1);   // Coluna 9 da segunda linha
  lcd.write(32);   // Caracter espaço
  lcd.write(223);   // Caracter °
  lcd.print(F("C"));   // Exibe C
  delay(1000);   // Arduino pausa 1000 ms (1s)
}
0 Kudos
Message 1 of 5
(301 Views)

Ola VascoDuque, 


Crie um Indicador das strings lidas pelo VISA (antes de converter pra numero ) e veja o que o labview esta recebendo do Arduino. Seria bom fazer o arduino enviar algum cabecalho pros dados pra garantir que os dados estao sendo  lidos apropriadamente ( por exemplo TEMP-XXX,HUM-XXX onde XXX eh o numero), assim, qdo ler no LabVIEW,  o program garante que Temperature e humidade estao sendo recebidas apropriadamente.  Se o arduino manda os dados antes do computador  estar pronto pra ler, as strings vao se acumulando e vc tem dados misturados sem saber o que eh temp e humidade.

 

LVNinja_0-1733335233542.png

 

0 Kudos
Message 2 of 5
(298 Views)

Os dados continuam a não ser os correspondidos.

Adicionamos os leitores de string.

Vou enviar a imagem do sistema e do LCD com os valores lidos pelo codigo Arduino.

VascoDuque_0-1733406613321.jpeg

VascoDuque_1-1733406621213.jpeg

 

0 Kudos
Message 3 of 5
(259 Views)

First let's talk about parsing your serial data. Instead of sending the temperature and humidity as two different things send them together in one string separated by a comma.

 

Instead of: Serial.println(leituraTemperatura); and  Serial.println(leituraHumidade); 

 

Use this: Serial.println(leituraTemperatura","leituraHumidade); 

 

That will send the temperature and humidity separated by a comma.

 

Then in your LabVIEW use Spreadsheet String To Array and Index Array to parse the string like the example below.

parceCapture.PNG

 

As for your serial communications you should watch this video:  VIWeek 2020/Proper way to communicate over serial

 

VISA Serial defaults to Termination Character enabled and Serial.println() sends a a newline character (ASCII 10, or '\n') at the end of every line sent. 

 

 

========================
=== Engineer Ambiguously ===
========================
0 Kudos
Message 4 of 5
(245 Views)

Qdo vce escrweve a variavel float na porta serial do Arduino, esse dado eh recebido como string on LabVIEW. Experimente mandar uma string com um cabecalho, por ex: "TEMP- 30,5" Atencao que o separador decimal (ponto e virgula) sao diferentes no portugues e no ingles (no labview/arduino).  

0 Kudos
Message 5 of 5
(216 Views)