#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#include <WiFi.h>
#include <MQTT.h>
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
WiFiClient net;
MQTTClient client;
void connect() {
Serial.print("checking wifi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.print("\nconnecting...");
while (!client.connect("arduino", "public", "public")) {
Serial.print(".");
delay(1000);
}
Serial.println("\nconnected!");
client.subscribe("koalawan45/led1");
client.subscribe("koalawan45/led2");
}
void messageReceived(String &topic, String &payload) {
Serial.println(topic + ": " + payload);
if(topic == "koalawan45/led1"){
if(payload == "1"){
digitalWrite(32, HIGH);
}else if(payload == "0"){
digitalWrite(32, LOW);
}
}
if(topic == "koalawan45/led2"){
if(payload == "1"){
digitalWrite(33, HIGH);
}else if(payload == "0"){
digitalWrite(33, LOW);
}
}
}
void setup ()
{
Serial.begin(115200);
// start wifi and mqtt
WiFi.begin(ssid, pass);
client.begin("public.cloud.shiftr.io", net);
client.onMessage(messageReceived);
connect();
LCD.init();
LCD.backlight();
LCD.setCursor(2, 0);
LCD.print("WORKSHOP IoT");
LCD.setCursor(2, 1);
LCD.print("NOCTURNAILED");
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(12, INPUT);
}
void loop ()
{
client.loop();
delay(10);
// check if connected
if (!client.connected()) {
connect();
}
// digitalWrite(32, HIGH);
// delay(1000);
// digitalWrite(32, LOW);
// delay(1000);
// if (digitalRead(12) == 1)
// {
// digitalWrite(33, HIGH);
// }
// else{
// digitalWrite(33, LOW);
// }
}