The Coreconduit: Garden Controller System was the first version of the hydroMazing project . The author of the Instructable drones on and on about healthy plants requiring attention and boredom until,
“…I’ve programmed into the Arduino a function I called, “TheDecider” that makes decisions based on maintaining optimum environmental conditions for growing plants. I added 2.4Ghz Wireless Radio Transceiver modules and a modular receiver system so that data is transmitted to within 1000 feet.”
“TheDecider” was originally hardcoded with specific values that were fixed in place until I changed them in the Arduino sketch, recompiled, and uploaded. There are two types of decisions that TheDecider executes, timed-based, and sensor-based rules. The time-based rules simply compare the current time to the last time the appliance was turned-on or off. The sensor-based rules use a minimum value threshold and a maximum value threshold that are compared to the current sensor reading and then execute the corresponding action for the appliance. For example, if the temperature is below 55° then turn-off the ventilation fans; if the temperature is above 80° then turn-on the ventilation fans. Each appliance has corresponding rules for sensor reading thresholds, time-based automation, and a combination of both, priority depending on the order of the rules.
Today’s hydroMazing uses the Raspberry Pi to provide an interface to the rules and the notifications. The Pi communicates with the Arduino Nano microcontroller wirelessly sending updates and receiving data. TheDecider is a rules engine that executes the checks sent to it from the Pi. The settings are stored in the EEPROM of the Arduino Nano allowing it to operate without further communications with the Pi. hydroMazing doesn’t require an Internet connection to operate with the exception of receiving emails or text-alerts. The Raspberry Pi can be configured to operate only within your WiFi network and be allowed to send emails and text-alerts. Or, you can configure your router to allow access from outside and even assign a domain name, such as http://coreconduit.ddns.net. See my Instructables for steps to a secure Pi.