The schematic for the current build has been posted, but I wanted to ad some notes on it. Currently I use a micro-USB power pack to supply the ESP32 board, but I also use a separate 5V power supply to provide power to the relay board. Note that the 5V supply ONLY goes to the relay board, and all other 5v sources are coming from the 5v pin on the ESP32 board. Ideally I should be able to feed a single 5V supply directly to this ESP board and also feed the relay board, eliminating the need for dual power supplies.
There is also an issue with the setup of the soil moisture sensor. Apparently these types of sensors can oxidize when they have a continuous power supply. Since there are plenty of pins still available on the ESP32 the best solution is to use one of those pins in digital mode as the power for the moisture sensor, and only check it once every few minutes. The better solution is to use capacitive moisture sensors, of which I have ordered a handful to experiment with.
The relay board is just a general representation for the variety of boards that are available. You can use boards with 1, 2, 4, 8, or more relays. The 74hc595 chip is expandable, meaning if you add a second chip you will have eight more ports available and could run 16 relays, so there is no practical limit to how many devices could be operated. Unfortunately the software still needs some minor tweaks to handle multiple 595 chips, but that will be a simple variable to set how many chips you are using. The real trick would be in trying to display more than 16 icons on the screen since there is such limited space.
Finally, the CdS sensor will require some calibration. I plan to add a trimmer pot so the value can be fine-tuned, but I also need to increase the range of the sensor to provide full coverage from dawn until the sun is directly overhead. I may be able to use two trimmers for this -- one would set the maximum value for the mid-day sun and the other would set the minimum value as it gets dark outside.