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 /* 00018 //Beschreibung von Message und MessageData 00019 struct Message 00020 { 00021 enum QoS qos; 00022 bool retained; 00023 bool dup; 00024 unsigned short id; 00025 void *payload; 00026 size_t payloadlen; 00027 }; 00028 00029 //MessageData beinhaltet Message und Topicname 00030 struct MessageData 00031 { 00032 MessageData(MQTTString &aTopicName, struct Message &aMessage) : message(aMessage), topicName(aTopicName) 00033 { } 00034 00035 struct Message &message; 00036 MQTTString &topicName; 00037 }; 00038 */ 00039 00040 //Subscribe-Callbacks 00041 void subscribeCallback(MessageData& mymessage) 00042 { 00043 mylcd.cursorpos(0); 00044 //Der Inhalt einer Botschaft (payload) kann als String mit gibPayload 00045 //abgerufen werden 00046 mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); 00047 } 00048 00049 void subscribeCallback2(MessageData& mymessage) 00050 { 00051 mylcd.cursorpos(0x40); 00052 mylcd.printf("%s ",client.gibPayload(mymessage).c_str()); 00053 } 00054 00055 00056 //test.mosquitto.org 5.196.95.208 00057 int main() 00058 { 00059 diag=1; 00060 int d; 00061 char buffer[64]; 00062 mylcd.clear(); 00063 client.connect((char*)"joerg"); //Verbinde Client mit ID 00064 //Client für topic einschreiben 00065 client.subscribe("MBED/oehringen/ersteTests", QOS0, subscribeCallback); 00066 client.subscribe("MBED/oehringen/zweiteTests", QOS0, subscribeCallback2); 00067 while(true) 00068 { 00069 client.loop(); //Auf neue Botschaften prüfen 00070 diag=diag+1; //Zähler auf PortC 00071 d=diag; //Zählerstand speichern 00072 //Poti veröffentlichen 00073 sprintf(buffer, "poti=%d", (int)(poti*4095)); //Potiwert in buffer speichern 00074 client.publish("MBED/oehringen/ersteTests", buffer); //unter Topic veröffentlichen 00075 //diag veröffentlichen 00076 sprintf(buffer, "diag=%d", d); //diag in buffer speichern 00077 client.publish("MBED/oehringen/zweiteTests", buffer); //unter Topic veröffentlichen 00078 } 00079 } 00080 00081 00082 00083
Generated on Thu Jul 21 2022 07:40:13 by
1.7.2