An Arduino based project for remotely watering plants on battery power. This project is part of a set of projects that allow you to water your garden remotely using a simple web page. The entire set of projects are contained in three repositories.
- Arduing Gardener (this repo)
- Lumber Monkey (broker between your Arduino and an MQTT broker like AWS IoT)
- Gardener UI (aka Swanky Monkey Garden - a Web interface for controlling everything)
First, you will need to build the circuit shown below. The main components are an Arduino Nano and a Digi XBee S1 802.15.4 module. EAGLE Schematic File Most of the circuit should be pretty self-explanatory except for the three power plugs. Connect these power plugs as follows:
Connector Name | Connect to |
---|---|
J1 | 12V DC |
J2 | 12V DC |
J3 | Valve (12V) |
The valve will be used to control the flow of water to your garden and should be closed when there is no current and open when 12 volts are applied.
To program the Arduino, just install the gardener.ino sketch on your Arduino Nano using the Arduino IDE.
The Arduino Gardener uses the CommandMessenger library to send and receive messages using the XBee. The Arduino will go into a low power mode for eight seconds, and then wake up and send a request for instructions over CommandMessenger. It will wait until it either receives an instruction, an indication that there are no instructions, or a timeout, and then go into low power mode for eight seconds and repeat.
If the Arduino Gardener receives an instruction to open the valve, it will open the connected valve for the amount of time specified in the instruction and then go back into low power mode and repeat.
The Gardener will also send light information collected by the photoresistor every few minutes.