[RESOLU] Envoie de donnée DHT 11 via groove bluetooth

Salut,
j'ai un programme DHT 11 fonctionnel et un programme groove Bluetooth fonctionnel.
mon but maintenant est de fusionné les deux pour recevoir les températures via Bluetooth.
Mon soucis c'est que j'arrive a transmettre des chiffres pour allumer une led mais pas une chaine de caractère. Et le DHT 11 transmet comme ca : Humidité (%): 64.00 Température (°C): 23.00
si je fait data = Serial.read(); blueToothSerial.println(data); cela me renvoie un beau "?"

Merci pour l'aide :smiley:

voici mon code :

#include <dht11.h> //Library pour le catpeur
#include <SoftwareSerial.h> //Library pour liaison série supplémentaire

#define DHT11PIN 12 // broche DATA -> broche 12
dht11 DHT11;

#define RxD 8 //Borne BLE D8
#define TxD 9 //Borne BLE D8
SoftwareSerial blueToothSerial(RxD,TxD);//Déclaration nouvelle voie serie BLE  
char data = 0; //Variable for storing received data
     
void setup()
{
  Serial.begin(9600);
  blueToothSerial.begin(9600);
  while (!Serial) {
    // wait for serial port to connect. Needed for native USB (LEONARDO)
  }
  Serial.println("DHT11 programme d'essai bluetooth");
}
     
void loop()
{
  DHT11.read(DHT11PIN);    
  Serial.print("Humidité (%): ");
  Serial.print((float)DHT11.humidity, 2);
  Serial.print("\t");
  Serial.print("Température (°C): ");
  Serial.println((float)DHT11.temperature, 2);  

  data = Serial.read(); 
  blueToothSerial.println(data);
  
  delay(2000);
  
}

DHT 11 transmet comme ca : Humidité (%): 64.00 Température (°C): 23.00

Non ça c'est votre code qui envoie ça sur la console série en faisant

  Serial.print("Humidité (%): ");
  Serial.print((float)DHT11.humidity, 2);
  Serial.print("\t");
  Serial.print("Température (°C): ");
  Serial.println((float)DHT11.temperature, 2);

Ce qui est parti est parti, ne comptez pas le lire avec un Serial.read()... (qui ne lit qu'un seul octet de toutes façons et comme vous n'avez rien envoyé, read() va retourner -1 qui n'est pas un code ASCII affichable d'où le ?)

si vous voulez envoyer la même chose sur votre BT, vous n'avez qu'à faire pareil, mais au lieu de choisir Serial, prenez blueToothSerial...

  blueToothSerial.print("Humidité (%): ");
  blueToothSerial.print((float)DHT11.humidity, 2);
  blueToothSerial.print("\t");
  blueToothSerial.print("Température (°C): ");
  blueToothSerial.println((float)DHT11.temperature, 2);

Merci beaucoup, j'ai cherchais compliqué alors que la réponse était sous mes yeux, ca fonctionne impeccable.

Bonne continuation !

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.