135 lines
3.5 KiB
Markdown
135 lines
3.5 KiB
Markdown
# ESP32 Custom Libraries Collection
|
|
|
|
A collection of custom libraries designed for ESP32 development with ESP-IDF framework. These libraries are optimized for IoT sensor projects and provide reliable, reusable components.
|
|
|
|
## Libraries Overview
|
|
|
|
### 🌡️ DHT22 Sensor (`dht22_sensor`)
|
|
|
|
- **Version**: 1.0.0
|
|
- **Description**: Custom DHT22/AM2302 sensor library with bit-banging implementation
|
|
- **Features**: Temperature and humidity reading with robust timing control
|
|
- **Use Case**: Environmental monitoring projects
|
|
|
|
### Method 1: Git
|
|
|
|
```bash
|
|
cd your_project_directory
|
|
mkdir dht22
|
|
git clone https://home.arcoa.eu:8413/esp32libs/dht22_sensor.git
|
|
```
|
|
|
|
### Method 2: Manual Copy
|
|
|
|
1. Clone or download this repository
|
|
2. Copy the desired library folders to your project's `lib/` directory
|
|
3. Include the headers in your main code
|
|
|
|
### Method 3: PlatformIO Library
|
|
|
|
Each library contains a `library.json` file for PlatformIO compatibility.
|
|
|
|
## Usage Example
|
|
|
|
```c
|
|
#include "dht22_sensor.h"
|
|
#include "wifi_manager.h"
|
|
#include "mqtt_manager.h"
|
|
#include "led_manager.h"
|
|
|
|
void app_main(void) {
|
|
// Initialize WiFi
|
|
wifi_manager_config_t wifi_config = {
|
|
.ssid = "YourSSID",
|
|
.password = "YourPassword"
|
|
};
|
|
wifi_manager_init(&wifi_config);
|
|
|
|
// Initialize MQTT
|
|
mqtt_manager_config_t mqtt_config = {
|
|
.broker_url = "mqtt://your-broker.com",
|
|
.client_id = "esp32_sensor"
|
|
};
|
|
mqtt_manager_init(&mqtt_config);
|
|
|
|
// Initialize DHT22 sensor
|
|
dht22_init(GPIO_NUM_4);
|
|
|
|
// Initialize LED for status indication
|
|
led_manager_init(GPIO_NUM_8, 1);
|
|
|
|
// Your application logic here
|
|
while (1) {
|
|
float temperature, humidity;
|
|
if (dht22_read(&temperature, &humidity) == ESP_OK) {
|
|
mqtt_publish_sensor_data(temperature, humidity);
|
|
led_manager_set_color(0, 255, 0); // Green for success
|
|
} else {
|
|
led_manager_set_color(255, 0, 0); // Red for error
|
|
}
|
|
|
|
vTaskDelay(pdMS_TO_TICKS(30000)); // 30 second interval
|
|
}
|
|
}
|
|
```
|
|
|
|
## Library Dependencies
|
|
|
|
```
|
|
mqtt_manager → (none)
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Library includes configuration options through header files. Check individual library documentation for specific configuration parameters.
|
|
|
|
### Common GPIO Assignments
|
|
|
|
- **DHT22**: Any GPIO pin (recommended: GPIO 4)
|
|
- **LED Strip**: Any GPIO pin (recommended: GPIO 8)
|
|
- **Built-in LED**: GPIO 2 (ESP32-C6)
|
|
|
|
## Compatibility
|
|
|
|
- **Framework**: ESP-IDF
|
|
- **Platforms**: ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6
|
|
- **Tested**: ESP32-C6 DevKit
|
|
- **License**: MIT
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
MyESP32Libs/
|
|
├── README.md
|
|
├── CHANGELOG.md
|
|
├── dht22_sensor.c
|
|
├── dht22_sensor.h
|
|
├── README.md
|
|
├── CHANGELOG.md
|
|
├── library.json
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Fork this repository
|
|
2. Create a feature branch (`git checkout -b feature/new-library`)
|
|
3. Commit your changes (`git commit -am 'Add new library'`)
|
|
4. Push to the branch (`git push origin feature/new-library`)
|
|
5. Create a Pull Request
|
|
|
|
## Development Notes
|
|
|
|
⚠️ **VSCode Include Errors**: If you see `cannot open source file "esp_err.h"` errors in VSCode, this is expected for standalone library development. See [DEVELOPMENT.md](DEVELOPMENT.md) for solutions.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see individual library.json files for details.
|
|
|
|
## Support
|
|
|
|
For issues and questions:
|
|
|
|
- Create an issue in this repository
|
|
- Check individual library headers for API documentation
|
|
- Refer to ESP-IDF documentation for framework-specific details
|