Dependencies:   mbed-mqtt-GSOE1

Dependents:   mqtt_Autofaehrschiff MQTT_Nucleo_dht11 mqtt_Testprogramm_FritzBox mqtt_TestprogrammWorkshop ... more

Committer:
jack1930
Date:
Tue Jul 06 11:58:29 2021 +0000
Revision:
1:9fe5f14ea493
Parent:
0:a655fd59ed71
Child:
2:08ce999855c3
RST + CH_PD ohne Bruecken

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