End of Season 2018 Status - BitKnitting/should_I_water GitHub Wiki

This year's evolution of my irrigation system has come to an end. The goal of this post is to give a status report that is detailed enough to be used to improve on the project next summer.

A major change this year was using a Rasp Pi as the control station. I am happy with this decision:

  • Put function/control of irrigation in the hands of the garden_readings.db SQLite Database. This way, it is easy to change things like which valves water, how many minutes to water, etc. Eventually, these could be controlled by a UI. For now, I like the control of tweaking the database.

Irrigation Zones

There are three irrigation zones. We can see these by looking at the valves table in the garden_readings.db on the Raspberry Pi.

pi@raspberrypi:~/myLadybugHelper/databases $ sqlite3 garden_readings.db
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> select * from valves;
1|102|1|4|Strawberries|8
2|101|1|4|Flowers near pond|8
3|103|2|5|front yard|8
sqlite> select sql from sqlite_master where type = 'table' and tbl_name='valves';
CREATE TABLE "valves" ("id" INTEGER NOT NULL PRIMARY KEY, "valveID" INTEGER NOT NULL, "moisturePuckID" INTEGER NOT NULL, "wateringPuckID" INTEGER NOT NULL, "description" VARCHAR(255) NOT NULL, "watering_time" INTEGER NOT NULL)

There is a valve for each watering zone. For example, 103 turns water on/off for the front planters. There are two moisture pucks (ID 1 in the back, ID 2 is not used). There are two watering pucks (id 4 in the back and id 5 in the front).

The Front

Here is one of the planters getting auto-magically watered:

When it became super hot every day, instead of checking to see if the soil was moist enough to water, I just watered. Because the silly SPI on Rasp Pi makes sharing the RFM69 code impossible, I could only run one task at a time. I ended up running the happyday_water.service at the times noted in happyday_water.timer.

Basically, while the Moisture Puck is usable, I ended up not using it. Rather, just watering by putting times in the timer. In the future, I will evolve the irrigation system to include moisture checking. Moisture checking becomes much more interesting when the weather includes rain!

That's It

The biggest changes:

  • Rasp Pi became central hub.
  • Controlled by SQLite database.
  • Added planters and irrigation to the front yard.
  • Added sending email about the weather. I was doing this before I got automation working well. This way, we could water when watering was needed. Ultimately, sending email was not that useful.
  • Added solar to the moisture puck.

Until next year.