Skip to content

ESP32++ (esp32pp) is a collection of C++ classes for the ESP32, providing reusable components for buttons, I2C, HTTP servers, and more, aimed at simplifying development.

License

Notifications You must be signed in to change notification settings

realsba/esp32pp

Repository files navigation

ESP32++ (esp32pp)

ESP32++ (esp32pp) is a personal collection of C++ classes designed for use with ESP32 microcontrollers. This library is intended to simplify and enhance the development process on the ESP32 platform by providing a powerful set of reusable components.

Table of Contents

Features

  • Button: Class for handling button input.
  • CriticalSection: Safe handling of critical sections.
  • DHT: Interface for DHT sensors.
  • HttpServer: Basic HTTP server functionality.
  • I2C: Simplified I2C communication.
  • Ina226: Driver for INA226 power monitor.
  • LedStrip: Control for LED strips.
  • RF433: Interface for RF433 modules.
  • Task: Task management utilities.
  • WiFiStation: Easy Wi-Fi connection management.

Installation

Clone the repository:

git clone https://github.com/realsba/esp32pp.git
cd esp32pp

Ensure you have ESP-IDF installed and properly configured:

. $HOME/esp/esp-idf/export.sh

Then, build the project using CMake:

idf.py build

Usage

You can use the provided examples to get started with each component.

For instance, to use the Button class, include it in your project:

Modify CMakeLists.txt

Edit the CMakeLists.txt file in your main/ directory to include the Button component:

idf_component_register(
    SRCS main.cpp
    REQUIRES Button
    INCLUDE_DIRS .
)

Include the Header

In your main.cpp or main.hpp, include the Button class:

#include "Button/Button.hpp"

Instantiate and Use the Class

Now you can instantiate and use the Button class in your application:

Button myButton(GPIO_NUM_0); // Example using GPIO 0
myButton.setPressedHandler([](){
    // Action on button press
});

Build and Flash

idf.py build
idf.py flash

Project Structure

esp32pp/
├── Button/             # Button handling classes
├── CriticalSection/    # Critical section management
├── DHT/                # DHT sensor interface
├── HttpServer/         # HTTP server implementation
├── I2C/                # I2C communication
├── Ina226/             # INA226 power monitor driver
├── LedStrip/           # LED strip control
├── RF433/              # RF433 module interface
├── Task/               # Task management utilities
├── WiFiStation/        # Wi-Fi connection management
├── examples/           # Example projects
├── main/               # Main application code
├── CMakeLists.txt      # CMake build configuration
└── sdkconfig           # ESP-IDF SDK configuration

Dependencies

  • ESP-IDF: The official development framework for ESP32.
  • CMake: Build system generator.

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

  • Bohdan Sadovyak

Bugs/Issues

Please report any bugs or issues here.

About

ESP32++ (esp32pp) is a collection of C++ classes for the ESP32, providing reusable components for buttons, I2C, HTTP servers, and more, aimed at simplifying development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published