Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: LCD_i2c_GSOE ESP8266MQTT
main.cpp
00001 #include "mbed.h" 00002 #include "PubSubClient.h" //MQTT- Bibliothek 00003 #include "LCD.h" //LCD-Display-Bibliothek 00004 00005 /* 00006 "mqtt-broker-hostname": { 00007 "help": "MQTT Broker resolvable hostname.", 00008 "value": "\"test.mosquitto.org\"" 00009 }, 00010 */ 00011 PortOut diag(PortC,0xFF); //Testausgabe für Binärzähler 00012 AnalogIn poti(PA_0); //Testsensor Analogeingang Drehknopf 00013 lcd mylcd; //LCD-Display 00014 00015 PubSubClient client; //Deklaration des MQTT-Clients 00016 00017 Thread thread; 00018 /* 00019 //Beschreibung von Message und MessageData 00020 struct Message 00021 { 00022 enum QoS qos; 00023 bool retained; 00024 bool dup; 00025 unsigned short id; 00026 void *payload; 00027 size_t payloadlen; 00028 }; 00029 00030 //MessageData beinhaltet Message und Topicname 00031 struct MessageData 00032 { 00033 MessageData(MQTTString &aTopicName, struct Message &aMessage) : message(aMessage), topicName(aTopicName) 00034 { } 00035 00036 struct Message &message; 00037 MQTTString &topicName; 00038 }; 00039 */ 00040 00041 //Subscribe-Callbacks 00042 void subscribeCallback(MessageData& mymessage) 00043 { 00044 mylcd.cursorpos(0); 00045 //Der Inhalt einer Botschaft (payload) kann als String mit gibPayload 00046 //abgerufen werden 00047 mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); 00048 } 00049 00050 void subscribeCallback2(MessageData& mymessage) 00051 { 00052 mylcd.cursorpos(0x40); 00053 mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); 00054 } 00055 00056 void mqtt(void) 00057 { 00058 char buffer[64]; 00059 int d; 00060 while(true) 00061 { 00062 client.loop(); //Auf neue Botschaften prüfen 00063 d=diag; //Zählerstand speichern 00064 //Poti veröffentlichen 00065 sprintf(buffer, "poti=%d", (int)(poti*4095)); //Potiwert in buffer speichern 00066 client.publish("MBED/oehringen/ersteTests", buffer,QOS1); //unter Topic veröffentlichen 00067 //diag veröffentlichen 00068 sprintf(buffer, "diag=%d", d); //diag in buffer speichern 00069 client.publish("MBED/oehringen/zweiteTests", buffer,QOS2); //unter Topic veröffentlichen 00070 } 00071 } 00072 00073 00074 //test.mosquitto.org 5.196.95.208 00075 int main() 00076 { 00077 diag=1; 00078 00079 mylcd.clear(); 00080 client.connect((char*)"joerg"); //Verbinde Client mit ID 00081 //Client für topic einschreiben 00082 client.subscribe("MBED/oehringen/ersteTests", QOS0, subscribeCallback); 00083 client.subscribe("MBED/oehringen/zweiteTests", QOS0, subscribeCallback2); 00084 thread.start(mqtt); 00085 while(true) 00086 { 00087 diag=diag+1; //Zähler auf PortC 00088 ThisThread::sleep_for(500); 00089 00090 } 00091 } 00092 00093 00094 00095
Generated on Wed Jul 13 2022 10:34:22 by
1.7.2