hello
I am a newbee in BLE dev.
I try to connect the sensor to the Adafruit board thrut BLE.
The sensor is Sensor it is saw on nrf connect iOS as
I mod the HRM central code to match with the CSC Here my code I send to the board with Arduino ide
#include <bluefruit.h> BLEClientService hrms(UUID16_SVC_HEART_RATE); BLEClientCharacteristic hrmc(UUID16_CHR_HEART_RATE_MEASUREMENT); BLEClientCharacteristic bslc(UUID16_CHR_BODY_SENSOR_LOCATION); void setup() { Serial.begin(115200); while ( !Serial ) delay(10); // for nrf52840 with native usb Serial.println("Bluefruit52 Central Custom HRM Example"); Serial.println("--------------------------------------\n"); Bluefruit.begin(0, 1); Bluefruit.setName("Bluefruit52 Central"); hrms.begin(); bslc.begin(); hrmc.setNotifyCallback(hrm_notify_callback); hrmc.begin(); Bluefruit.setConnLedInterval(250); Bluefruit.Central.setDisconnectCallback(disconnect_callback); Bluefruit.Central.setConnectCallback(connect_callback); Bluefruit.Scanner.setRxCallback(scan_callback); Bluefruit.Scanner.restartOnDisconnect(true); Bluefruit.Scanner.setInterval(160, 80); // in unit of 0.625 ms Bluefruit.Scanner.filterUuid(hrms.uuid); Bluefruit.Scanner.useActiveScan(false); Bluefruit.Scanner.start(0); // // 0 = Don't stop scanning after n seconds } void loop() { // do nothing } void scan_callback(ble_gap_evt_adv_report_t* report) { Bluefruit.Central.connect(report); } void connect_callback(uint16_t conn_handle) { Serial.println("Connected"); Serial.print("Discovering HRM Service ... "); if ( !hrms.discover(conn_handle) ) { Serial.println("Found NONE"); // disconnect since we couldn't find HRM service Bluefruit.disconnect(conn_handle); return; } Serial.println("Found it"); Serial.print("Discovering Measurement characteristic ... "); if ( !hrmc.discover() ) { Serial.println("not found !!!"); Serial.println("Measurement characteristic is mandatory but not found"); Bluefruit.disconnect(conn_handle); return; } Serial.println("Found it"); Serial.print("Discovering Body Sensor Location characteristic ... "); if ( bslc.discover() ) { Serial.println("Found it"); const char* body_str[] = { "Other", "Chest", "Wrist", "Finger", "Hand", "Ear Lobe", "Foot" }; uint8_t loc_value = bslc.read8(); Serial.print("Body Location Sensor: "); Serial.println(body_str[loc_value]); }else { Serial.println("Found NONE"); } if ( hrmc.enableNotify() ) { Serial.println("Ready to receive HRM Measurement value"); }else { Serial.println("Couldn't enable notify for HRM Measurement. Increase DEBUG LEVEL for troubleshooting"); } } void disconnect_callback(uint16_t conn_handle, uint8_t reason) { (void) conn_handle; (void) reason; Serial.println("Disconnected"); } void hrm_notify_callback(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len) { Serial.print("HRM Measurement: "); if ( data[0] & bit(0) ) { uint16_t value; memcpy(&value, data+1, 2); Serial.println(value); } else { Serial.println(data[1]); } }
the only respond I have is
Bluefruit52 Central Custom CSC Example --------------------------------------
I don't receive any data in the serial monitor.
is someone could help me ?
regards