// Summer School 2022 // ESP32 test code for MQTT protocol using // a free MQTT broker by emqx // Gerardo Marx #include #include // WiFi configuration const char *ssid = "Haus2.4G"; // WiFi name const char *password = "7476Haus#CB2040$"; // WiFi password WiFiClient espClient; // mqtt brocker: const char *mqttBrocker = "broker.emqx.io"; const char *topic = "esp32/test"; const char *mqttUsername = "emqx"; const char *mqttPassword = "public"; const int mqttPort = 1883; PubSubClient client(espClient); void setup(){ //serial communication Serial.begin(115200); WiFi.begin(ssid, password); while(WiFi.status() != WL_CONNECTED){ delay(500); Serial.print("Connecting to "); Serial.println(ssid); } Serial.println("Connection done."); //connecting to a mqtt brocker: client.setServer(mqttBrocker, mqttPort); client.setCallback(callback); while(!client.connected()){ String clientID = "esp32-gmarx-"; clientID += String(WiFi.macAddress()); Serial.printf("The %s tries to connect to mqtt borcker...\n",clientID.c_str()); if(client.connect(clientID.c_str(), mqttUsername, mqttPassword)){ Serial.println("mqtt brocker connected"); } else { Serial.print("mqtt connection failed"); Serial.println(client.state()); delay(2000); } } //once connected publish and suscribe: client.publish(topic, "Hi EMQX broker I'm a ESP32 :)"); client.subscribe(topic); } void loop(){ client.loop(); } void callback(char *topic, byte *payload, unsigned int length){ Serial.print("Message recived in topic: "); Serial.println(topic); Serial.print("The message is: "); for(int i=0;i