#include #include #include #include "secrets.h" MKRIoTCarrier carrier; WiFiSSLClient wifi_client; MqttClient mqtt_client(wifi_client); extern const char *wifi_ssid; extern const char *wifi_password; extern const char *mqtt_server; extern const char *mqtt_username; extern const char *mqtt_password; void setup(void) { Serial.begin(9600); Serial.println("Started"); carrier.begin(); carrier.display.init(240, 240); pinMode(TFT_BACKLIGHT, OUTPUT); digitalWrite(TFT_BACKLIGHT, HIGH); Serial.println("Connecting to WiFi"); WiFi.begin(wifi_ssid, wifi_password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(1000); } Serial.println("Connected to WiFi"); mqtt_client.setUsernamePassword(mqtt_username, mqtt_password); if (!mqtt_client.connect(mqtt_server, 8883)) { Serial.print("MQTT connection failed with error code: "); Serial.println(mqtt_client.connectError()); return; } Serial.println("Connected to MQTT"); mqtt_client.subscribe("display"); carrier.display.setCursor(50, 20); carrier.display.setTextSize(4); carrier.display.print("Waiting"); } void loop(void) { int message_size = mqtt_client.parseMessage(); if (message_size) { char *message = (char *)malloc(message_size + 1); for (int i = 0; i < message_size && mqtt_client.available(); i++) { message[i] = (char)mqtt_client.read(); } message[message_size] = '\0'; Serial.print("Got message: "); Serial.println(message); carrier.display.fillScreen(0x000); carrier.display.setCursor(50, 20); carrier.display.setTextSize(4); carrier.display.print(message); free(message); } }