#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); carrier.display.setCursor(20, 100); carrier.display.setTextSize(3); carrier.display.print("Connecting.."); Serial.println("Connecting to WiFi..."); if (wifi_enterprise) WiFi.beginEnterprise(wifi_ssid, wifi_username, wifi_password); else WiFi.begin(wifi_ssid, wifi_password); while (WiFi.status() != WL_CONNECTED) delay(1000); Serial.println("Connected to WiFi, connecting to MQTT..."); 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("dispense"); carrier.display.fillScreen(0x000); } void loop(void) { int message_size = mqtt_client.parseMessage(); if (message_size) { Serial.print("Got message with topic: "); Serial.println(mqtt_client.messageTopic()); if (mqtt_client.messageTopic() == "dispense") { Serial.println("Dispensing..."); // TODO Connect to motor carrier.display.fillScreen(0x000); carrier.display.setCursor(20, 100); carrier.display.setTextSize(4); carrier.display.print("Dispense"); delay(500); carrier.display.fillScreen(0x000); } } }