This is a WIP on a semi-automated system for my balcony (semi, because I'd like to keep some control over it).
I'm currently in the phase of ordering all the pieces I need. For the hardware, I rely on this project, which seems like a good start. To this I would like to add a wifi connection, for the remote control part, and I'm designing the sw with a publisher/subscriber scheme in mind, so that:
1. The Arduino board receives the commands and activates/deactivates the pump, and sends the reading of the sensors to "the cloud";
2. Some clients (in the easiest case an IFTTT recipe, then maybe a web client written in Angular) take care of all the logic (scheduled watering with some ifs)
3. The pub/sub network (Pusher, maybe?) takes care of the communication;
4. A DB stores all the reading from the sensors, because I'm a nerd and I like data viz :)
The Arduino should only take care of the "safety" logic, like "if no water, do not turn on pump" or turning off sensors when they are not used (because I don't trust myself to remember each time).