https://github.com/vacovsky/pirrigo
Full-featured Raspberry Pi based irrigation controller and web application for scheduling.
https://github.com/vacovsky/pirrigo
angularjs demo drought garden golang-application gpio irrigation irrigation-system pirri-irrigation raspberry-pi watering-plants zone
Last synced: 3 days ago
JSON representation
Full-featured Raspberry Pi based irrigation controller and web application for scheduling.
- Host: GitHub
- URL: https://github.com/vacovsky/pirrigo
- Owner: vacovsky
- License: mit
- Created: 2017-02-14T06:50:23.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-19T06:43:20.000Z (12 months ago)
- Last Synced: 2024-11-16T01:44:52.371Z (11 months ago)
- Topics: angularjs, demo, drought, garden, golang-application, gpio, irrigation, irrigation-system, pirri-irrigation, raspberry-pi, watering-plants, zone
- Language: HTML
- Homepage:
- Size: 239 MB
- Stars: 21
- Watchers: 5
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PirriGo
Irrigation and garden management application, in Go and Angular 13. Based on Pirri.## Screenshots
### Zones
### Calendar
### Station Scheduler
### History of Activity
### Charted Run Stats
### Hardware
## Features
- Activate irrigation zones on a schedule, or manually
- Track total seconds spent watering by zone, day of the week, and other metrics
- Estimate monthly costs to operate your irrigation system
- Using WeatherUnderground, leverage current weather data to automatically regulate watering (increase in heat waves, reduce when rain will do the job for you)## Setup
### Clone repository to your Pi
```bash
git clone https://github.com/vacoj/pirrigo.git
```### Installing Go in Raspbian
```bash
wget https://storage.googleapis.com/golang/go1.7.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go1.7.linux-armv6l.tar.gz
export PATH=/usr/local/go/bin:$PATH
```### Install required Go packages
```bash
go get "github.com/davecgh/go-spew/spew"
go get "github.com/jinzhu/gorm"
go get "github.com/jinzhu/gorm/dialects/mysql"
go get "github.com/newrelic/go-agent"
go get "github.com/stianeikeland/go-rpio"
go get "github.com/streadway/amqp"
go get "go.uber.org/zap"
```### Install javascript libraries for web
```bash
cd pirrigo/src/pirri-spa
npm install
```### Setting up SQL for testing
```bash
This application no longer supports MySQL. Now it uses SQLite3
```### Configuration file ([example](https://github.com/vacoj/pirrigo/blob/master/init/appconfig.json">example))
```javascript
{
"pirri": {
"welcome_message":"L/P is demo/demo",
"utc_offset": -8,
"monitor_interval": 60,
"rain_skip": true,
"use_rabbit": false,
"date_format": "2006-01-02 15:04:05"
},
"rabbitmq": {
"server": "192.168.111.50",
"port": "5672",
"user": "rabbit",
"secret": "bunnyrabbit!!",
"task_queue": "pirri_go_work_dev"
},
"sql": {
"dbtype": "mysql",
"server": "localhost",
"user": "pirritesting",
"secret": "pirritesting",
"db": "pirritesting",
"port": "3306"
},
"newrelic": {
"active": false,
"license_path": "../../../nr_key"
},
"redis": {
"host": "localhost",
"port": "6379"
},
"web": {
"port": "8001",
"user": "demo",
"secret": "demo"
},
"weather": {
"wunderground_key": "",
"state_abbreviation": "CA",
"city": "Atascadero",
"units": "imperial",
"station": "KCAATASC69"
},
"debug": {
"pirri": true,
"gorm": false,
"settings": false,
"simulate_gpio": true,
"log_path": "pirrigo.log"
}
}
```### Running app
```bash
cd pirrigo/src/pirri
./pirri /path/to/config.json
```## Notes
#### TODO
- Provide hardware assembly instructions
- Better automate initial stand-up and configuration of service.
- Finish making the front end less offensive.
- Make the calendar interactive (like in the original version, but prettier and more functional)#### Manual submission of a station run with curl
(when not using authentication)
``` bash
curl -X POST -d "{\"StationID\": 2, \"Duration\": 60}" http://localhost:8001/station/run
```