Dependencies:   mbed-mqtt-GSOE1

Dependents:   mqtt_Autofaehrschiff MQTT_Nucleo_dht11 mqtt_Testprogramm_FritzBox mqtt_TestprogrammWorkshop ... more

Committer:
jack1930
Date:
Tue Jun 29 10:37:44 2021 +0000
Revision:
0:a655fd59ed71
Child:
1:9fe5f14ea493
MQTT mit ESP01 und STM32 Nucleo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jack1930 0:a655fd59ed71 1 #include "PubSubClient.h"
jack1930 0:a655fd59ed71 2
jack1930 0:a655fd59ed71 3 void PubSubClient::init()
jack1930 0:a655fd59ed71 4 {
jack1930 0:a655fd59ed71 5 static TCPSocket socket1;
jack1930 0:a655fd59ed71 6 socket=&socket1;
jack1930 0:a655fd59ed71 7 static MQTTClient client1(&socket1);
jack1930 0:a655fd59ed71 8 client=&client1;
jack1930 0:a655fd59ed71 9 static ESP8266Interface esp1(MBED_CONF_APP_ESP_TX_PIN, MBED_CONF_APP_ESP_RX_PIN);
jack1930 0:a655fd59ed71 10 esp=&esp1;
jack1930 0:a655fd59ed71 11 int ret = esp->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
jack1930 0:a655fd59ed71 12
jack1930 0:a655fd59ed71 13 if(ret != 0)
jack1930 0:a655fd59ed71 14 {
jack1930 0:a655fd59ed71 15 printf("\nConnection error\n");
jack1930 0:a655fd59ed71 16 }
jack1930 0:a655fd59ed71 17 else
jack1930 0:a655fd59ed71 18 {
jack1930 0:a655fd59ed71 19 printf("\nConnection success\n");
jack1930 0:a655fd59ed71 20 }
jack1930 0:a655fd59ed71 21 esp->get_ip_address(&deviceIP);
jack1930 0:a655fd59ed71 22 printf("IP via DHCP: %s\n", deviceIP.get_ip_address());
jack1930 0:a655fd59ed71 23
jack1930 0:a655fd59ed71 24 // Use with IP
jack1930 0:a655fd59ed71 25 //SocketAddress MQTTBroker(MBED_CONF_APP_MQTT_BROKER_IP, MBED_CONF_APP_MQTT_BROKER_PORT);
jack1930 0:a655fd59ed71 26
jack1930 0:a655fd59ed71 27 // Use with DNS
jack1930 0:a655fd59ed71 28 esp->gethostbyname(MBED_CONF_APP_MQTT_BROKER_HOSTNAME, &MQTTBroker);
jack1930 0:a655fd59ed71 29
jack1930 0:a655fd59ed71 30 printf("\nMQTTBroker %s\n",MQTTBroker.get_ip_address());
jack1930 0:a655fd59ed71 31 MQTTBroker.set_port(MBED_CONF_APP_MQTT_BROKER_PORT);
jack1930 0:a655fd59ed71 32
jack1930 0:a655fd59ed71 33 msg.qos = MQTT::QOS0;
jack1930 0:a655fd59ed71 34 msg.retained = false;
jack1930 0:a655fd59ed71 35 msg.dup = false;
jack1930 0:a655fd59ed71 36
jack1930 0:a655fd59ed71 37 printf("\n socket open: %d\n",socket->open(esp));
jack1930 0:a655fd59ed71 38 printf("\n socket connect: %d\n",socket->connect(MQTTBroker));
jack1930 0:a655fd59ed71 39 }
jack1930 0:a655fd59ed71 40
jack1930 0:a655fd59ed71 41 PubSubClient::PubSubClient()
jack1930 0:a655fd59ed71 42 {
jack1930 0:a655fd59ed71 43 init();
jack1930 0:a655fd59ed71 44 }
jack1930 0:a655fd59ed71 45
jack1930 0:a655fd59ed71 46 bool PubSubClient::connect(char* clientName)
jack1930 0:a655fd59ed71 47 {
jack1930 0:a655fd59ed71 48 int ret=0;
jack1930 0:a655fd59ed71 49 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
jack1930 0:a655fd59ed71 50
jack1930 0:a655fd59ed71 51 data.MQTTVersion = 3;
jack1930 0:a655fd59ed71 52 char *id = clientName;//MBED_CONF_APP_MQTT_ID;
jack1930 0:a655fd59ed71 53
jack1930 0:a655fd59ed71 54 data.clientID.cstring=id;
jack1930 0:a655fd59ed71 55
jack1930 0:a655fd59ed71 56 printf("\n ID=%s\n",clientName);
jack1930 0:a655fd59ed71 57
jack1930 0:a655fd59ed71 58 ret=client->connect(data);
jack1930 0:a655fd59ed71 59 printf("\n client connect: %d\n",ret);
jack1930 0:a655fd59ed71 60
jack1930 0:a655fd59ed71 61 return ret==0;
jack1930 0:a655fd59ed71 62 }
jack1930 0:a655fd59ed71 63
jack1930 0:a655fd59ed71 64 int PubSubClient::publish(const char* topic, const char* buf)
jack1930 0:a655fd59ed71 65 {
jack1930 0:a655fd59ed71 66 msg.payload = (void*)buf;
jack1930 0:a655fd59ed71 67 msg.payloadlen = strlen(buf);
jack1930 0:a655fd59ed71 68 int ret=client->publish(topic, msg);
jack1930 0:a655fd59ed71 69 return ret;
jack1930 0:a655fd59ed71 70 }