#include <WiFi.h>
#include "PubSubClient.h"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqttServer = "mqtt.netpie.io";
const int mqtt_port = 1883;
const char* mqtt_Client = "23f9293e-cc78-4f9f-9306-9745cc71c8fb"; //Client ID
const char* mqtt_username = "eWfcMX8FYXJtphYQZYVV7ZzdDzbCGsgw"; //Token
const char* mqtt_password = "yf5$o(SDqKQsJ#BVtq$#KnHT*rmx7m_z"; //Secret
WiFiClient espClient;
PubSubClient client(espClient);
int ldr = 2;
long lastMsg = 0;
int num;
void setup()
{
Serial.begin(9600);
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
wifiConnect();
Serial.println("");
Serial.println("WiFi connected");
client.setServer(mqttServer, mqtt_port);
client.setCallback(callback);
}
void wifiConnect()
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
}
void mqttReconnect()
{
while (!client.connected())
{
if (client.connect(mqtt_Client, mqtt_username, mqtt_password))
client.subscribe("@msg/#");
else
delay(5000);
}
}
void callback(char* topic, byte* payload, unsigned int length)
{
String message;
for (int i = 0; i < length; i++)
message = message + (char)payload[i];
}
void loop()
{
delay(10);
if (!client.connected())
{
mqttReconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > 1000)
{
lastMsg = now;
num = digitalRead(ldr);
Serial.println(num);
if (num == 1)
{
client.publish("@msg/ldr","dark");
}
else //num == 0
{
client.publish("@msg/ldr","light");
}
}
}