feat: create examples and corresponding build config

This commit is contained in:
2025-08-28 09:18:11 +02:00
parent f94d201b88
commit a085b3b8ee
5 changed files with 236 additions and 1 deletions

83
examples/relay/README.md Normal file
View File

@@ -0,0 +1,83 @@
# Relay Service Example
A minimal example that uses the framework's `NodeContext`, `NetworkManager`, `TaskManager`, and `ApiServer` to control a relay via REST and log status periodically as a task.
- Default relay pin: `GPIO0` (ESP-01). Override with `-DRELAY_PIN=<pin>`.
- WiFi and API port are configured in `src/Config.cpp`.
## Build & Upload
- ESP01S:
```bash
pio run -e esp01_1m_relay -t upload
```
- D1 Mini:
```bash
pio run -e d1_mini_relay -t upload
```
Monitor serial logs:
```bash
pio device monitor -b 115200
```
Assume the device IP is 192.168.1.50 below (replace with your device's IP shown in serial output).
## Relay API
- Get relay status
```bash
curl http://192.168.1.50/api/relay/status
```
- Turn relay ON
```bash
curl -X POST http://192.168.1.50/api/relay/set -d state=on
```
- Turn relay OFF
```bash
curl -X POST http://192.168.1.50/api/relay/set -d state=off
```
- Toggle relay
```bash
curl -X POST http://192.168.1.50/api/relay/set -d state=toggle
```
Notes:
- Requests use `application/x-www-form-urlencoded` by default when using `curl -d`.
## Task Management (optional)
The example registers a periodic task `relay_status_print` that logs the current relay state.
- Fetch all task statuses
```bash
curl http://192.168.1.50/api/tasks/status
```
- Query a specific task status
```bash
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=status
```
- Enable / Disable the task
```bash
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=enable
curl -X POST http://192.168.1.50/api/tasks/control \
-d task=relay_status_print -d action=disable
```
## General System Endpoints (optional)
- Node status
```bash
curl http://192.168.1.50/api/node/status
```
- Restart device
```bash
curl -X POST http://192.168.1.50/api/node/restart
```