Subscribe
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h> // Impostazioni di rete
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192,168,1,100);
EthernetClient ethClient;
PubSubClient client(ethClient); // Dichiarazione della callback
void callback(char* topic, byte* payload, unsigned int length)
{
Serial.print("Messaggio ricevuto su [");
Serial.print(topic);
Serial.print("]: ");
for (int i = 0; i < length; i++)
{
Serial.print((char)payload[i]);
}
Serial.println();
}
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac);
delay(1000);
client.setServer(server, 1883);
client.setCallback(callback);
while (!client.connected())
{
Serial.println("Connessione al broker MQTT...");
if (client.connect("arduino_client"))
{
Serial.println("Connesso al broker MQTT");
client.subscribe("arduino/test");
}
else
{
Serial.print("Fallito, codice errore: ");
Serial.println(client.state());
delay(5000);
}
}
}
void loop()
{
client.loop();
}
Publish
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h> // Impostazioni di rete
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192,168,1,100);
EthernetClient ethClient;
PubSubClient client(ethClient);
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac);
delay(1000);
client.setServer(server, 1883);
while (!client.connected())
{
Serial.println("Connessione al broker MQTT...");
if (client.connect("arduino_client"))
{
Serial.println("Connesso al broker MQTT");
}
else
{
Serial.print("Fallito, codice errore: ");
Serial.println(client.state());
delay(5000);
}
}
}
void loop()
{ // Esempio di pubblicazione di un messaggio sul topic "arduino/test"
client.publish("arduino/test", "Hello World!");
delay(5000);
}