Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/congard/expressif
Wrappers & tools for ESP32 boards written in modern C++
https://github.com/congard/expressif
cpp cpp-library cpp20 cpp20-library embedded esp-idf esp32 esp32-idf espressif http http-server internet-of-things iot platformio rest rest-api
Last synced: 24 days ago
JSON representation
Wrappers & tools for ESP32 boards written in modern C++
- Host: GitHub
- URL: https://github.com/congard/expressif
- Owner: congard
- License: mit
- Created: 2024-03-03T14:15:00.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-05-28T19:36:21.000Z (7 months ago)
- Last Synced: 2024-05-29T10:33:09.864Z (7 months ago)
- Topics: cpp, cpp-library, cpp20, cpp20-library, embedded, esp-idf, esp32, esp32-idf, espressif, http, http-server, internet-of-things, iot, platformio, rest, rest-api
- Language: C++
- Homepage:
- Size: 29.3 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expressif
![stability-wip](https://img.shields.io/badge/stability-wip-lightgrey.svg)
Expressif is a library for ESP32 boards that provides C++ interface for esp-idf functions.
Nevertheless, Expressif is not just a wrapper for esp-idf: it offers additional functionality
that speeds up development for ESP32 boards.Expressif is written in modern C++ (C++20) to utilize the whole power of this powerful language.
## Components
The library consists of components, which can be found in the corresponding directory (`components`)
The following components are available now:
| Component | Description |
|-------------------------------------------------|---------------------------------------------|
| [`exp_http_server`](components/exp_http_server) | HTTP Server with REST API support |
| [`exp_wifi`](components/exp_wifi) | Establishes Wi-Fi connection in an easy way |## Usage
Append the `components` directory to the `EXTRA_COMPONENT_DIRS` list in your main `CMakeLists.txt`, e.g.:
```cmake
# /CMakeLists.txtcmake_minimum_required(VERSION 3.16.0)
set(CMAKE_CXX_STANDARD 20)# workaround for https://github.com/espressif/esp-idf/issues/3920
set(PROJECT_VER 1)if (DEFINED ENV{EXPRESSIF_PATH})
set(EXPRESSIF_PATH $ENV{EXPRESSIF_PATH})
else()
message(FATAL_ERROR "Environment variable EXPRESSIF_PATH is not specified")
endif()# add this line before `include`
list(APPEND EXTRA_COMPONENT_DIRS "${EXPRESSIF_PATH}/components")include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(ESPIDFSandbox LANGUAGES CXX)
```More examples can be found in the [corresponding folder](examples).
## Tested boards
Expressif has been tested on the following boards:
| | ESP32-C3 SuperMini | ESP32-S3-DevKitC-1 N16R8 |
|-------------------|--------------------|--------------------------|
| `exp_http_server` | ✅ | ✅ |
| `exp_wifi` | ✅ | ✅ |