Question about using slider bar to control PWM LED

Hello guys
I need some help in my app build.
I want to use the Android app to control the LED luminance using an ESP32 module and Bluetooth.

How can create the block in MIT to do this?

Huge thanks for everyone willing to help me.

Here the code in Arduino IDE:

#define LED_B 27 // Define LED_B as 27 for LED Blue

// setting PWM properties
const int freq = 1000; // 1kHz flash
const int LED_PWM_Channel_3 = 3; // define LED_PWM_Channel_3 as 3
const int resolution = 8; // set resolution as 8 bit. That is 255 levels.

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);

ledcSetup(LED_PWM_Channel_3, freq, resolution); // set PWM channel, frequency and resolution as above defined
ledcAttachPin(LED_B, LED_PWM_Channel_3); // map LED_B(27, blue LED) to PWM Channel 3
}

void loop() {
// put your main code here, to run repeatedly:
for (int ColorLevel=0; ColorLevel < 255; ColorLevel++) {
ledcWrite(LED_PWM_Channel_3, ColorLevel); // set LED bright level
delay(10);
};

ledcWrite(LED_PWM_Channel_3, 100); // set LED bright level 100/255
delay(1000); // hold 1 second
ledcWrite(LED_PWM_Channel_3, 30); // set LED bright level 30/255
delay(2000); // hold 2 second
}

I don't see where you are setting up your Bluetooth connection. Are you planning to receive information over the Serial, or are you planning to use BLE characteristics? It should be fairly forward to connect the Slider up in the app, but without knowing which communication paradigm you intend to use I don't know we can advise further. There are plenty of ESP32 posts here and some guides in the #tutorials-and-guides section as well.

Here the hold code and my aia file

#include <SimpleDHT.h>
int pinDHT11 = 22;
SimpleDHT11 dht11 (pinDHT11);

#include <Adafruit_Sensor.h>

#include <Stepper.h>

#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;



//#include <Servo.h>

#define max_char 12
char message[max_char];    // stores you message
char r_char;               // reads each character
byte cindex = 0;            // defines the position into your array
int i;

//RGB PWM 
#define LED_R 25          // Define LED_R as 25 for LED Blue
// setting PWM properties
const int LED_PWM_Channel_1 = 1;  // define LED_PWM_Channel_1 as 


#define LED_G 26          // Define LED_G as 26 for LED Blue
// setting PWM properties
const int LED_PWM_Channel_2 = 2;  // define LED_PWM_Channel_2 as 


#define LED_B 27          // Define LED_B as 27 for LED Blue
// setting PWM properties
const int LED_PWM_Channel_3 = 3;  // define LED_PWM_Channel_3 as 3

const int freq = 1000;            // 1kHz flash
const int resolution = 8;         // set resolution as 8 bit. That is 255 levels.

//RGB PWM 
*/

bool testmode=1;

void setup() {

  
  Serial.begin(115200);

  SerialBT.begin("WongYatHei");


  //RGB red PWM 
  ledcSetup(LED_PWM_Channel_1, freq, resolution);   // set PWM channel, frequency and resolution as above defined
  ledcAttachPin(LED_R, LED_PWM_Channel_1);          // map LED_R(25, red LED) to PWM Channel 1

  //RGB green PWM 
  ledcSetup(LED_PWM_Channel_2, freq, resolution);   // set PWM channel, frequency and resolution as above defined
  ledcAttachPin(LED_G, LED_PWM_Channel_2);          // map LED_G(26, green LED) to PWM Channel 2

  //RGB blue PWM 
  ledcSetup(LED_PWM_Channel_3, freq, resolution);   // set PWM channel, frequency and resolution as above defined
  ledcAttachPin(LED_B, LED_PWM_Channel_3);          // map LED_B(27, blue LED) to PWM Channel 3



  //pin for direction
  pinMode(19, OUTPUT); //motor1
  pinMode(21, OUTPUT); //motor1
  pinMode(4, OUTPUT);  //motor2
  pinMode(16, OUTPUT); //motor2
  
  pinMode(13, OUTPUT);
  pinMode(15, OUTPUT);
  pinMode(22, OUTPUT); 
  pinMode(25, OUTPUT);  
  pinMode(26, OUTPUT);  
  pinMode(27, OUTPUT);  

  pinMode(32, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);

}

void loop() {
  if (SerialBT.available()) {
    char rxdata = SerialBT.read();
    Serial.write(rxdata);
    

    if(rxdata == 't') {
    byte temperature = 0;
    byte humidity =0;
    int err = SimpleDHTErrSuccess;
    if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
      Serial.print("Read DHT11 failed, err="); Serial.print(SimpleDHTErrCode(err));
      Serial.print(","); Serial.println(SimpleDHTErrDuration(err)); delay(1000); 
      return;
      }
  
      Serial.print((int)humidity); 
      SerialBT.print((int)humidity);
      Serial.print((int)temperature);
      SerialBT.print((int)temperature);
     }
  

    if (rxdata == 'l') digitalWrite(13, !digitalRead(13));
    if (rxdata == 'r') digitalWrite(15, !digitalRead(15));
    if (rxdata == '1') digitalWrite(25, !digitalRead(25));
    if (rxdata == '2') digitalWrite(26, !digitalRead(26));
    if (rxdata == '3') digitalWrite(27, !digitalRead(27));
    if (rxdata == '4') digitalWrite(14, !digitalRead(14));
    if (rxdata == '5') digitalWrite(12, !digitalRead(12));
   
    //for direction 
    if (rxdata == '+'){
    
    digitalWrite(16, LOW);
    digitalWrite(19, LOW);
    digitalWrite(21, LOW);
    digitalWrite(4, LOW);
    digitalWrite(16, HIGH);
    delay(1500);
    digitalWrite(19, HIGH);
    delay(1500);
    }
    
    if (rxdata == '-') {
    
    digitalWrite(16, LOW);
    digitalWrite(19, LOW);
    digitalWrite(21, LOW);
    digitalWrite(4, LOW);
    digitalWrite(21, HIGH);
    delay(1500);
    digitalWrite(4, HIGH);
    delay(1500);
    }

    if (rxdata == 'L'){
    
    digitalWrite(19, LOW);
    digitalWrite(21, LOW);
    digitalWrite(4, LOW);
    digitalWrite(16, HIGH);
    delay(1500);
    }

    if (rxdata == '8'){
    
    digitalWrite(19, LOW);
    digitalWrite(4, LOW);
    digitalWrite(16, HIGH);
    delay(1500);
    digitalWrite(21, HIGH);
    delay(1500);
    }

     if (rxdata == 'R'){
    
    digitalWrite(16, LOW);
    digitalWrite(21, LOW);
    digitalWrite(4, LOW);
    digitalWrite(19, HIGH);
    delay(1500);
    }

     if (rxdata == '9'){
    
    digitalWrite(21, LOW);
    digitalWrite(16, LOW);
    digitalWrite(19, HIGH);
    delay(1500);
    digitalWrite(4, HIGH);
    delay(1500);
    }

     if (rxdata == 'S'){
    
    digitalWrite(19, LOW);
    digitalWrite(21, LOW);
    digitalWrite(4, LOW);
    digitalWrite(16, LOW);
    }
  
     if (rxdata == 'f'){
    
    digitalWrite(25, LOW);
    digitalWrite(26, LOW);
    digitalWrite(27, LOW);
    digitalWrite(13, LOW);
    digitalWrite(15, LOW);
    }

  //RGB red PWM 
     for (int ColorLevel=0; ColorLevel < 255; ColorLevel++) {
    ledcWrite(LED_PWM_Channel_1, ColorLevel);       // set LED bright level 
    delay(10);
  };
  
  ledcWrite(LED_PWM_Channel_1, 100);  // set LED bright level 100/255
  delay(1000);                        // hold 1 second
  ledcWrite(LED_PWM_Channel_1, 30);   // set LED bright level 30/255
  delay(2000);                        // hold 2 second




  //RGB green PWM 
     for (int ColorLevel=0; ColorLevel < 255; ColorLevel++) {
    ledcWrite(LED_PWM_Channel_2, ColorLevel);       // set LED bright level 
    delay(10);
  };
  
  ledcWrite(LED_PWM_Channel_2, 100);  // set LED bright level 100/255
  delay(1000);                        // hold 1 second
  ledcWrite(LED_PWM_Channel_2, 30);   // set LED bright level 30/255
  delay(2000);                        // hold 2 second





  //RGB blue PWM 
     for (int ColorLevel=0; ColorLevel < 255; ColorLevel++) {
    ledcWrite(LED_PWM_Channel_3, ColorLevel);       // set LED bright level 
    delay(10);
  };
  
  ledcWrite(LED_PWM_Channel_3, 100);  // set LED bright level 100/255
  delay(1000);                        // hold 1 second
  ledcWrite(LED_PWM_Channel_3, 30);   // set LED bright level 30/255
  delay(2000);   // hold 2 second


   
  }
  }

WongYatHei_BTcar_project.aia (799.9 KB)