Ubidots Community

Problem with ecg sensor and esp32 code

The code below did not connect to the cloud. The code keeps failing. anybody should please help with the correct code or any corrections in the code?

#include <WiFi.h>
#include <PubSubClient.h>

#define WIFISSID “adextronics” // Put your WifiSSID here
#define PASSWORD “111111110” // Put your wifi password here
#define TOKEN “BBFF-fChAGEkTuGEeMgd07HWvYrIJgsFeeq” // Put your Ubidots’ TOKEN
#define MQTT_CLIENT_NAME “g59jy84usq” // MQTT client Name, please enter your own 8-12 alphanumeric character ASCII string;
#define VARIABLE_LABEL “sensor” // Assing the variable label
#define DEVICE_LABEL “esp32” // Assig the device label

#define SENSOR A0 // Set the A0 as SENSOR

char mqttBroker[] = “industrial.api.ubidots.com”;
char payload[100];
char topic[150];
// Space to store values to send
char str_sensor[10];
WiFiClient ubidots;
PubSubClient client(ubidots);

void callback(char* topic, byte* payload, unsigned int length) {
char p[length + 1];
memcpy(p, payload, length);
p[length] = NULL;
Serial.write(payload, length);
Serial.println(topic);
}

void reconnect() {
while (!client.connected()) {
Serial.println(“Attempting MQTT connection…”);

// Attemp to connect
if (client.connect(MQTT_CLIENT_NAME, TOKEN, "")) {
  Serial.println("Connected");
} else {
  Serial.print("Failed, rc=");
  Serial.print(client.state());
  Serial.println(" try again in 2 seconds");
  // Wait 2 seconds before retrying
  delay(2000);
}

}
}

void setup() {
Serial.begin(115200);
WiFi.begin(WIFISSID, PASSWORD);
// Assign the pin as INPUT
pinMode(SENSOR, INPUT);

Serial.println();
Serial.print(“Waiting for WiFi…”);

while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}

Serial.println("");
Serial.println(“WiFi Connected”);
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
client.setServer(mqttBroker, 1883);
client.setCallback(callback);
}

void loop() {
if (!client.connected()) {
reconnect();
}

sprintf(topic, “%s%s”, “/v1.6/devices/”, DEVICE_LABEL);
sprintf(payload, “%s”, “”); // Cleans the payload
sprintf(payload, “{”%s":", VARIABLE_LABEL); // Adds the variable label

float sensor = analogRead(SENSOR);

dtostrf(sensor, 4, 2, str_sensor);

sprintf(payload, “%s {“value”: %s}}”, payload, str_sensor); // Adds the value
Serial.println(“Publishing data to Ubidots Cloud”);
client.publish(topic, payload);
client.loop();
delay(500);
}