|
|
// MQTT server + client for ESP32
#include"sMQTTBroker.h"
#include <WiFi.h>
#include <PubSubClient.h>
#include <WiFiClientSecure.h>
#include <MQTT.h>
const char* ssid = "NOS-3B26"; // Setubal
const char* password = "RMKSX2GL"; // Setubal
//const char* ssid = "MEO-AA9030"; // Andre
//const char* password = "81070ce635"; // Andre
// Set your Static IP address
IPAddress local_IP(192, 168, 1, 123); // Set your Gateway IP address
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); // optional
IPAddress secondaryDNS(8, 8, 4, 4); // optional
sMQTTBroker broker;
WiFiClient net; //WiFiClientSecure net;
MQTTClient mqtt_client(1024);
//WiFiClient espClient;
//PubSubClient client(espClient);
//long lastMsg = 0;
//char msg[50];
//int value = 0;
unsigned long lastMillis = 0;
//////////////////////////////////
void WiFiconnect(){ int nn = 0; while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
delay(500); if(nn<9){ Serial.print("."); nn++; }else{ nn=0; Serial.println("."); } }
if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println("STA Failed to configure"); }
Serial.println("Connection established!"); Serial.print("IP address:\t"); Serial.println(WiFi.localIP());
// Serial.print("\nconnecting...");
//// while (!mqtt_client.connect("bsidebotham", "", "")) {
// while (!mqtt_client.connect("tezmqlientx2323", "", "")) {
// Serial.print(".");
// delay(1000);
// }
//
// Serial.println("\nconnected!");
//
// mqtt_client.subscribe("/hello");
//
// // MQTT brokers usually use port 8883 for secure connections.
//// client.begin("broker.shiftr.io", 8883, net);
// mqtt_client.begin("192.168.1.123", 1883, net);
// mqtt_client.onMessage(messageReceived);
}
//////////////////////////////
void messageReceived(String &topic, String &payload) { Serial.println("incoming: " + topic + " - " + payload);
// Note: Do not use the client in the callback to publish, subscribe or
// unsubscribe as it may cause deadlocks when other things arrive while
// sending and receiving acknowledgments. Instead, change a global variable,
// or push to a queue and handle it in the loop after calling `client.loop()`.
}
//////////////////////////////
void setup() { Serial.begin(115200); // const char* ssid = "MEO-AA9030"; // The SSID (name) of the Wi-Fi network you want to connect to
// const char* password = "81070ce635"; // The password of the Wi-Fi network
Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password);
const unsigned short mqttPort=1883; broker.init(mqttPort); // all done
WiFiconnect();
}
//////////////////////////////
void loop() { broker.update();
// mqtt_client.loop();
delay(10); // <- fixes some issues with WiFi stability
// publish a message roughly every second.
// if (millis() - lastMillis > 1000) {
// if (!mqtt_client.connected()) {
// Serial.print("lastError: ");
// Serial.println(mqtt_client.lastError());
// WiFiconnect();
// }
// lastMillis = millis();
// int rnum = random(1,23);
// mqtt_client.publish("/hello", "ciccio" + String(rnum));
// }
//
}
|