//http://hivemq.com/demos/websocket-client/
#include <WiFi.h>
#include <PubSubClient.h>
WiFiClient WIFI_CLIENT;
PubSubClient MQTT_CLIENT(WIFI_CLIENT); // uprava
long buducnost = 0;
void callback(char* topic, byte* payload, unsigned int length) // nove
{
Serial.print("Prijata sprava: ");
for (int i = 0; i < length; i++)
{
Serial.print((char)payload[i]);
}
Serial.println();
}
void reconnect() // uprava
{
while (!MQTT_CLIENT.connected())
{
Serial.println("Pripajanie sa ku MQTT brokeru...");
if (MQTT_CLIENT.connect("UCITEL"))
{
Serial.println("pripojene...");
MQTT_CLIENT.subscribe("SPSKNM/TOPIC");
}
else
{
Serial.print("nepripojene (3sek)...");
delay(3000);
}
}
}
void setup()
{
WiFi.mode(WIFI_STA); // nove
Serial.begin(9600);
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED)
{
delay(250);
Serial.print(".");
}
Serial.print("WIFI uspesne pripojena: ");
Serial.println(WiFi.localIP());
MQTT_CLIENT.setServer("broker.hivemq.com", 1883); // uprava
MQTT_CLIENT.setCallback(callback); // nove
}
void loop()
{
if (!MQTT_CLIENT.connected())
reconnect();
MQTT_CLIENT.loop(); // snaha o co najcastejsie volanie obsluhy MQTT
if (millis() > buducnost) // nesmie sa pouzit velky delay
{
char udaj[3];
String( random(20,31) ).toCharArray(udaj,3);
MQTT_CLIENT.publish("SPSKNM/TOPIC", udaj);
buducnost = millis() + 3000;
}
}