Dependencies:   LCD_i2c_GSOE ESP8266MQTT

Committer:
jack1930
Date:
Thu Oct 14 10:12:37 2021 +0000
Revision:
8:e4c15dd230d2
Parent:
7:4a93a41afa3b
F401

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