[Perl] DAQ system for the FAPG.
Table of Contents
Project Context
This project implements a data acquisition (DAQ) system for an aquaponic farm: the *Ferme Aquaponique du Pays de Gex*, located in the Pays de Gex, France.
Website: https://www.lafermeaquaponique.com/
Users
- Customers are aquaponic farmers.
- Assume no higher IT sophistication than the average person.
- Assume deep expertise in aquaponic farm design and operation.
Architecture
All hosts are on the same farm LAN.
- 4 DAQ nodes: Raspberry Pi 2W units, each with 1 Atlas Scientific USB EZO carrier board + 1 probe
- 1 DAQ hub: Raspberry Pi 5 (MQTT broker)
- 1 DAQ recorder: remote VPS (persists MQTT messages to SQLite)
- 1 Dashboard: same VPS (Mojolicious web app)
Probes: pH, EC, Dissolved Oxygen, ORP (all Atlas Scientific).
Messaging
- DAQ nodes publish readings over MQTT.
- DAQ hub acts as MQTT broker.
- DAQ recorder persists all MQTT messages to a relational database.
- Topics: `fapg/daq/<probe>/<node>/reading`
- Schema: `fapg.daq.reading.v1`
- Probe keys are always lowercase: `ph`, `do`, `orp`, `ec`.
OS Versions
| Host | OS | Version | |--------------|----------------------|----------| | DAQ nodes | Raspberry Pi OS Lite | Trixie | | DAQ hub | Raspberry Pi OS Lite | Trixie | | DAQ recorder | Debian 11 | Bullseye | | Dev machine | Gentoo | latest |