MQTT Client for mbed LPC1768 and Application Board over Ethernet; publish only.
Dependencies: C12832 MMA7660 MQTT
Fork of HelloMQTT by
M3 Ethernet MQTT Client
Das verwendete Programm 4xHEL_MQTT_Pub_Ethernet basiert auf dem Programm HelloMQTT, wobei Daten (message) eines Themas (topic) an einen Broker publiziert (publish) werden. Diese Daten können mit einem Desktop MQTT Client empfangen werden, indem das obige topic abonniert (subscribe) wurde.
Die Funktionen und Zeilennummern beziehen sich auf das main-Programm.
Die Funktion genRandom von Zeile 55 bis 76 dient nur zur Erzeugung einer eindeutigen client-ID, die in
Zeile 114 direkt eingegeben werden kann:
data.clientID.cstring = "mbed-clientID-xxxx"; // xxxx stellvertretend z.B. für Ihren Name oder Zufallszahl steht
In Zeile 81 wird das Topic eingestellt, dass mit dem PC MQTT Client (MQTTLens) subcsribed wird:
char* topic = "mbed/sample/Eth1";
In Zeile 95 wird der MQTT Broker eingestellt (hier: broker.hivemq.com), der durch einen anderen ersetzt werden kann:
const char* hostname = "broker.hivemq.com"; // local RPi: 172.16.63.188; broker.hivemq.com: 35.157.21.220 int port = 1883;
Die Messages werden in einer Schleife 5 Mal gepublished (Zeile 124-135):
// publish 5 messages for(int t=0; t<5; t++) { char buf[100]; sprintf(buf, "28.4.2017/16:30/21"); // published message message.qos = MQTT::QOS0; message.retained = false; message.dup = false; message.payload = (void*)buf; message.payloadlen = strlen(buf)+1; rc = client.publish(topic, message); wait(2); }
Mit sprintf weren die Werte wie beim printf in einen Puffer (char buf[100]) geschrieben, z.B.:
int temp = 21+t; sprintf(buf, "28.4.2017/16:30/%d", temp); // published message
Nach der Schleife wird das Topic unsubscribed und die Verbindung zum Brocker beendet.