It's been a couple years-long process. I use my WiringPi::API to communicate with a Raspberry Pi in the backend, front-ended (API-wise) with my RPi::WiringPi distribution. I then laid on top of it App::RPi::EnvUI as the web-based, single-page front end to the entire system.
I also wrote Async::Event::Interval to handle tasks that need to be run in parallel.
Much of the core is C/XS based, such as the logic that controls the hygrometer, amongst other stuff.
Not too long ago, I put together all of the hardware in a prototype that has 120v relays to control fans, humidifiers, and of course, the grow lamps. I still haven't found the time to put together a blog post about it, as we've got 6" of snow here and its consistently -15 degrees celsius where I now live (northern BC, Canada) so I'm just catching up on wood cutting for heat. I will though, sometime.
|