Hi
my arduino client can't connect to the public broker test.mosquitto.com.
The Serial Monitor output: Connecting to MQTT... failed state : -2
Here is the code, where is the problem?I don't find it :
#include <PubSubClient.h>
#include <Ethernet.h>
#include <SPI.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x01};
const char* mqttServer = "test.mosquitto.com";
const int mqttPort = 1883;
//const char* mqttUser = "YourMQTTUsername";
//const char* mqttPassword = "YourMQTTPassword";
EthernetClient ethClient;
PubSubClient mqttClient(ethClient);
void setup_Ethernet(){
// start the Ethernet connection:
Serial.println("Initialize Ethernet with DHCP:");
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
} else if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
}
//delay to let Etnernet shield initialize
delay(1000);
}
//connection succesful
Serial.println("Connection Successful");
Serial.println("--------------------");
}
void callback(char* topic, byte* payload, unsigned int length)
{
Serial.print("Messageved in topic: ");
Serial.println(topic);
Serial.print("Message :");
for(int i = 0; i < length; i++) {
Serial.print((char)payload*);*
- }*
- Serial.println();*
}
void setup() { - Serial.begin(9600);*
- setup_Ethernet();*
- mqttClient.setServer(mqttServer,mqttPort);*
- mqttClient.setCallback(callback);*
- while(!mqttClient.connected()) {*
- Serial.println("Connecting to MQTT...");*
- if (mqttClient.connect("arduinoClient")) {*
- Serial.println("connected");*
- }else{*
- Serial.print("failed state : ");*
- Serial.println(mqttClient.state());*
- delay(2000);*
- }*
- }*
- mqttClient.publish("test/arduino","Hello Arduino world");*
- mqttClient.subscribe("test/arduino");*
}
void loop()
{ - mqttClient.loop();*
}