Skip to content

An ESP32-based hydro/aero/aquaponics controller with a nice web UI.

License

Notifications You must be signed in to change notification settings

karaulj/ponics32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ponics32

ponics32 is a hydro/aero/aquaponics monitoring & control system built using the ESP-IDF framework.

Configuration

ponics32 is a FreeRTOS application that supports sensor monitoring, actuator control, emergency detection, and an HTTP web server. HTML code for the UI is auto-generated at runtime from predefined arrays (`allSensors`, `allActuators`, `allEmergencies`) so users can just focus on writing drivers.

Additional settings (i.e. WiFi credentials) can be found in main/settings.h.

ponics32 systems are characterized by 3 user-defined groups:

  • Sensors
  • Actuators
  • Emergencies

Sensors

Sensors are used to gather data from your *ponics setup. Examples include temperature sensors, water level sensors, float switches, etc.

User-defined sensors must implement the ISensor interface defined in components/sensor/include/ISensor.h.

All sensors are initialized and added to the allSensors array in the global sensorsInit() function defined in components/sensor/src/sensors.cpp. HTML code is generated from this array.

Actuators

Actuators are used to control outputs from your *ponics setup. Examples include water pumps, LED strips, heating elements, etc.

User-defined actuators must implement the IActuator interface defined in components/actuator/include/IActuator.h.

All actuators are initialized and added to the allActuators array in the global actuatorsInit() function defined in components/actuator/src/actuators.cpp. HTML code is generated from this array.

Emergencies

Emergencies are used to trigger a callback when a certain condition is met. Examples include shutting off a water pump if high water level, turning on a heater if low temperature, etc.

User-defined emergencies must implement the IEmergency interface defined in components/emergency/include/IEmergency.h.

All emergencies are initialized and added to the allEmergencies array in the global emergenciesInit() function defined in components/emergency/src/emergencies.cpp.

Building/Flashing

ponics32 can be built and flashed using Espressif's idf.py:

cd ponics32/
idf.py -p <PORT> flash

About

An ESP32-based hydro/aero/aquaponics controller with a nice web UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published