Anders Johansson's Poseidon is a five-part software stack designed with a singular purpose in mind: offering flexible control over a garden pond setup, running from a Raspberry Pi 4 single-board computer (SBC).
"Poseidon is a modular control setup for your garden pond for sensors and switches," Johansson explains. "Monitoring is done with the TICK stack (Telegraf, InfluxDB, Chronograf and Kapacitor) accompanied by a Python Flask web server for the control and quick overview. All is (in my setup) running on a Raspberry Pi 4. The InfluxDB creates some CPU spikes but there is plenty of power over to serve the relevant stuff and UI [User Interface] experience is smooth."
Poseidon is a modular design, split into five parts — each of which can, Johansson claims, be run independently "with some tweaking:" Fishfeeder, which controls servos connected to a Wemos D1 Mini microcontroller board to feed koi carp; Water Control, which handles topping up the pond, controlling water features, and watering the plants in the garden; Water Quality, which uses Atlas Scientific sensors in a sieve filter connected to an Arduino Uno to keep an eye on the water; Pond Control, the central controller; and the web server which provides a user interface.
"The interaction with the pond is mainly done via the web app where you can control timers or interactive feeding, water on/off etc," Johansson explains. "For more details and long term trends you have that in the Chronograf or Grafana which visualize the DB data. Chronograf has a few nice predefined dashboards both for [Raspberry Pi] resource (CPU, mem…) usage and also the sensor values from the pond."
Full details, including a getting started guide — in which Johansson warns that "there may be hard-coded assumptions" which need correcting for anyone only seeking to replicate part of the system rather than the whole shebang — are available on the Poseidon GitHub repo, where the source code is published under an unspecified open source license.