Testprogramm MQTT ESP01 und Nucleo-F401-RE
Dependencies: LCD_i2c_GSOE ESP8266MQTT
Diff: main.cpp
- Revision:
- 7:4a93a41afa3b
- Parent:
- 6:5f6c4afcd8ca
--- a/main.cpp Tue Jul 13 06:15:08 2021 +0000 +++ b/main.cpp Tue Jul 27 09:29:56 2021 +0000 @@ -1,6 +1,6 @@ #include "mbed.h" -#include "PubSubClient.h" -#include "LCD.h" +#include "PubSubClient.h" //MQTT- Bibliothek +#include "LCD.h" //LCD-Display-Bibliothek /* "wifi-ssid": { "help": "WiFi SSID", @@ -17,13 +17,14 @@ "value": "\"test.mosquitto.org\"" }, */ -PortOut diag(PortC,0xFF); -AnalogIn poti(PA_0); -lcd mylcd; +PortOut diag(PortC,0xFF); //Testausgabe für Binärzähler +AnalogIn poti(PA_0); //Testsensor Analogeingang Drehknopf +lcd mylcd; //LCD-Display -PubSubClient client; +PubSubClient client; //Deklaration des MQTT-Clients /* +//Beschreibung von Message und MessageData struct Message { enum QoS qos; @@ -34,7 +35,7 @@ size_t payloadlen; }; - +//MessageData beinhaltet Message und Topicname struct MessageData { MessageData(MQTTString &aTopicName, struct Message &aMessage) : message(aMessage), topicName(aTopicName) @@ -45,15 +46,17 @@ }; */ +//Subscribe-Callbacks void subscribeCallback(MessageData& mymessage) { mylcd.cursorpos(0); + //Der Inhalt einer Botschaft (payload) kann als String mit gibPayload + //abgerufen werden mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); } void subscribeCallback2(MessageData& mymessage) { - mylcd.cursorpos(0x40); mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); } @@ -66,19 +69,22 @@ int d; char buffer[64]; mylcd.clear(); - client.connect((char*)"joerg"); + client.connect((char*)"joerg"); //Verbinde Client mit ID + //Client für topic einschreiben client.subscribe("MBED/joerg/ersteTests", QOS0, subscribeCallback); - //client.subscribe("MBED/joerg/zweiteTests", QOS0, subscribeCallback2); + client.subscribe("MBED/joerg/zweiteTests", QOS0, subscribeCallback2); while(true) { - client.loop(); - diag=diag+1; - d=diag; - sprintf(buffer, "poti=%d", (int)(poti*4095)); - client.publish("MBED/joerg/ersteTests", buffer); - HAL_Delay(200); - //sprintf(buffer, "diag=%d", d); - //client.publish("MBED/joerg/zweiteTests", buffer); + client.loop(); //Auf neue Botschaften prüfen + diag=diag+1; //Zähler auf PortC + d=diag; //Zählerstand speichern + //Poti veröffentlichen + sprintf(buffer, "poti=%d", (int)(poti*4095)); //Potiwert in buffer speichern + client.publish("MBED/joerg/ersteTests", buffer); //unter Topic veröffentlichen + //HAL_Delay(200); + //diag veröffentlichen + sprintf(buffer, "diag=%d", d); //diag in buffer speichern + client.publish("MBED/joerg/zweiteTests", buffer); //unter Topic veröffentlichen //HAL_Delay(200); } }