 #include <SPI.h>
 #include <Ethernet.h>
 
-IPAddress server(192, 168, 0, 108);
+//IPAddress ip(10, 60, 20, 15);
+//IPAddress server("m13.cloudmqtt.com");
+char server[] = "m13.cloudmqtt.com";
 EthernetClient ethClient;
 
 // Endereco MAC da shield ethernet
 byte mac[] = {
-  0x64, 0x1c, 0x67, 0x79, 0xc5, 0xb3
+  0xf8, 0xb1, 0x56, 0xfc, 0x4c, 0xc4
 };
 
 
 // Configurações da comunicação com mosquitto
 #include <PubSubClient.h>
 
-#define PORTA_MQTT 1883
+#define PORTA_MQTT 18768
+#define USUARIO_MQTT "mdzjtvif"
+#define SENHA_MQTT "snX5gG5TJs8P"
+char MENSAGEM_BROKER[100];
+//#define PORTA_MQTT 1883
 
-PubSubClient client(ethClient);
+void callback(char* topic, byte* payload, unsigned int length);
+
+PubSubClient client(server, PORTA_MQTT, callback, ethClient);
+void callback(char* topic, byte* payload, unsigned int length) {
+  int i = 0;
+  Serial.println("Menssagem recebida:  " + String(topic));
+
+  for(i=0; i<length; i++)
+  {
+    MENSAGEM_BROKER[i] = payload[i];
+  }
+  MENSAGEM_BROKER[i] = '\0';
+  String msgString = String(MENSAGEM_BROKER);
+
+  Serial.println("Payload: " + msgString);
+}
 
 
 // Configurações da funcionalidade 01 - Acionamento automático do ar condicionado


  conectar_ethernet();

  conectar_mosquitto();

  // Setup da funcionalidade 01
  setup_ar();
}

void loop() {
  ler_temperatura();
  Narcoleptic.delay(1000);
}

// Métodos auxiliares

void conectar_mosquitto() {
//  client.setServer(server, PORTA_MQTT);

  while (!client.connected()) {
    Serial.print("Conectando com mosquitto broker...");
    if (client.connect("casa", "mdzjtvif", "snX5gG5TJs8P")) {
//    if (client.connect("casa")) {
      Serial.println(" conectado!");
    } else {
      Serial.print("falha, rc=");
      Serial.println(client.state());
    }
    delay(TEMPO_NOVA_TENTATIVA);
  }
}

