Nenad Jovicic
/
PMK2021_MQTT_ETHERNET_SERVER
Ethernet mqtt server
PMK2021_MQTT_ETHERNET_SERVER
main.cpp
- Committer:
- nenad
- Date:
- 2021-05-07
- Revision:
- 4:5b78021768e2
- Parent:
- 1:276a09a95334
File content as of revision 4:5b78021768e2:
#include "mbed.h" #include "EthernetInterface.h" #include "platform/mbed_thread.h" #include <MQTTClientMbedOs.h> // Blinking rate in milliseconds #define BLINKING_RATE_MS 500 DigitalOut led(LED1); int arrivedcount = 0; TCPSocket socket; MQTTClient client(&socket); MQTT::Message message; char* topic_pub = "PMK-server-topic-pub"; char* topic_sub = "PMK-client-temperature"; const char *sec2str(nsapi_security_t sec) { switch (sec) { case NSAPI_SECURITY_NONE: return "None"; case NSAPI_SECURITY_WEP: return "WEP"; case NSAPI_SECURITY_WPA: return "WPA"; case NSAPI_SECURITY_WPA2: return "WPA2"; case NSAPI_SECURITY_WPA_WPA2: return "WPA/WPA2"; case NSAPI_SECURITY_UNKNOWN: default: return "Unknown"; } } void messageArrived(MQTT::MessageData& md) { MQTT::Message &message = md.message; printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id); printf("Payload %.*s\r\n", message.payloadlen, (char*)message.payload); ++arrivedcount; } int main() { printf("PMK2021 Ethernet MQTT example\r\n"); const char* hostname = "broker.mqttdashboard.com"; int port = 1883; // Network interface EthernetInterface net; // Bring up the ethernet interface net.connect(); // Show the network address const char *ip = net.get_ip_address(); printf("IP address is: %s\r\n", ip ? ip : "No IP"); //client = MQTTClient::(&socket); socket.open(&net); socket.connect(hostname, port); int rc=0; MQTTPacket_connectData data = MQTTPacket_connectData_initializer; data.MQTTVersion = 3; data.clientID.cstring = "PMK-server"; //data.username.cstring = "testuser"; //data.password.cstring = "testpassword"; if ((rc = client.connect(data)) != 0) printf("rc from MQTT connect is %d\r\n", rc); if ((rc = client.subscribe(topic_sub, MQTT::QOS2, messageArrived)) != 0) printf("rc from MQTT subscribe is %d\r\n", rc); while (true) { led = !led; thread_sleep_for(BLINKING_RATE_MS); printf("Server Yielding "); client.yield(1000); printf(" -> Yielded\r\n"); } }