Raspberry Pi Irrigation Control – Part 1
In this multipart project tutorial we will be building a Raspberry Pi based Irrigation Controller using our Raspberry Pi IrrigationHAT. We wanted to create a functional project for people to dip their toes into the world of smart devices – and an irrigation controller seemed like a great choice! Following this tutorial will result in an operational Irrigation Controller with multiple zones, a configurable schedule, configurable run duration, and basic notification system. We will break this tutorial down into four components: An assembly guide and board overview, Installing libraries and reading sensors / controlling outputs using python, email notifications and configuration, and installation outdoors. The tutorial is focused on our Raspberry Pi Irrigation Board designed and manufactured here at BC Robotics.
About the Board:
The Pi Irrigation Board is designed to give your Raspberry Pi everything it needs to control solenoid valves (commonly found in garden and lawn irrigation) along with other inductive loads while providing a number of interfaces and connections for different sensors to suit a variety different configurations.
The board is comprised of 6 independent solenoid driver circuits. Each circuit has an LED indicator showing when it is triggered and integrated snub diode to protect your Pi from any power spikes caused by inductive loads. A 4 Channel 12-bit analog to digital converter is also used, giving the Pi the ability to read a variety of basic analog sensors including Soil Moisture. We have also built in a connector specifically for the DS18B20 Temperature Sensor, a Flow Sensor, along with breakout headers for I2C, SPI, and Serial. To aid in powering the board, we have also included an extra connection point for a Pololu 5V 2.5A Regulator – this allows the Pi to be powered off the 12V power supply we are using for the solenoids rather than a separate 5V power adapter.
If you have any questions, or need further clarification please post in the comments section below; this way future users of this tutorial can see the questions and answers!