Metadata-Version: 2.5
Name: nicesprinkler
Version: 0.0.3
Summary: nicesprinkler
Project-URL: Home, https://github.com/WolfgangFahl/nicesprinkler
Project-URL: Documentation, https://wiki.bitplan.com/index.php/nicesprinkler
Project-URL: Source, https://github.com/WolfgangFahl/nicesprinkler
Author-email: Wolfgang Fahl <wf@bitplan.com>
Maintainer-email: Wolfgang Fahl <wf@bitplan.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: automation,lawn,nicegui,sprinkler
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: linuxpy>=0.15.0
Requires-Dist: matplotlib>=3.9.2
Requires-Dist: ngwidgets>=0.27.1
Requires-Dist: nicegui>=2.20.0
Requires-Dist: numpy-stl>=3.1.2
Requires-Dist: pybasemkit>=0.0.3
Requires-Dist: tabulate>=0.9.0
Provides-Extra: test
Requires-Dist: green; extra == 'test'
Description-Content-Type: text/markdown

# nicesprinkler

Your lawn does not need a robot. It needs water in the right place.

[![pypi](https://img.shields.io/pypi/pyversions/nicesprinkler)](https://pypi.org/project/nicesprinkler/)
[![Github Actions Build](https://github.com/WolfgangFahl/nicesprinkler/actions/workflows/build.yml/badge.svg)](https://github.com/WolfgangFahl/nicesprinkler/actions/workflows/build.yml)
[![PyPI Status](https://img.shields.io/pypi/v/nicesprinkler.svg)](https://pypi.python.org/pypi/nicesprinkler/)
[![GitHub issues](https://img.shields.io/github/issues/WolfgangFahl/nicesprinkler.svg)](https://github.com/WolfgangFahl/nicesprinkler/issues)
[![GitHub closed issues](https://img.shields.io/github/issues-closed/WolfgangFahl/nicesprinkler.svg)](https://github.com/WolfgangFahl/nicesprinkler/issues/?q=is%3Aissue+is%3Aclosed)
[![API Docs](https://img.shields.io/badge/API-Documentation-blue)](https://WolfgangFahl.github.io/nicesprinkler/)
[![License](https://img.shields.io/github/license/WolfgangFahl/nicesprinkler.svg)](https://www.apache.org/licenses/LICENSE-2.0)

Two stepper motors, a garden hose and a Raspberry Pi. One motor turns,
the other lifts, and the jet lands where the software says it should —
if the software knows the truth about the garden. Getting it to know
that is the interesting part.

![the garden in 3D](images/20260815_185510_lawn_home_page.png)

## What it does

- **Simulates** the throw over a 3D model of your garden before a drop falls
- **Aims** the head from the browser, or from a pattern
- **Watches** itself through the device camera while it works
- **Measures** its own flow with a bucket and a stopwatch, and remembers it

![the sprinkler head](images/20260815_185540_lawn_head_page.png)

## Why the camera

A stepper says where it was told to go. Water pressure has opinions.
The hose bends, the head shifts under the jet, and the model drifts away
from the machine. So every frame the camera records is written with the
commanded angles beside it — pictures without angles teach nothing.

## Install

```bash
pip install nicesprinkler
```

## Run

```bash
sprinkler -s
```

Then open the address it prints. On a Raspberry Pi it drives the motors
through TB6600 drivers; anywhere else it runs the simulation with a mock
GPIO, so you can build the garden model on your laptop.

## Configure

Lawn size, head position, angle limits, hose specification and motor pins
live in one yaml. Start from `nicesprinkler_examples/example_config.yaml`.

## Documentation

- [API documentation](https://WolfgangFahl.github.io/nicesprinkler/)
- [Build instructions, parts list and wiring](https://wiki.bitplan.com/index.php/Lawn_Sprinkler)
- [Project page](https://wiki.bitplan.com/index.php/nicesprinkler)

## License

Apache 2.0
