Dependencies: LCD_i2c_GSOE ESP8266MQTT
main.cpp@8:e4c15dd230d2, 2021-10-14 (annotated)
- Committer:
- jack1930
- Date:
- Thu Oct 14 10:12:37 2021 +0000
- Revision:
- 8:e4c15dd230d2
- Parent:
- 7:4a93a41afa3b
F401
Who changed what in which revision?
User | Revision | Line number | New 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 |