setcallback pubsubclient loop libreria espclient esp32 cliente arduino mqtt esp8266

loop - mqtt entre esp8266 y arduino con PubSubclient



pubsubclient esp8266 reconnect (1)

No creo que PubSubClient admita WiFiEsp como capa de red de un arduino.

Mientras que la lista de documentos del ESP8266 creo que esto está ejecutando el PubSubClient directamente en el hardware ESP8266.

Estoy usando ESP8266 con Arduino usando la biblioteca WiFiEsp. Quiero hacer una conexión MQTT con Arduino, así que utilizo la biblioteca PubSubclient. Obtuve un error:

Intentando la conexión MQTT ... falló, rc = -2 intenta nuevamente en 5 segundos

mi código es:

#include <WiFiEsp.h> #include <WiFiEspClient.h> #include <WiFiEspUdp.h> #include "SoftwareSerial.h" #include <PubSubClient.h> IPAddress server(212, 72, 74, 21); char ssid[] = "atmel"; // your network SSID (name) char pass[] = "bets56789"; // your network password int status = WL_IDLE_STATUS; // the Wifi radio''s status // Initialize the Ethernet client object WiFiEspClient espClient; PubSubClient client(espClient); SoftwareSerial soft(2,3); // RX, TX void setup() { // initialize serial for debugging Serial.begin(9600); // initialize serial for ESP module soft.begin(115200); // initialize ESP module WiFi.init(&soft); // check for the presence of the shield if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // don''t continue while (true); } // attempt to connect to WiFi network while ( status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); // Connect to WPA/WPA2 network status = WiFi.begin(ssid, pass); } // you''re connected now, so print out the data Serial.println("You''re connected to the network"); //delay(2000); //connect to MQTT server client.setServer(server, 1883); client.setCallback(callback); } //print any message received for subscribed topic void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println(); } void loop() { // put your main code here, to run repeatedly: if (!client.connected()) { reconnect(); } client.loop(); } void reconnect() { // Loop until we''re reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect, just a name to identify the client if (client.connect("arduinoClient")) { Serial.println("connected"); // Once connected, publish an announcement... client.publish("outSHADAB","hello world"); // ... and resubscribe client.subscribe("inShadab"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } }

Estoy usando ESP8266 con Arduino usando la biblioteca WiFiEsp. Quiero hacer una conexión MQTT con Arduino, así que utilizo la biblioteca PubSubclient