The server module is intended to run on a Raspberry Pi (Pi Zero W).
The server performs several roles:
- Web-based UI
- Data collection and persistence
- Temperature control (via HVAC)
The server is implemented using the Nim programming language and the Rosencrantz web framework.
You can use the included compile.sh
script.
Compilation is typically done through nimble
:
% nimble c -d:controlPi src/thermopi.nim
The controlPi
define is used to conditionally include actual GPIO control for your HVAC. If you do not compile with this option, no actual hardware control will happen. It is convenient to compile without this option when developing on your laptop/desktop.
You need to install Wiring Pi, see http://wiringpi.com/download-and-install/
SystemD is used to manage services on Raspian.
See my systemd-notes