Hi community, I need to connect an ESP32 board to MQTT and then communicate with node-network. the problem is that the board does not connect and by the serial monitor it only tells me that mqttbroker fails. When compiling the program has no failures.
the code is:
#include <WiFi.h>
#include <PubSubClient.h>
#define led1 32
#define led2 33
#define led3 34
#define puertoMqtt 1883
WiFiClient clienteWifi;//este cliente se encarga de la comunicacion con el wifi
PubSubClient clienteMQTT(clienteWifi);//este utiliza el cliente anterior para hacer poder crear la conexion mqtt
const char * ssid = "VTR-4212055";
const char * claveWifi = "………..";
const char * brokerMqtt = "";
uint32_t ultimoIntentoReconexion;
uint32_t timerEnvioDatos;
void conectarAlWifi() {
Serial.println("inciando wifi");
WiFi.begin(ssid, claveWifi);
Serial.print("conectando a");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wifi Conectado ");
Serial.println("direccion IP: ");
Serial.println(clienteWifi.localIP());
}
void callback(char* topic, byte* mensaje, unsigned int length) {
String topico = topic;
/* String mensaje;
for(uint8_t i; i <length;i++){
mensaje+=char(payload*);*
_ }*/_
- Serial.print("Mensaje Recibido del topico: ");*
- Serial.println(topico);*
- Serial.print("mensaje : ");*
- Serial.println((char)mensaje[0]);*
- if (topico == "/led1") {*
- digitalWrite(led1, mensaje[0]);*
- }*
- else if (topico == "/led2") {*
- digitalWrite(led2, mensaje[0]);*
- }*
- else if (topico == "/led3") {*
- digitalWrite(led3, mensaje[0]);*
- }*
- else {*
- Serial.println("error de mensaje");*
- }*
}
boolean reconexion() { - Serial.print("Conectando al broker mqtt");*
- //intentando conectar al broker*
- if (clienteMQTT.connect("ESP8266Client")) {*
- Serial.println("Conectado");*
- //publicamos que estamos conectados*
- clienteMQTT.publish("/conexion", "Conectado");*
- //nos suscribimos a los topicos para controlar los ledes*
- clienteMQTT.subscribe("/led1");*
- clienteMQTT.subscribe("/led2");*
- clienteMQTT.subscribe("/led3");*
- } else {*
- Serial.print("falló, rc=");*
- Serial.print(clienteMQTT.state());*
- }*
- return clienteMQTT.connected();*
}
void setup() { - Serial.begin(115200);*
- Serial.println("iniciando programa Holi mami");*
- pinMode(led1, OUTPUT);*
- pinMode(led2, OUTPUT);*
- pinMode(led3, OUTPUT);*
- conectarAlWifi();*
- clienteMQTT.setServer(brokerMqtt, puertoMqtt); //le decimos cual es el servidor y el puerto al que se debe conectar*
- clienteMQTT.setCallback(callback);//le decimos como se llama la funcion de callback*
}
void loop() { - if (!clienteMQTT.connected()) {*
- if (millis() - ultimoIntentoReconexion > 5000) {*
- ultimoIntentoReconexion = millis();*
- // Attempt to reconnect*
- if (reconexion()) {*
- ultimoIntentoReconexion = 0;*
- }*
- }*
- } else {*
//Cliente Conectado - if (millis() - timerEnvioDatos > 5000) {*
- timerEnvioDatos=millis();*
- char msg[4];*
- snprintf (msg, 3, "%ld", random(35));*
- clienteMQTT.publish("/temperatura", msg);*
- snprintf (msg, 4, "%ld", random(100));*
- clienteMQTT.publish("/humedad", msg);*
- }*
- clienteMQTT.loop();*
- }*
}
I am currently occupying node-red in Windows 10.