Visualitzadors. Pantalles OLED vs LCD
A més del monitor sèrie, que obliga a tenir obert l'IDE, podem mostrar informació amb altres dispositius, com les pantalles:
Visualitzadors. Pantalles OLED vs LCD
A més del monitor sèrie, que obliga a tenir obert l'IDE, podem mostrar informació amb altres dispositius, com les pantalles:
Publicació de missatges MQTT
Utilitzarem un servidor MQTT públic: mqtt.eclipse.org, que utiltza el port 1883
(Altre servidor públic: broker.hivemq.com)
Publicació bàsica
Objectiu: publicar un missatge al servidor mqtt.eclipse.org
// llibreries
#include <WiFi.h>
#include <PubSubClient.h> ❶
// objectes associats a la llibreria:
WiFiClient client_wifi;
PubSubClient client_mqtt;
// dades de la xarxa WiFi:
const char* ssid = "NomDeLaXarxa";
const char* pass = "contrassenya";
// dades mqtt:
const char* Servidor = "mqtt.eclipse.org";
const int Port = 1883;
// dades de la publicació:
const char* tema = "test";
const char* missatge = "Hola des de ESP32";
void setup ( )
{
Serial.begin (115200);
WiFi.begin (ssid, pass);
connecta_WiFi ( ); ❷
client_mqtt.setServer (Servidor, Port); ❸
client_mqtt.setClient (client_wifi);
connecta_mqtt ( );
client_mqtt.publish (tema, missatge); ❹
}
void loop ( )
{
client_mqtt.loop ( ); ❺
}
void connecta_WiFi ( )
{
while (WiFi.status ( ) ! = WL_CONNECTED)
{
delay (300);
Serial.print ('.');
}
Serial.print ("Connectat!");
}
void connecta_mqtt ( )
{
while (! client_mqtt.connected ( ))
{
delay (2000);
Serial.print ('.');
client_mqtt.connect ("Carol");
}
Serial.print ("Connectat al servidor mqtt");
}
❶ A més de la llibreria WiFi, per treballar amb MQTT cal inserir als programes la llibreria PubSubClient
❷ Per simplificar, s'ha agrupat les instruccions relatives a la connexió WiFi en una funció connecta_WiFi ( )
❸ En aquesta part del programa s'associa l'objecte client_mqtt amb el servidor (dades del servidor prèviament definides) i amb el client_WiFi.
Les instruccions relatives a la connexió amb el servidor MQTT s'han definit en la funció connecta_mqtt ( ) que connecta al servidor en bucle
fins a tenir èxit.
En aquesta funció, el paràmetre de la instrucció connect pot ser qualsevol text.
❹ Un cop connectat, publica el missatge dins el tema (dades prèviament definides com a char*)
❺ La instrucció loop manté la connexió amb el servidor MQTT.