PuLogger - Cheap DIY monitoring and control for pumidors.

Post Reply
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Sat Dec 16, 2017 9:20 pm

tl;dr is that I'm developing a free open-source GUI for Windows (and probably Linux) that allows users to monitor temp/humidity, log T/RH over time and produce graphs easily, provides alarm functionality for too-high/too-low values and (in future) controlled heating. The devices themselves use inexpensive parts that are readily available and only require basic soldering skills to assemble.


EDIT: Pedant has come across these base stations and sensors which provide most of the functionality I had planned for PuLogger (notably a smartphone app, webserver functionality and phone/email alerts for alarm conditions) and at $80 + $13 per field device, it's nowhere near prohibitively expensive.

Given that humidity and (with a little testing) temperature can be controlled passively and that there seems to be a robust alarm system, this might be an outright superior solution.


So I've had a project in the works for the last few weeks that might be of interest to fellow pu'er addicts enthusiasts. I want to store my pu in a reasonably warm and humid environment, without having to monitor it too frequently, but also without risking coming back to a pile of compost and mildew. To that end I've been trying to sort out a wireless temperature/humidity-control system with computer connectivity and alarms, and this is what I've come up with.

For reference, here's my current setup. Later on I'll be mounting the controller, humidity pack and sensor permanently (and adding a sensor so I can measure at the top and bottom of the pumidor.

Image

Image

If you have any questions or suggestions (about features or if you think something could be done better), throw them out here.

The bare-bones GUI currently looks like this

Image

And here's an example of some graphs produced in plot.ly in a couple of minutes (disturbance resulted from opening the door to grab some tea. Eventually I'd like to incorporate live graphing with something like Grafana, but that's pretty high-cost and low-priority at the moment.

Image

Image

The base controller and satellites are Arduino Nano/Pro Mini microprocessors running nRF24L01+ radio modules and should be easily capable of running for long periods on 2xAA batteries. The base station interfaces with a PC via USB serial connection and sends data to the PC as CSVs. Software on the PC interprets the CSVs and provides monitoring and alarm functionality through a GUI, and generates CSV datalogs (for easy import into Excel/plot.ly/etc).

Image

The GUI is bare-bones at the moment and, but will eventually be given the UXD treatment and include a system-tray widget which shows temperature, humidity and alarm status, and also produces an audible alarm. Variables such as temp setpoint, alarm setpoints, number of satellites and low temp/humidity alarm grace periods will eventually be user-settable via the GUI (rather than in the device source code). All code is C++.

The base sends an alarm if any satellite fails to check in after a set period of time (probably around 15-60 minutes in practice) and the PC software will (in future) generate an alarm if it doesn't receive a communication from the base in a set period of time - this provides timely notification in the event of a satellite losing power, suffering from radio inteference, or locking up.

Temperature and humidity measurement is provided by a Bosch Sensortec BME280 - cheaper sensors are available, but the BME280s are very fast and very accurate (for our needs) and I'm still waiting on a couple of the cheaper sensors that are supposed to be decent.

Active temperature control is not currently implemented, but in future the system will control a small heating pad (15-25W for a minifridge) using a PID algorithm. Currently, I'm using always-on heating that happens to provide just the right amount of heat to hold a steady 28degC.

Humidity control was initially going to be controlled by the controller, but it's hard to implement a digitally-controlled humidification system and it turns out there's a much better passive option (salt packs, which I'll cover in another post).

If anyone's interested in building their own, here are the Git repos for the devices and the GUI - core monitoring functionality is there (minus a visual indicator for setpoint alarms, which I'll be implementing tonight), so it's developed enough to be useful. The base and satellites share code and are given a unique device ID (0 for base, 1-5 for the satellites). This is stored in the first byte of persistent EEPROM memory, and set using utilSetDeviceID (load utility sketch to device, wait until the desired serial message is seen, reset and, within 20 seconds of reset, download the regular sketch). The software for device and PC will always be free, open-source and available as long as GitHub is.

(With Victoria's blessing) I'm considering offering parts kits and/or pre-soldered setups for sale to recoup some of the development costs. This will depend entirely on y'all's level of interest and what people would be willing to pay for something like this (bearing in mind that it would be a DIY kit with the soldering done and access to technical support, not a polished commercial product). You'd likely have to sort out a housing yourself, if desired. Reach out if that sounds like something you'd want.

Code included from the following open-source works:

TMRh20's RF24 libraries - http://tmrh20.github.io/RF24/index.html
colin80's EEPROMAnything - https://github.com/collin80/EEPROMAnything
Manash Kumar Mandal's SerialPort - https://blog.manash.me/serial-communica ... 8710186498
BoschSensortec's BME280 driver library - https://github.com/BoschSensortec/BME280_driver
Last edited by Atlas on Tue Dec 19, 2017 5:58 pm, edited 1 time in total.
User avatar
CWarren
Posts: 159
Joined: Tue Oct 10, 2017 1:36 pm

Sat Dec 16, 2017 11:11 pm

To boldly go where no pu-head has gone before...

Seriously though...wow. This incorporated into a complete working pumidor setup would probably go crazy on gofundme or similar investment sites.
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Sat Dec 16, 2017 11:30 pm

You mean like a Kickstarter-type deal? Honestly I considered it, but I don't know enough about organising electronics manufacturing at any scale to hold myself responsible for any significant amount of other people's money.

Part of the beauty of something like this is that you can put it in any given container (given a sufficiently-decent seal and thermal insulation) and it'll work. No reason people can't just grab a 150qt Rubbermaid cooler off Amazon and stick one of these in a corner. Can you imagine trying to ship a humidor? :P
User avatar
CWarren
Posts: 159
Joined: Tue Oct 10, 2017 1:36 pm

Sat Dec 16, 2017 11:42 pm

Atlas wrote:
Sat Dec 16, 2017 11:30 pm
You mean like a Kickstarter-type deal? Honestly I considered it, but I don't know enough about organising electronics manufacturing at any scale to hold myself responsible for any significant amount of other people's money.

Part of the beauty of something like this is that you can put it in any given container (given a sufficiently-decent seal and thermal insulation) and it'll work. No reason people can't just grab a 150qt Rubbermaid cooler off Amazon and stick one of these in a corner. Can you imagine trying to ship a humidor? :P
Good point. I’m thinking a “build your own pumidor kit - only two hundred pieces” type thing might be a bit much. :lol:
User avatar
Victoria
Admin
Posts: 644
Joined: Sat Sep 30, 2017 3:33 pm
Location: Santa Monica, CA
Contact:

Sun Dec 17, 2017 12:43 pm

Atlas I really want to commend you for such an interesting post and that you want to put it out there. The widget is cool too. Maybe down the line you will team up with a business head :) .
User avatar
pedant
Admin
Posts: 326
Joined: Fri Sep 29, 2017 4:35 am
Location: Chicago

Tue Dec 19, 2017 3:04 pm

nice writeup. this is something i've thought a decent amount about but never got around to doing.
it would be fun to bounce ideas in the chat room if you have some free time.
Atlas wrote:
Sat Dec 16, 2017 9:20 pm
Humidity control was initially going to be controlled by the controller, but it's hard to implement a digitally-controlled humidification system and it turns out there's a much better passive option (salt packs, which I'll cover in another post).
i wrote something that i was planning on posting later because i don't have pics yet, but you have forced my hand :lol:
viewtopic.php?f=36&t=177
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Tue Dec 19, 2017 3:35 pm

pedant wrote:
Tue Dec 19, 2017 3:04 pm
i wrote something that i was planning on posting later because i don't have pics yet, but you have forced my hand
I've gotta cop to some choice language when I saw you'd posted it :lol: (Though your coverage was significantly more rigorous than mine would have been).

I look forward to having a chat!
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Mon Feb 12, 2018 3:05 am

Minor update: Everything's working now, active heating/humidity control is implemented and working perfectly. Temperature is controlled to within 0.1degC and humidity recovers very quickly after the door is opened/closed, at which point the fan will shut off

I've also put a desktop receiver together for PC-less remote monitoring and alarms.

Image
Image
Image

Next on the list is programming the OLED display and adding physical pushbuttons for temperature and humidity setpoint adjustment, as well as storage of these setpoints in EEPROM.
User avatar
OldWaysTea
Vendor
Posts: 72
Joined: Tue Dec 05, 2017 3:01 pm
Location: San Jose, California
Contact:

Mon Feb 12, 2018 10:10 am

Looking cool!

I have an electronics background, and worked on sensor systems for a few years. If you have any questions or want to bounce ideas off me; I'd be happy to participate. :)
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Mon Feb 12, 2018 12:41 pm

OldWaysTea wrote:
Mon Feb 12, 2018 10:10 am
-snip-
Thanks, I appreciate it! I am (was) an HVAC/SCADA tech, so I've got a reasonable handle on the stuff I'm currently trying to do with it, but if you have any ideas or see something that could be done better, sing out for sure!

EDIT: So I can find it later, https://www.pcbway.com/
Atlas
Posts: 108
Joined: Mon Nov 27, 2017 7:09 pm
Location: SGV, Los Angeles CA

Tue Feb 13, 2018 11:26 pm

Great success. Code is complete for the desktop unit, and everything is cleaned up nicely.

Image


Image


Image


Image
Post Reply