A few years ago I put in a custom watering system in my backyard, allowing me much more control of the watering in my garden. It was so successful, that not only did it grow my plants exceptionally well, it saved me around $200 over the course of a summer, directly in the water bill.
As pleased as I was, and as rapidly as I regained my investment dollars in savings, it wasn't enough. I write software and herd databases for a living, and ever curious, and so I've been reading articles about the Raspberry Pi and Arduino for the last year, and finally decided to make the jump into some home automation.
I have several projects in mind, but this is a replacement for 2 sprinkler controller boxes that I have in use on my residential property, with a total of 14 zones (coding allows for 16), and this pathway will allow me to extend this project with weather monitoring, flow meter, etc. Extensions being for data gathering for a whole variety of analysis and system behavior modification, but first the replacement circuitry, and programming of the base before getting too fancy. This IS my first project like this since taking a circuits class in college some 20 years ago, so better not get TOO excited.
The basis for most of the logic in this project is the 74CH595 shift register logic chip. The project uses five. Three chips for informational (read: eye candy) LEDs, and 2 chips for the valve 'work'. The PowerLED is just that, an indicator that the system has power, and finally the LCD is to be used to give greater detail than an LED can by itself.
Most of the code is variations on things I found on the SunFounder, Adafruit, and RaspberryPi websites, and their tutorials, as well as some forum reading. So props out to them for making things so accessible.
I'm not new to Linux, but had forgotten how much I did know. I hadn't used it much in probably 10 years, as I spend most of my time in SSMS. I was completely new to Python, so any thoughts on coding improvement are welcome, to be honest, I haven't done more in python than make it DO what I want. I may rewrite it in C++ and just stay in that language.
It's been entertaining, and I've already ordered more parts, and have my backyard looking like it could be used for miniature trench warfare, working on a separate, manual labor intensive (read: shovel work), non-electrical portion of this project.
I hope you enjoy.