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

Dependencies:   C12832 MMA7660 MQTT

Fork of HelloMQTT by MQTT

You are viewing an older revision! See the latest version

ThingSpeak Programmänderungen

Home

Nachdem Sie auf ThingSpeak einen Account eingerichtet und einen Channel mit Channel -> New Channel erzeugt haben und z.B. in Field 1 die Temperatur und in Field 2 die Luftfeuchtigkeit eingetragen haben, können Sie schon mit einem Desktop MQTT Client Messages auf mqtt.thingspeak.com publishen. Sie auch Beschreibung des MQTT API.

Auf dieser Seite gehe ich von folgenden Daten aus, die Sie im Programm entsprechend Ihren ThingSpeak- Daten anpassen müssen:

  • Channel ID: 197888
  • Write API Key: K8HEJ5N112EZO888

Die Funktionen und Zeilennummern beziehen sich auf das main-Programm.

In Zeile 81 wird das Topic eingestellt auf (siehe hier):

channels/ + channelID + /publish/ + apiKey

    char* topic = "channels/197888/publish/K8HEJ5N112EZO888";

In Zeile 95 wird der ThingSpeak-Broker mqtt.thingspeak.com eingestellt:

    const char* hostname = "mqtt.thingspeak.com";     // an Stelle von: broker.hivemq.com
    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"); // hier die Änderung siehe unten
        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 werden die Werte wie beim printf in einen Puffer (char buf[100]) geschrieben, z.B.:

        int temp = 21+t;
        int hum = 50 + 4*t;
        sprintf(buf, "field1=%d&field2=%d", temp, hum); // published message

Außerdem ist der Wartezyklus zwischen den Nachrichten bei ThingSpeak mindestens 15 Sekunden, sodass die Wartezeit in Zeile 136 auf 15 geändert werden muss:

        rc = client.publish(topic, message);
        wait(15);
    }

Nach der Schleife wird das Topic unsubscribed und die Verbindung zum Brocker beendet.


All wikipages