Files
spore/examples/relay/README.md

1.8 KiB
Raw Blame History

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:
pio run -e esp01_1m_relay -t upload
  • D1 Mini:
pio run -e d1_mini_relay -t upload

Monitor serial logs:

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
curl http://192.168.1.50/api/relay/status
  • Turn relay ON
curl -X POST http://192.168.1.50/api/relay/set -d state=on
  • Turn relay OFF
curl -X POST http://192.168.1.50/api/relay/set -d state=off
  • Toggle relay
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
curl http://192.168.1.50/api/tasks/status
  • Query a specific task status
curl -X POST http://192.168.1.50/api/tasks/control \
  -d task=relay_status_print -d action=status
  • Enable / Disable the task
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
curl http://192.168.1.50/api/node/status
  • Restart device
curl -X POST http://192.168.1.50/api/node/restart