#include <WiFi.h>
//LIBRERIAS PARA CONECTAR A ADAFRUIT
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
//CREDENCIALES PARA LA CONEXION A ADAFRUIT
#define AIO_SERVIDOR "io.adafruit.com"
#define AIO_PUERTOSERVIDOR 1883
#define AIO_USUARIO "SantiVR"
#define AIO_KEY "aio_YCvM15owYVLqWlCXHCW6ukoUPzWr"
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVIDOR, AIO_PUERTOSERVIDOR, AIO_USUARIO, AIO_KEY);
Adafruit_MQTT_Subscribe Luz = Adafruit_MQTT_Subscribe(&mqtt, AIO_USUARIO"/feeds/boton");
void MQTT_connet();
void setup() {
Serial.begin(9600);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
pinMode(LED_BUILTIN, OUTPUT);
mqtt.subscribe(&Luz);
}
void loop() {
MQTT_connect();
Adafruit_MQTT_Subscribe*subscription;
while(subscription=mqtt.readSubscription(2000)){
if(subscription==&Luz)
Serial.print(F("llega el dato"));
Serial.println((char*)Luz.lastread);
int Luz_State = atoi((char*)Luz.lastread);
digitalWrite(LED_BUILTIN, Luz_State);
}
}
void MQTT_connect(){
int8_t ret;
if(mqtt.connected()){
return;
}
Serial.print("Conectando a MQTT...");
uint8_t retries = 3;
while((ret=mqtt.connect())!=0){
Serial.println(mqtt.connectErrorString(ret));
Serial.println("Resintentando conectar en 5 segundos...");
mqtt.disconnect();
delay(5000);
if(retries==0){
while(1); //llamar while otra vez
}
}
Serial.println("MQTT Conectado!");
}