bluetootharduinoarduino-unohc-05

How to send float values from one bluetooth module to other(HC 05)


I am doing a project where I need to send data from ultrasonic sensor wirelessly present in one arduino to other arduino where I need these values in Serial monitor. But the problem is I cannot able to send these values through bluetooth. I tried to send one character, it is appearing in serial monitor.. But when I tried to the same for integer values it is not appearing in serial monitor. I have configured Master and Slave modes for the Bluetooth. I have uploaded the image of the code which I am using to send these values. Please help me on this. Thanks in advance .

 code 

//@ transmitting end
#define trigPin 12
#define echoPin 11

void setup() {

  Serial.begin(38400); // Default communication rate of the Bluetooth module
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {


 long duration;
  float distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;

 Serial.println(distance,2); // Sends floatValue 
 delay(500);

}


//@ receving end

#include <SoftwareSerial.h>
#define led 13
SoftwareSerial BTSerial(10, 11);
int data=0;
void setup() {

  pinMode(led,OUTPUT);
  Serial.begin(38400);
  BTSerial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
  int number;
 if(Serial.available() > 0){ // Checks data is  from the serial port
 data = BTSerial.read(); // Reads the data from the serial port
 //analogWrite(led,data);
 delay(10);
 //Serial.println(data);

 }
 Serial.println(data);
}

I need integer values at the serial monitor. But there I am getting some symbols like ?/<>..


Solution

  • Thanks for the help..! I modified the code in the receiver end to get the float values from the transmitter.. Here is my modified code

    #include <SoftwareSerial.h>
    int bluetoothTx = 10; 
    int bluetoothRx = 11;
    String content; //content buffer to concatenate characters
    
    char character; //To store single character
    
    
    SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
    void setup(){
      bluetooth.begin(38400);
      Serial.begin(9600);
    }
    
    void loop(){
      bluetooth();
    
    }
    
    void bluetooth(){ //
      while(bluetooth.available()){
        character = bluetooth.read();
        content.concat(character);
       if(character == '\r'){ // find if there is carriage return
         Serial.print(content); //display content (Use baud rate 9600)
         content = ""; //clear buffer
         Serial.println();
      }
      }
    }