Skip to content

autogrow/openminder

Repository files navigation

OpenMinder™

License: CC BY-NC-SA 4.0

Part of Autogrows open initiative, this project is an open source API to be used in conjuction with the open source OpenMinder hat for the RaspberryPi. When coupled with the hardware this server will read and report via a REST API the readings for:

  • 2 Autogrow Intelligent EC probes
  • 2 pH probes
  • 2 tipping buckets

This allows anyone to build a device that can monitor the rootzone of their plants to make the most optimum use of water and fertigation ingredients to ensure a happy plant. This is done by measuring the water going into the plants on the irrigation side, as well as coming out on the runoff side, thus allowing comparisons.

You can also use the Sample OpenMinder Dashboard to add a web interface that shows the readings from the REST API.

Getting Started

The following is a quick getting started overview:

  1. Connect the OpenMinder hat to your Raspberry Pi
  2. Install the latest version of Raspbian (other OS may work but have not been tested)
  3. Build or download the binary, or install the Debian package
  4. Run the binary or service
  5. Calibrate your probes and tipping buckets
  6. Call the readings endpoint for the API curl http://<ip>:3232/v1/readings

See the Getting Started page for more detail.

Installing

You can install the package from the Autogrow Debian Repository:

curl -s https://packagecloud.io/install/repositories/autogrow/public/script.deb.sh | sudo bash
sudo apt-get install openminder

Building

You can download pre-built binaries from the releases page

You can build the binaries using go:

go get github.com/autogrow/openminder
GOARCH=arm go build github.com/autogrow/openminder/cmd/openminder  # API and hat interface
GOARCH=arm go build github.com/autogrow/openminder/cmd/omcli       # command line client

You can build the package using the ian utility:

cd dpkg
ian build
ian pkg

Usage

You can simply run the API without any arguments to use the defaults for the hat.

openminder

You can change the API port like so:

openminder -p 3131

You can also change the tipping bucket GPIO ports (usually only needed for testing) like so:

openminder -tb1 GPIO17

See openminder -h for more information.

API Endpoints

The main interaction with the binary is via the API. See the API page for more detail.

Calibration

Some readings need to be calibrated to make any sense. For instance to turn the tip count into a volume reading, the minder needs to know how many millilitres each tip of the tipping bucket represents. To set the runoff tipping bucket to 5 mls per tip you could do:

curl -XPUT http://<ip>:3232/v1/calibrations/irrig_tb/5.0/0

Probes

Calibrating the EC and pH probes required the use of the companion CLI tool omcli. This provides a series of prompts to help calibrate the probe in place.

Contributing

We accept pull requests. If you need any help, please don't hesitate to open an issue.