MQTT Client for mbed LPC1768 and Application Board over Ethernet; publish only.

Dependencies:   C12832 MMA7660 MQTT

Fork of HelloMQTT by MQTT

M3 Ethernet MQTT Client

Home

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.


All wikipages