Anmirazik's Aquaponic System
Summary
Anmirazik's Aquaponic System (github.com/Anmirazik/Aquaponic-System-Completed) is a complete small-scale aquaponics controller published as a personal internship project — the author's first Node-RED project. The repository holds two coordinated codebases: Arduino IDE firmware for an Arduino Nano (acting as slave) and an ESP8266 (acting as master), communicating over a serial port, plus Node-RED flows (in a separate branch) that render a prototype web dashboard. The dashboard monitors water level, total dissolved solids, pH, and water temperature, and controls plant lights, a heater, an automatic fish feeder, and the water pump. Sensor/actuator data moves over MQTT using the knolleary pubsubclient library, with DFRobot's GravityTDS library for TDS and ArduinoJson for message structuring. The README documents the wiring concept, required libraries, Wi-Fi/MQTT credential configuration, and photos of the finished build and control-panel circuitry. It is a realistic example of what a motivated intern can produce: honest, working, and modest in scope. License: none specified in the repository (flagged — treat as all-rights-reserved until clarified). Last pushed December 2023; dormant.
Guiding Principles
- Open Source — full firmware and dashboard flows published freely for others to learn from, though without an explicit license file.
- STEM Integration — combines microcontroller firmware, serial master/slave architecture, MQTT messaging, and flow-based programming in one aquaponics build.
- Transferable Skills — exactly the skill chain (Arduino → ESP8266 → MQTT → Node-RED dashboard) used in entry-level IoT employment.
Learning Outcomes & Transferable Skills
Learners practice Electronics (sensor interfacing, control-panel wiring), Coding (Arduino C, serial protocols, JSON payloads, Node-RED flows), Water Chemistry (pH/TDS/temperature monitoring in a living fish-and-plant system), and Systems Thinking (closed-loop recirculation between fish tank and grow bed). The two-board master/slave split is a clean teaching example of distributed embedded design.
How to Replicate or Build On It
- Clone
https://github.com/Anmirazik/Aquaponic-System-Completed; check both themain(firmware) andnode-redbranches. - Install the three documented libraries: ArduinoJson, DFRobot GravityTDS, and pubsubclient.
- Edit Wi-Fi SSID/password and MQTT credentials at the top of the ESP8266 firmware; install the ESP8266 board manager in the Arduino IDE.
- Upload the Nano sketch unchanged (it acts purely as slave), then the ESP8266 sketch; import the Node-RED flow and point it at your MQTT broker.
Considerations & Constraints
- Cost: Low — Arduino Nano (or UNO R1), ESP8266, commodity sensors, and a free Node-RED/MQTT stack.
- Skill Level: Intermediate-beginner friendly; the author documents it as a first Node-RED project.
- Space/Climate: Small indoor system; classroom-scale.
- Tools Required: Arduino IDE, Node-RED runtime, MQTT broker, ESP8266 board support, soldering/wiring basics.
- Ongoing Maintenance: Probe calibration (pH/TDS) and routine aquaponics care; codebase itself needs none but is unmaintained.
- Access Barriers: No license file — reuse rights are unclear (flagged for gaps log); no community activity since December 2023; some build photos noted as lost by the author; English only.
Prerequisites
Arduino IDE basics; a running MQTT broker and Node-RED instance.