#include #include #include "SSD1306.h" // alias for `#include "SSD1306Wire.h" // jfs Wemos lolin32 // jfs Heltec WiFi kit 32 (weisses Board) //define HELTEC #define DEBUG // Initialize the OLED display using Wire library #ifdef HELTEC SSD1306 display(0x3c, 4, 15); #else SSD1306 display(0x3c, 5, 4); #endif const char* mqttServer = "192.168.2.71"; const int mqttPort = 1883; const char* clientID = "esp_32_relay"; const char* channelName = "/Urs/"; WiFiClient MQTTclient; PubSubClient client(MQTTclient); const int relay = 25; void callback(char* topic, byte* payload, unsigned int length) { String payload_buff; for (int i=0;i 5000) { // Try to reconnect. lastReconnectAttempt = now; if (reconnect()) { // Attempt to reconnect. lastReconnectAttempt = 0; } } } else { // Connected. client.loop(); publishit(); // Publish message. delay(100); } } void publishit() { char buffer[10]; double volt2 = ReadVoltage(36)*127000/27000; double volt1 = ReadVoltage0dB(37); //Serial.print(volt2,1); //Serial.print(" "); //Serial.println(volt1); dtostrf(volt1, 6, 2, buffer); client.publish("/ESP_32_AD/V1",buffer); // Publish message. dtostrf(volt2, 6, 2, buffer); client.publish("/ESP_32_AD/V2",buffer); // Publish message. display.clear(); display.drawString(0,20,"Volt 1 "+String(volt1)); display.drawString(0,30,"Volt 2 "+String(volt2)); display.display(); delay(2000); } // test double ReadVoltage0dB(byte pin){ double reading = analogRead(pin); // Reference voltage is 3v3 so maximum reading is 3v3 = 4095 in range 0 to 4095 if(reading < 1 || reading > 4095) return 0; return reading/4095; } double ReadVoltage(byte pin){ double reading = analogRead(pin); // Reference voltage is 3v3 so maximum reading is 3v3 = 4095 in range 0 to 4095 if(reading < 1 || reading > 4095) return 0; // return -0.000000000009824 * pow(reading,3) + 0.000000016557283 * pow(reading,2) + 0.000854596860691 * reading + 0.065440348345433; return -0.000000000000016 * pow(reading,4) + 0.000000000118171 * pow(reading,3)- 0.000000301211691 * pow(reading,2)+ 0.001109019271794 * reading + 0.034143524634089; } // Added an improved polynomial, use either, comment out as required