Blink Led using MQTT in arduino
<p>I have to implement a prototyping scenario that blink LED in the arduino with MQTT protocol. I already tried with several MQTT libraries but non of them not work perfectly. Connection to the MQTT broker working successfully but when I publish the message with topic which I set in arduino not blink the LED. Arduno have to publish a message when it successfully connect but this publishing part also not working </p>

<p>this is my code </p>

<pre><code>    #include &lt;SPI.h&gt;
#include &lt;Ethernet.h&gt;
#include &lt;PubSubClient.h&gt;

// Set the MAC address
byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 100);
IPAddress server(192, 168, 1, 20);

// Set what PINs our Led's are connected to
int redPin = 13;                
//int greenPin = 6;
//int bluePin = 7;

// Set a generic code that will trigger our Blue Led
// think of this as a set of codes for automation you might write
byte triggerRed[13] = "12345";

// handles messages that are returned from the broker on our subscribed channel
void callback(char* topic, byte* payload, unsigned int length) {

  Serial.print("New message from broker on topic:");
  Serial.println(topic);

  Serial.print("Payload:");
  Serial.write(payload, length);



  // Check and see if our payload matches our simple trigger test
  if ((length == 5) &amp; (memcmp(payload, triggerRed, 5) == 0) )
  {
    //blink(redPin);

  }

}
EthernetClient ethClient;
PubSubClient client(ethClient);
// Fire up our PubSub client
//PubSubClient client(server, 1883, callback);

void setup()
{

  // Open serial communications
  Serial.begin(9600);

  client.setServer(server, 1883);
  client.setCallback(callback);

  // Setup our Leds
  pinMode(redPin, OUTPUT);
 // pinMode(greenPin, OUTPUT);
 // pinMode(bluePin, OUTPUT);

  // attempt a DHCP connection
  Serial.println("Attempting to get an IP address using DHCP:");
  if (!Ethernet.begin(mac)) 
  {
    // if DHCP fails, start with a hard-coded address:
    Serial.println("failed to get an IP address using DHCP, trying manually");
    Ethernet.begin(mac, ip);
  }

  Serial.print("My address:");
  Serial.println(Ethernet.localIP());

  // Connect to Broker, give it arduino as the name
  if (client.connect("arduino")) {

    // Good, we connected turn on the red led
    digitalWrite(redPin, HIGH);

    // Publish a message to the status topic
    client.publish("status","Arduino is now online");

    // Listen for messages on the control topic
    client.subscribe("ultra");
  }

}

void loop()
{
  client.loop();
}

// Anything with flashing lights.
void blink(int targetLed) 
{
  digitalWrite(redPin, HIGH);

}
</code></pre>

<p>how can I fix this ?</p>