I would like to build a BLE service with characteristics with read, write and notify properties by using built-in accelerometer sensor of my Nano 33 senses. Since Nano 33 senses has LSM9DS1 IMU, I will use Arduino_LSM9DS1 library for my experiment.

To generate an UUID by using https://www.uuidgenerator.net/version1, I got code as below:

59668694-8d7d-11eb-8dcd-0242ac130003

Then I tested the library to get acceleration values from the LSM9DS1 sensor, it works.

Second, I will use ArduinoBLE library to build a BLE service with characteristics with read, write and notify properties.

Set up the read and notify properties.

Set up the write property.

The below attached are the results. I only shows x value here for demo.

Arduino code
/*
  Arduino LSM9DS1 - Simple Accelerometer

  This example reads the acceleration values from the LSM9DS1
  sensor and continuously prints them to the Serial Monitor
  or Serial Plotter.

  The circuit:
  - Arduino Nano 33 BLE Sense

  created 10 Jul 2019
  by Riccardo Rizzo

  This example code is in the public domain.
*/

#include <ArduinoBLE.h>
#include <Arduino_LSM9DS1.h>

BLEService customService("59668694-8d7d-11eb-8dcd-0242ac130003");

BLEIntCharacteristic CharacteristicX("59668694-8d7d-11eb-8dcd-0242ac130003", BLERead | BLENotify);
BLEIntCharacteristic CharacteristicY("59668694-8d7d-11eb-8dcd-0242ac130003", BLERead | BLENotify);
BLEIntCharacteristic CharacteristicZ("59668694-8d7d-11eb-8dcd-0242ac130003", BLERead | BLENotify);

void setup() {
  Serial.begin(9600);
  //while (!Serial);
  Serial.println("Started");

  if (!IMU.begin()) {
    Serial.println("Failed to initialize IMU!");
    while (1);
  }

  Serial.print("Accelerometer sample rate = ");
  Serial.print(IMU.accelerationSampleRate());
  Serial.println(" Hz");
  Serial.println();
  Serial.println("Acceleration in G's");
  Serial.println("X\tY\tZ");

  // begin initialization
  BLE.begin();

  // set advertised local name and service UUID:
  BLE.setLocalName("BLE");
  BLE.setAdvertisedService(customService);

  // add the characteristic to the service
  customService.addCharacteristic(CharacteristicX);
  customService.addCharacteristic(CharacteristicY);
  customService.addCharacteristic(CharacteristicZ);

  // add service
  BLE.addService(customService);

  // set the initial value for the characeristic:
  CharacteristicX.writeValue(0);
  CharacteristicY.writeValue(0);
  CharacteristicZ.writeValue(0);

  // start advertising
  BLE.advertise();

  Serial.println("BLE LED Peripheral");

  
}

void loop() {
   
  BLE.poll();
    
  float x, y, z;

  if (IMU.accelerationAvailable()) {
    IMU.readAcceleration(x, y, z);

    Serial.print(x);
    Serial.print('\t');
    Serial.print(y);
    Serial.print('\t');
    Serial.println(z);

    CharacteristicX.writeValue(x*100);
    CharacteristicY.writeValue(y*100);
    CharacteristicZ.writeValue(z*100);
        
  }
}