06-11-2024 09:01 AM
Bonjour à tous,
Je travaille actuellement à l'université sur un projet dont le but est de lire la température et l'humidité d'un capteur dht11 sur une face avant LabView. Pour cela, on doit écrire un programme sur Arduino et lire les données du moniteur série sur LabView. J'ai déjà le programme Arduino, mais je n'arrive pas à lire les données. Quelles modifications dois-je apporter à mon diagramme LV (en pièce jointe) ? Je dois rendre ce projet au plus tard vendredi 14/06.
06-11-2024 09:20 AM
Does the program create an error? What is the transmission format? Could you show the arduino code?
06-11-2024 10:49 AM
06-11-2024 12:10 PM
Hi, here is the arduino code i'm using :
// Capteur de temperature et d'humidite DHT11
// https://tutoduino.fr/
// Copyleft 2020
#include "DHT.h"
// Definit la broche de l'Arduino sur laquelle la
// broche DATA du capteur est reliee
#define DHTPIN 2
// Definit le type de capteur utilise
#define DHTTYPE DHT11
// Declare un objet de type DHT
// Il faut passer en parametre du constructeur
// de l'objet la broche et le type de capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
// Initialise la capteur DHT11
dht.begin();
}
void loop() {
// Recupere la temperature et l'humidite du capteur et l'affiche
// sur le moniteur serie
Serial.println("Temperature = " + String(dht.readTemperature())+" °C");
Serial.println("Humidite = " + String(dht.readHumidity())+" %");
// Attend 10 secondes avant de reboucler
delay(10000);
}
The only problem is I'm not reading anything on the front panel, but maybe that's because my diagram is incomplete.
I'm not sure what you mean about the transmission format
06-11-2024 12:11 PM
Thank you I'll check this video out
06-12-2024 01:55 AM
Arduino sends data every 10 seconds, which is the same value as the VISA read timeout. Your program might encounter a time out and stop (error 56). Is that why you added a wait before the read?
The data you receive will look like this: "Temperature = 10 °C".
Decimal string to number cannot parse this string, first you have to find the start of the number.
Instead of bytes at port, use a fixed number of bytes which is larger than the largest message length. VISA read will return when it encounters a termination character, in this case a newline.
06-12-2024 02:41 PM
Thank you for the feedback ! I haven't had the time to do it today but I'll see if it works tomorrow.