CCCPaste

WiFi Monitor rev_01

/********* Pleasedontcode.com **********

	Pleasedontcode thanks you for automatic code generation! Enjoy your code!

	- Terms and Conditions:
	You have a non-exclusive, revocable, worldwide, royalty-free license
	for personal and commercial use. Attribution is optional; modifications
	are allowed, but you're responsible for code maintenance. We're not
	liable for any loss or damage. For full terms,
	please visit pleasedontcode.com/termsandconditions.

	- Project: WiFi Monitor
	- Source Code NOT compiled for: Arduino Pro Mini 3.3V
	- Source Code created on: 2024-09-27 21:19:00

********* Pleasedontcode.com **********/

/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
	/* read and provide pot value via wifi */
/****** END SYSTEM REQUIREMENTS *****/

/****** DEFINITION OF LIBRARIES *****/
#include   // https://github.com/Tvde1/WiFiPicker
#include  // Include the ESP8266 WiFi library

/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);

/***** DEFINITION OF ANALOG INPUT PINS *****/
const uint8_t pot_Potentiometer_Vout_PIN_A0 = A0; // Pin for potentiometer
const uint8_t battery_ADC_PIN = A0; // Using A0 for battery voltage measurement (modify if needed)

/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Initialize the WiFiPicker object
WiFiPicker wifiPicker;  // Create an instance of WiFiPicker
Pangodream_18650_CL batteryMonitor(battery_ADC_PIN); // Create an instance of the battery monitor class

class Pangodream_18650_CL {    
  public:  
    Pangodream_18650_CL(int addressPin);
    Pangodream_18650_CL(int addressPin, double convFactor);
    Pangodream_18650_CL(int addressPin, double convFactor, int reads);
    Pangodream_18650_CL();    

    int getBatteryChargeLevel();
    double getBatteryVolts();
    int getAnalogPin();
    int pinRead();
    double getConvFactor();
       
  private:
    int    _addressPin;               //!< ADC pin used
    int    _reads;                    // Number of reads of ADC pin to calculate an average value
    double _convFactor;               //!< Conversion factor to translate analog units to volts
    double _vs[101];                  // Array with voltage - charge definitions
    
    void   _initVoltsArray();
    int    _getChargeLevel(double volts);
    int    _analogRead(int pinNumber);
    double _analogReadToVolts(int readValue);
};

void setup(void)
{
    // put your setup code here, to run once:
    Serial.begin(115200);  // Initialize serial communication at 115200 baud rate
    pinMode(pot_Potentiometer_Vout_PIN_A0, INPUT);  // Set the potentiometer pin as input

    // Start the WiFiPicker service
    wifiPicker.start();  // Start the WiFiPicker service

    // Print the local IP address
    Serial.println(WiFi.localIP());  // Print the local IP address
}

void loop(void)
{
    // put your main code here, to run repeatedly:
    int potValue = analogRead(pot_Potentiometer_Vout_PIN_A0); // Read the potentiometer value
    double potVoltage = (potValue / 1023.0) * 3.3; // Convert the analog value to voltage (assuming 3.3V reference)

    // Print the potentiometer value and voltage to the serial monitor
    Serial.print("Potentiometer Value: ");
    Serial.print(potValue);
    Serial.print(" | Voltage: ");
    Serial.println(potVoltage);

    delay(1000); // Delay for 1 second before the next reading
}

/* END CODE */