#include <WiFi.h> //libreria de wifi
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#define AIO_SERVIDOR "io.adafruit.com" //servidor adadruit
#define AIO_PUERTOSERVIDOR 1883
#define AIO_USUARIO "juliaanv"
#define AIO_KEY "aio_oAZP98XPkrRUw7qUONcNU716ja4S"
#define led1 22
#define led2 23
//credenciales de wifi
//#define wifi "Wokwi-GUEST"
//#define pass "1" //contraseña de la red
//#define canal 6 //puerto
WiFiClient client; //definicion del cliente
//conectar a adafruit
Adafruit_MQTT_Client mqtt(&client, AIO_SERVIDOR, AIO_PUERTOSERVIDOR, AIO_USUARIO, AIO_KEY);
Adafruit_MQTT_Subscribe Luz = Adafruit_MQTT_Subscribe(&mqtt, AIO_USUARIO"/feeds/interruptor");
Adafruit_MQTT_Subscribe Luzna = Adafruit_MQTT_Subscribe(&mqtt, AIO_USUARIO"/feeds/interruptorn");
void MQTT_connect ();
void setup() {
Serial.begin(9600); //inicializa el puerto serial
Serial.println("Si se conecta nos debe a todos un 5 en todas las notas"); //mensaje por pantalla
pinMode(led1, OUTPUT); //estableciendo el led
pinMode(led2, OUTPUT);
WiFi.begin("Wokwi-GUEST","", 6); //establece la conexión
while(WiFi.status() != WL_CONNECTED){
delay(100);
Serial.print("esperandooo ");
}
Serial.println("Conectado, espero el 5 en todas las notas! y si no al menos en el parcial:(");
mqtt.subscribe (&Luz);
mqtt.subscribe (&Luzna);
}
void loop() {
MQTT_connect ();
Adafruit_MQTT_Subscribe *subscription;
while ((subscription = mqtt.readSubscription(2000))){
if(subscription == &Luz){
Serial.print(F("llega el dato azul: "));
Serial.println (((char*)Luz.lastread));
int Luz_State = atoi((char*)Luz.lastread);
digitalWrite(led1, Luz_State);
}
else if(subscription == &Luzna){
Serial.print(F("llega el dato naranja: "));
Serial.println (((char*)Luzna.lastread));
int Luzna_State = atoi((char*)Luzna.lastread);
digitalWrite(led2, Luzna_State);
}
}
if((digitalRead(led1))==HIGH) {
digitalWrite(led1, 1);
}
else if((digitalRead(led1))==LOW) {
digitalWrite(led1, 0);
}
else if((digitalRead(led2))==HIGH) {
digitalWrite(led2, 1);
}
else if((digitalRead(led2))==LOW) {
digitalWrite(led2, 0);
}
}
void MQTT_connect (){
int8_t ret;
if(mqtt.connected()){
return;
}
Serial.print("Conectando a Adafruit...");
uint8_t retries = 3;
while((ret=mqtt.connect())!=0){
Serial.println(mqtt.connectErrorString(ret));
Serial.println(("Reintentando conectar a Adafruit en 5 segundos..."));
mqtt.disconnect();
delay(5000);
if(retries == 0){
while(1);
}
}
Serial.println("Adafruit conectado!");
}