How can I send/write two doubles via Bluetooth (nRF8001 Bluefruit LE) in Arduino? I recently purchased an nRF8001 Bluefruit LE and I am now trying to read/send data with an app. But I am not sure how I can write/send a double value. I want to send two double values at once and to successfully send this, do I have to convert these doubles to a byte array? If so I would very much appreciate how that would look!

This is documentation on how my module works:
https://learn.adafruit.com/getting-started-with-the-nrf8001-bluefruit-le-breakout/nrf-uart-in-detail

Under the headline Writing data they give examples on how to send data but as far as I can see (I am a bit new to Arduino code) in their example they only send an int and a string.

I know how to read and set up the module, so it is only the writing/sending doubles that I am struggling with.

These are the two doubles that I wish to send and I control it with:

double valueOne;
double valueTwo;


The Bluetooth control:

Adafruit_BLE_UART BTLEserial = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST);


So if I for example do this:

BTLEserial.write(valueOne, valueTwo);


I get this message: no matching function for call to 'Adafruit_BLE_UART::write(double&amp;, double&amp;)'

So do I need to convert these two double values to a byte array and if so how would that look?

Appreciate every help, tips, code! :)
As the link "Adafruit - nRF UART In Detail" describes, the function write(sendbuffer, sendbuffersize); is waiting for a buffer of uint8_t followed by the size of the message.

Here are the step--by-step solution to send the 2 doubles by using that function.

Step1 - convert the floating-point values into a char string.


  In the Arduino environment, the standard format-specifier %f or %lf
  is not well-managed and the function dtostrf() is recommended.


The format is char *   dtostrf (double __val, signed char __width, unsigned char __prec, char *__s) where:


__val is the floating-point value to be converted,
__s is the array of char to store the result,
__width is the number of characters to store the result,
__prec is the number of digit


The conversion is:

char sValueOne[16], sValueTwo[16];
char sBuffer[33];

strcpy(sBuffer,dtostrf(valueOne, 15, 8, sValueOne));
strcat(sBuffer,",");
strcat(sBuffer,dtostrf(valueTwo, 15, 8, sValueTwo));


Step2 - write the buffer over the BTLEserial object.

BTLEserial.write((uint8_t *)sBuffer, strlen(sBuffer));



  Alternate output solution using BTLEserial.print() function.


BTLEserial.print(sBuffer);