NAME
App::RPi::EnvUI - One-page asynchronous grow room environment control web application
SYNOPSIS
cd ~/envui
sudo plackup bin/app.pl
Now direct your browser at your Pi, on port 3000:
http://raspberry.pi:3000
DESCRIPTION
*** THIS IS A CPAN Testers RELEASE ***
v1.00 will be the first stable release ready for production. Anything less than v1.00 is an unstable, unreliable cut, and has not been proven out. You have been warned.
This distribution is alpha. It does not install the same way most CPAN modules install, and has some significant requirements Most specifically, the wiringPi libraries, and the fact it can only run on a Raspberry Pi (except for unit testing).
When installed, it'll install all of the relevant information in a directory named envui
in your home directory.
Test coverage is only about 50%, and there's really no documentation as of yet.
This is my first web app in many, many years, so the technologies (jQuery, Dancer2 etc) are brand new to me, so as I go, I'll be refactoring heavily as I continue to learn.
WHAT IT DOES
Reads temperature and humidity data via a hygrometer sensor through the RPi::DHT11 distribution.
It then allows, through a one-page asynchronous web UI to turn on and off 120/240v devices through buttons, timers and reached threshold limits.
For example. We have a max temperature limit of 80F. We assign an auxillary (GPIO pin) that is connected to a relay to a 120v exhaust fan. Through the configuration file, we load the temp limit, and if the temp goes above it, we enable the fan via the GPIO pin.
To prevent the fan from going on/off repeatedly if the temp hovers at the limit, a minimum "on time" is also set, so by default, if the fan turns on, it'll stay on for 30 minutes, no matter if the temp drops back below the limit.
Each auxillary has a manual override switch in the UI, and if overridden in the UI, it'll remain in the state you set.
We also include a grow light scheduler, so that you can connect your light, set the schedule, and we'll manage it. The light has an override switch in the UI, but that can be disabled to prevent any accidents.
...manages auto-feeding too, but that's not any where near complete yet.
AUTHOR
Steve Bertrand, <steveb@cpan.org<gt>
LICENSE AND COPYRIGHT
Copyright 2016 Steve Bertrand.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.