commit 9bfb69155faee195467643dd7c9f65c00bb36f18 Author: Domagoj Zecevic Date: Sun Jan 1 13:12:49 2023 +0100 first commit diff --git a/arduino_mqtt.ino b/arduino_mqtt.ino new file mode 100644 index 0000000..f770dd4 --- /dev/null +++ b/arduino_mqtt.ino @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include + +#define OLED_RESET 0 // GPIO0 +Adafruit_SSD1306 display(OLED_RESET); + +#if (SSD1306_LCDHEIGHT != 48) +#error("Height incorrect, please fix Adafruit_SSD1306.h!"); +#endif + +const char* ssid = "IoT-Zecevic"; +const char* password = "IoTSifra123456!"; +const char* mqttServer = "192.168.1.11"; +const int mqttPort = 1883; +const char* mqttUser = "yourMQTTuser"; +const char* mqttPassword = "yourMQTTpassword"; + +WiFiClient espClient; +PubSubClient client(espClient); + +void callback(char* topic, byte* payload, unsigned int length) { + + Serial.print("Message arrived in topic: "); + Serial.println(topic); + + Serial.print("Message:"); + display.clearDisplay(); + display.setTextSize(1); + display.setTextColor(WHITE); + display.setCursor(0,0); + display.println("Power: "); + for (int i = 0; i < length; i++) { + Serial.print((char)payload[i]); + display.setTextSize(2); + display.print((char)payload[i]); + } + + display.display(); + Serial.println(); + Serial.println("-----------------------"); + +} + +void setup() { + + Serial.begin(115200); + + // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) + display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 64x48) + // init done + + // Clear the buffer. + display.clearDisplay(); + + WiFi.begin(ssid, password); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.println("Connecting to WiFi.."); + } + Serial.println("Connected to WiFi"); + display.setTextSize(1); + display.setTextColor(WHITE); + display.setCursor(0,0); + display.println("Connected to the WiFi network!"); + display.display(); + + client.setServer(mqttServer, mqttPort); + client.setCallback(callback); + + while (!client.connected()) { + Serial.println("Connecting to MQTT..."); + + if (client.connect("ESP32Client", mqttUser, mqttPassword )) { + + Serial.println("connected"); + Serial.println("Connected to mqtt!"); + display.setTextSize(1); + display.setTextColor(WHITE); + display.println("Connected to mqtt!"); + display.println("No data yet"); + display.display(); + + } else { + + Serial.print("failed with state "); + Serial.print(client.state()); + delay(2000); + + } + } + //solar power + client.subscribe("solar/114182126368/0/power"); + + /*client.subscribe("tele/tasmota_server_C32969/SENSOR"); + client.subscribe("tele/tasmota_LR-C23E87/SENSOR"); + client.subscribe("tele/tasmota_OfficeNET_17A00F/SENSOR"); + client.subscribe("tele/tasmota_OfficePC1856E2/SENSOR");*/ + +} + +void loop() { + client.loop(); +} \ No newline at end of file