For the terminal server (PVCTS) that sits in the out building I used an ESP32 Nano that I had laying around. It's mounted to perf board with a Microchip MCP2558FD CAN transceiver mounted to the back. I am also using the UART serial on the Nano as a terminal server for use as a remote console to another project. The RS232 cable from the other project also provides 5V to the board's LDO regulator.

The display head is also mounted to perf board with the ESP32 dev board underneath. Credit to Mostly Build's ESP32 + SPI Capacitive Touchscreen Tutorial to make quick work of this part of the project. I did have trouble with the touch screen's performance and added pull-ups on the SDO & SDC lines. That made things better but it was still flaky. After adding additional decoupling caps & faraday screens (between the ESP32 & display) it still wasn't working well. I finally found some posts indicating that the LovyanGFX driver may have some issues. The ESP32 is powered via its USB port plugged into a standard 5V charger.

The two pieces connect to a common WiFi network and use a telnet connection to exchange data.

This was a minimalist project that gave me a big return, and it's simplicity means that you can easily adapt it to other uses too. The source code is reasonably well documented and should explain the details of how each part works.