https://github.com/ussserrr/pid-controller-server
ESP32-based PID regulator with remote control
https://github.com/ussserrr/pid-controller-server
esp-idf esp32 pid server socket udp
Last synced: 9 months ago
JSON representation
ESP32-based PID regulator with remote control
- Host: GitHub
- URL: https://github.com/ussserrr/pid-controller-server
- Owner: ussserrr
- Created: 2018-12-14T15:57:47.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-19T00:54:18.000Z (about 7 years ago)
- Last Synced: 2025-03-29T08:43:34.564Z (10 months ago)
- Topics: esp-idf, esp32, pid, server, socket, udp
- Language: C
- Size: 35.2 KB
- Stars: 16
- Watchers: 0
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pid-controller-server
Standalone proportional-integral-derivative regulator with the ability to be controlled via Wi-Fi (acts like UDP server).
## Overview
The app relies on the official [ESP-IDF](https://github.com/espressif/esp-idf) framework. Instruction set of the regulator itself can be find in [`commandmanager.h`](/components/commandmanager/include/commandmanager.h) file or in [pid-controller-gui](https://github.com/ussserrr/pid-controller-gui) repository. Supports both IPv4 and IPv6 networks.
`udp_server_task` serves main UDP server and constantly listening for incoming messages. They are then passed to `commandmanager` module (`process_request()` function) and the prepared reply is sending back to the client.
`_stream_task` is an internal task only active when stream of process variable and controller output values is requested.
`pid` component performing the main PID algorithm.
## Usage
Refer to ESP-IDF [documentation](https://docs.espressif.com/projects/esp-idf/en/latest/index.html) for help on compile & run processes. Generally, to build, flash and run built-in UART monitor you should invoke:
```bash
$ make -j8 flash monitor
```
Alternatively, you can apply tasks of VSCode editor that have been used during development by me. They are placed in [.vscode/tasks.json](/.vscode/tasks.json) file.
## Client
The app can be easily paired with [pid-controller-gui](https://github.com/ussserrr/pid-controller-gui) PC utility out-of-the-box.
## TODOs
- [ ] Better port to more advanced PID engine such as [MiniPID](https://github.com/tekdemo/MiniPID) and use more classy architecture for managing PID configuration both in commandmanager and in dedicated task