ESP32 does not connect

Hello

I’m new to this and can’t communicate with HiveMQ from an ESP32-CAM.Hola

I have defined a Cluster in HiveMQ.

The WiFi connection does it right.
The MQTT connection gives me error 5.

In the Arduino program

const char* mqtt_server = “4aa46c5b67484842bf1e2a69f446a433.s1.eu.hivemq.cloud”; // Cluster URL
const char* mqtt_username = “JosetxoSB”; // Cluster username
const char* mqtt_password = “xxxxxxxxxx”; // Cluster password
const int mqtt_port =8883;

clientID, I’ve tried these two options
// String clientId = “ESP8266Client-”; // Create a random client ID
// clientId += String(random(0xffff), HEX);
String clientId = “hivemq.webclient.1707816231762”; // userename in Cluster ACCESS MANAGEMENT

This is the Arduino program extracted from the internet.

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

#include <Arduino.h>
#include <time.h>

// Update these with values suitable for your network.
const char* ssid = “xxxxxxxxxxxx”;
const char* password = “xxxxxxxx”;

/******* MQTT Broker Connection Details ****/
const char
mqtt_server = “4aa46c5b67484842bf1e2a69f446a433.s1.eu.hivemq.cloud”;
const char
mqtt_username = “JosetxoSB”;
const char
mqtt_password = “xxxxxxxxxx”;
const int mqtt_port =8883;

/**** Secure WiFi Connectivity Initialisation *****/
WiFiClientSecure espClient;

/**** MQTT Client Initialisation Using WiFi Connection *****/
PubSubClient client(espClient);

unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50)
char msg[MSG_BUFFER_SIZE];

const char* sensor1_topic = “sensor1”;

/****** root certificate *********/
static const char *root_ca PROGMEM = R"EOF(
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
)EOF";

/************* Connect to WiFi ***********/
void setup_wifi() {
delay(10);
Serial.print("\nConnecting to ");
Serial.println(ssid);

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
randomSeed(micros());
Serial.println("\nWiFi connected\nIP address: ");
Serial.println(WiFi.localIP());
}

/************* Connect to MQTT Broker ***********/
void reconnect() {
// Loop until we’re reconnected
while (!client.connected()) {
Serial.print(“Attempting MQTT connection…”);
// String clientId = “ESP8266Client-”; // Create a random client ID
// clientId += String(random(0xffff), HEX);
String clientId = “hivemq.webclient.1707816231762”;
// Attempt to connect
if (client.connect(clientId.c_str(), mqtt_username, mqtt_password)) {
Serial.println(“connected”);
client.subscribe(“led_state”); // subscribe the topics here
} else {
Serial.print(“failed, rc=”);
Serial.print(client.state());
Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying
delay(5000);
}
}
}

/***** Call back Method for Receiving MQTT messages and Switching LED **/
void callback(char
topic, byte
payload, unsigned int length) {
String incommingMessage = “”;
for (int i = 0; i < length; i++) incommingMessage+=(char)payload[i];
Serial.println(“Message arrived [”+String(topic)+“]”+incommingMessage);
// //— check the incomming message
// if( strcmp(topic,“led_state”) == 0){
// if (incommingMessage.equals(“1”)) digitalWrite(led, HIGH); // Turn the LED on
// else digitalWrite(led, LOW); // Turn the LED off
// }
}

/**** Method for Publishing MQTT Messages *********/
void publishMessage(const char
topic, String payload , boolean retained){
if (client.publish(topic, payload.c_str(), true))
Serial.println(“Message publised [”+String(topic)+"]: "+payload);
}

/**** Application Initialisation Function******/
void setup() {
Serial.begin(115200);
while (!Serial) delay(1);
setup_wifi();

espClient.setCACert(root_ca); // enable this line and the the “certificate” code for secure connection
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
}

/******** Main Function *************/
void loop() {
if (!client.connected()) reconnect(); // check if client is connected
client.loop();

publishMessage(sensor1_topic, “Hola”, false);

delay(100);
}

Hello @JosetxoSB

Greetings and welcome to the HiveMQ Community Forum! We’re delighted to see your interest in MQTT and HiveMQ.

In response to your inquiry, may we kindly direct you to this link: Connecting ESP-32 CAM with HiveMQ Cloud, where my colleague has generously shared a working example.

Should you require additional assistance, please don’t hesitate to reach out to us, we are happy to assist.

Regards,
Sheetal from the HiveMQ team

Thank you very much for your help.

Now everything is working properly.

Best regards

Josetxo Sabalza

En miércoles, 13 de marzo de 2024, 13:12:51 CET, Sheetal via HiveMQ Community Forum notifications@hivemq1.discoursemail.com escribió:

| SShet
March 13 |

  • | - |

Hello @JosetxoSB

Greetings and welcome to the HiveMQ Community Forum! We’re delighted to see your interest in MQTT and HiveMQ.

In response to your inquiry, may we kindly direct you to this link: Connecting ESP-32 CAM with HiveMQ Cloud, where my colleague has generously shared a working example.

Should you require additional assistance, please don’t hesitate to reach out to us, we are happy to assist.

Regards,
Sheetal from the HiveMQ team

Hello SShet

Sorry for the delay in replying, it has been impossible for me to dedicate time to this problem.

Now everything works properly.

Thanks a lot

Best regards