No data shows up via ble

Hello i am trying to establish connection via ble module in arduino r4 wifi , when i connect via my phone i see no data displayed (mind that i am a beginner coder) i would be glad if someone could point out why isnt it working .

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <RTClib.h>
#include <BH1750.h>
#include <SD.h>
#include <ArduinoBLE.h>

// ---- SENSOR OBJECTS ----
Adafruit_BME280 bme; // I2C BME280
RTC_DS3231 rtc;       // RTC
BH1750 lightMeter;    // Light sensor
File dataFile;

// ---- SD CARD ----
const int SD_CS = 10; // SD card CS pin

// ---- ALTITUDE CALIBRATION ----
float actualAltitude = 63.0; // meters
float seaLevelPressure;

// ---- DELAY ----
unsigned long delayTime = 5000; // 5 seconds

// ---- BLE SERVICE AND CHARACTERISTICS ----
BLEService sensorService("12345678-1234-5678-1234-56789abcdef0");
BLEFloatCharacteristic tempChar("12345678-1234-5678-1234-56789abcdef1", BLERead | BLENotify);
BLEFloatCharacteristic pressureChar("12345678-1234-5678-1234-56789abcdef2", BLERead | BLENotify);
BLEFloatCharacteristic humidityChar("12345678-1234-5678-1234-56789abcdef3", BLERead | BLENotify);
BLEFloatCharacteristic lightChar("12345678-1234-5678-1234-56789abcdef4", BLERead | BLENotify);

// ===== FORWARD DECLARATIONS =====
void printValues(float temperature, float pressure, float altitude, float humidity, float lux);
bool isDST(int year, int month, int day, int hour);

void setup() {
  Serial.begin(115200);
  Wire.begin();

  // ---- BME280 ----
  if (!bme.begin(0x76)) {
    Serial.println("Could not find BME280!");
    while (1);
  }

  float currentPressure = bme.readPressure() / 100.0F;
  seaLevelPressure = currentPressure / pow(1.0 - (actualAltitude / 44330.0), 5.255);
  Serial.print("Calibrated Sea-Level Pressure: ");
  Serial.println(seaLevelPressure);

  // ---- RTC ----
  if (!rtc.begin()) {
    Serial.println("RTC not found!");
    while (1);
  }

  // ---- BH1750 ----
  if (!lightMeter.begin(BH1750::ONE_TIME_HIGH_RES_MODE)) {
    Serial.println("BH1750 not found!");
    while (1);
  }

  // ---- SD CARD ----
  if (!SD.begin(SD_CS)) {
    Serial.println("SD card initialization failed!");
    while (1);
  }
  Serial.println("SD card initialized.");

  // Create/Open file and write header
  dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    dataFile.println("Date,Time,Temperature,Pressure,Altitude,Humidity,Light");
    dataFile.close();
  } else {
    Serial.println("Error opening datalog.txt");
  }

  // ---- BLE ----
  if (!BLE.begin()) {
    Serial.println("Starting BLE failed!");
    while (1);
  }
  BLE.setLocalName("ArduinoSensor");
  BLE.setAdvertisedService(sensorService);
  sensorService.addCharacteristic(tempChar);
  sensorService.addCharacteristic(pressureChar);
  sensorService.addCharacteristic(humidityChar);
  sensorService.addCharacteristic(lightChar);
  BLE.addService(sensorService);
  BLE.advertise();

  Serial.println("BLE device active, waiting for connections...");
}

void loop() {
  // ---- BLE CENTRAL CONNECTION ----
  BLEDevice central = BLE.central();

  if (central) {
    Serial.print("Connected to central: ");
    Serial.println(central.address());

    while (central.connected()) {
      // ---- TIME ----
      DateTime now = rtc.now();
      int hour = now.hour();
      if (isDST(now.year(), now.month(), now.day(), hour)) {
        hour++;
        if (hour >= 24) hour = 0;
      }

      // ---- SENSOR READINGS ----
      float temperature = bme.readTemperature();
      float pressure = bme.readPressure() / 100.0F;
      float altitude = bme.readAltitude(seaLevelPressure);
      float humidity = bme.readHumidity();
      float lux = -1;

      if (lightMeter.measurementReady(true)) {
        lux = lightMeter.readLightLevel();
        // Adjust sensitivity
        if (lux > 40000.0) lightMeter.setMTreg(32);
        else if (lux > 10.0) lightMeter.setMTreg(69);
        else lightMeter.setMTreg(138);
      }

      // ---- BLE UPDATE ----
      tempChar.writeValue(temperature);
      pressureChar.writeValue(pressure);
      humidityChar.writeValue(humidity);
      lightChar.writeValue(lux);

      // ---- SERIAL + SD LOG ----
      printValues(temperature, pressure, altitude, humidity, lux);

      // ---- DELAY ----
      delay(delayTime);
    }

    Serial.print("Disconnected from central: ");
    Serial.println(central.address());
  }
}

// ===== PRINT TO SERIAL AND LOG TO SD =====
void printValues(float temperature, float pressure, float altitude, float humidity, float lux) {
  DateTime now = rtc.now();
  int hour = now.hour();
  if (isDST(now.year(), now.month(), now.day(), hour)) {
    hour++;
    if (hour >= 24) hour = 0;
  }

  // Serial output
  Serial.print(now.year()); Serial.print("-"); Serial.print(now.month()); Serial.print("-"); Serial.print(now.day()); Serial.print(" ");
  Serial.print(hour); Serial.print(":"); Serial.print(now.minute()); Serial.print(":"); Serial.println(now.second());
  Serial.print("Temperature = "); Serial.println(temperature);
  Serial.print("Pressure = "); Serial.println(pressure);
  Serial.print("Altitude = "); Serial.println(altitude);
  Serial.print("Humidity = "); Serial.println(humidity);
  Serial.print("Light = "); Serial.println(lux);
  Serial.println();

  // SD logging
  dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    dataFile.print(now.year()); dataFile.print("-"); dataFile.print(now.month()); dataFile.print("-"); dataFile.print(now.day()); dataFile.print(",");
    dataFile.print(hour); dataFile.print(":"); dataFile.print(now.minute()); dataFile.print(":"); dataFile.print(now.second()); dataFile.print(",");
    dataFile.print(temperature); dataFile.print(",");
    dataFile.print(pressure); dataFile.print(",");
    dataFile.print(altitude); dataFile.print(",");
    dataFile.print(humidity); dataFile.print(",");
    dataFile.println(lux);
    dataFile.close();
  } else {
    Serial.println("Error opening datalog.txt");
  }
}

// ===== DST FUNCTION =====
bool isDST(int year, int month, int day, int hour) {
  int lastSundayMarch = 31;
  while (DateTime(year, 3, lastSundayMarch).dayOfTheWeek() != 0)
    lastSundayMarch--;

  int lastSundayOct = 31;
  while (DateTime(year, 10, lastSundayOct).dayOfTheWeek() != 0)
    lastSundayOct--;

  if (month > 3 && month < 10) return true;
  if (month == 3 && day >= lastSundayMarch) return true;
  if (month == 10 && day < lastSundayOct) return true;

  return false;
}

Describe your setup, how you verify a connection is made and good, how you create the data, how you verify the data was transmitted, how you verify the data was received, where you expect to see data... et c.

This is a very complex sketch with sensors, an rtc, an sd card , and ble.

I think you should write a simple BLE sketch with fixed data and see if you can read that. Then add the other elements piece by piece.

Float data can be tricky, and you will find it easier to debug and see what is being sent if you multiply the values by 100 and send an integer.

See this posting
https://forum.arduino.cc/t/passing-a-floating-point-number-via-ble/1155922

Okay so i see the connection is made via nRf connect app i also expect to get data there , data is created with a few sensors :Bme280,DS3231(RTC),BH1750

Ima try that , tbh i just wanna have a way to see data wirelesly cuz it will be used for weather station outside and i just try to find easiest way .