MQTT mit ESP-01 und STM32 Testprogramm mit eigenem Thread für MQTT

Dependencies:   LCD_i2c_GSOE ESP8266MQTT

Committer:
jack1930
Date:
Thu Aug 19 11:41:39 2021 +0000
Revision:
10:fcb75a994c37
Parent:
9:6c0ee64da99a
Child:
11:2e571ffc2f22
ohne QOS2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
petripakkanen 0:0046df9d5380 1 #include "mbed.h"
jack1930 7:4a93a41afa3b 2 #include "PubSubClient.h" //MQTT- Bibliothek
jack1930 7:4a93a41afa3b 3 #include "LCD.h" //LCD-Display-Bibliothek
jack1930 8:080aa372ff1f 4
jack1930 6:5f6c4afcd8ca 5 /*
jack1930 6:5f6c4afcd8ca 6 "mqtt-broker-hostname": {
jack1930 6:5f6c4afcd8ca 7 "help": "MQTT Broker resolvable hostname.",
jack1930 6:5f6c4afcd8ca 8 "value": "\"test.mosquitto.org\""
jack1930 6:5f6c4afcd8ca 9 },
jack1930 6:5f6c4afcd8ca 10 */
jack1930 7:4a93a41afa3b 11 PortOut diag(PortC,0xFF); //Testausgabe für Binärzähler
jack1930 7:4a93a41afa3b 12 AnalogIn poti(PA_0); //Testsensor Analogeingang Drehknopf
jack1930 7:4a93a41afa3b 13 lcd mylcd; //LCD-Display
jack1930 2:40091707a95c 14
jack1930 7:4a93a41afa3b 15 PubSubClient client; //Deklaration des MQTT-Clients
petripakkanen 0:0046df9d5380 16
jack1930 6:5f6c4afcd8ca 17 /*
jack1930 7:4a93a41afa3b 18 //Beschreibung von Message und MessageData
jack1930 6:5f6c4afcd8ca 19 struct Message
jack1930 6:5f6c4afcd8ca 20 {
jack1930 6:5f6c4afcd8ca 21 enum QoS qos;
jack1930 6:5f6c4afcd8ca 22 bool retained;
jack1930 6:5f6c4afcd8ca 23 bool dup;
jack1930 6:5f6c4afcd8ca 24 unsigned short id;
jack1930 6:5f6c4afcd8ca 25 void *payload;
jack1930 6:5f6c4afcd8ca 26 size_t payloadlen;
jack1930 6:5f6c4afcd8ca 27 };
jack1930 6:5f6c4afcd8ca 28
jack1930 7:4a93a41afa3b 29 //MessageData beinhaltet Message und Topicname
jack1930 6:5f6c4afcd8ca 30 struct MessageData
jack1930 6:5f6c4afcd8ca 31 {
jack1930 6:5f6c4afcd8ca 32 MessageData(MQTTString &aTopicName, struct Message &aMessage) : message(aMessage), topicName(aTopicName)
jack1930 6:5f6c4afcd8ca 33 { }
jack1930 6:5f6c4afcd8ca 34
jack1930 6:5f6c4afcd8ca 35 struct Message &message;
jack1930 6:5f6c4afcd8ca 36 MQTTString &topicName;
jack1930 6:5f6c4afcd8ca 37 };
jack1930 6:5f6c4afcd8ca 38 */
jack1930 6:5f6c4afcd8ca 39
jack1930 7:4a93a41afa3b 40 //Subscribe-Callbacks
jack1930 5:fb5a02cfb826 41 void subscribeCallback(MessageData& mymessage)
jack1930 5:fb5a02cfb826 42 {
jack1930 5:fb5a02cfb826 43 mylcd.cursorpos(0);
jack1930 7:4a93a41afa3b 44 //Der Inhalt einer Botschaft (payload) kann als String mit gibPayload
jack1930 7:4a93a41afa3b 45 //abgerufen werden
jack1930 6:5f6c4afcd8ca 46 mylcd.printf("%s ",client.gibPayload(mymessage).c_str());
jack1930 5:fb5a02cfb826 47 }
jack1930 5:fb5a02cfb826 48
jack1930 6:5f6c4afcd8ca 49 void subscribeCallback2(MessageData& mymessage)
jack1930 5:fb5a02cfb826 50 {
jack1930 6:5f6c4afcd8ca 51 mylcd.cursorpos(0x40);
jack1930 6:5f6c4afcd8ca 52 mylcd.printf("%s ",client.gibPayload(mymessage).c_str());
jack1930 5:fb5a02cfb826 53 }
jack1930 5:fb5a02cfb826 54
jack1930 6:5f6c4afcd8ca 55
jack1930 5:fb5a02cfb826 56 //test.mosquitto.org 5.196.95.208
petripakkanen 0:0046df9d5380 57 int main()
petripakkanen 0:0046df9d5380 58 {
jack1930 2:40091707a95c 59 diag=1;
jack1930 2:40091707a95c 60 int d;
jack1930 2:40091707a95c 61 char buffer[64];
jack1930 5:fb5a02cfb826 62 mylcd.clear();
jack1930 7:4a93a41afa3b 63 client.connect((char*)"joerg"); //Verbinde Client mit ID
jack1930 7:4a93a41afa3b 64 //Client für topic einschreiben
jack1930 9:6c0ee64da99a 65 client.subscribe("MBED/oehringen/ersteTests", QOS0, subscribeCallback);
jack1930 9:6c0ee64da99a 66 client.subscribe("MBED/oehringen/zweiteTests", QOS0, subscribeCallback2);
jack1930 2:40091707a95c 67 while(true)
petripakkanen 1:f6ebd1725aae 68 {
jack1930 7:4a93a41afa3b 69 client.loop(); //Auf neue Botschaften prüfen
jack1930 7:4a93a41afa3b 70 diag=diag+1; //Zähler auf PortC
jack1930 7:4a93a41afa3b 71 d=diag; //Zählerstand speichern
jack1930 7:4a93a41afa3b 72 //Poti veröffentlichen
jack1930 7:4a93a41afa3b 73 sprintf(buffer, "poti=%d", (int)(poti*4095)); //Potiwert in buffer speichern
jack1930 9:6c0ee64da99a 74 client.publish("MBED/oehringen/ersteTests", buffer); //unter Topic veröffentlichen
jack1930 7:4a93a41afa3b 75 //diag veröffentlichen
jack1930 7:4a93a41afa3b 76 sprintf(buffer, "diag=%d", d); //diag in buffer speichern
jack1930 10:fcb75a994c37 77 client.publish("MBED/oehringen/zweiteTests", buffer); //unter Topic veröffentlichen
petripakkanen 0:0046df9d5380 78 }
petripakkanen 0:0046df9d5380 79 }
petripakkanen 1:f6ebd1725aae 80
petripakkanen 1:f6ebd1725aae 81
jack1930 6:5f6c4afcd8ca 82
jack1930 6:5f6c4afcd8ca 83