Thu, Jan 26, 2017

DCC-05 Temperature Controller

Our homemade microcontroller module that we use for everything

In my Telemetry post last year I described some of the custom boards I’d made based on the ESP8266 microcontroller. This past year I needed to deploy many more variations of these, and making them with perfboard was way too laborious. So I learned KiCad and have started getting my custom boards manufactured for me. OSHPark produces three boards for about twenty bucks, delivered in a week or two. For the same price, DirtyPCBs makes ten copies but they take a month or two to arrive. So I use OSHPark for an initial run, and then DirtyPCBs so I have plenty of extras.

The DCC05 is a board featuring:

  • ESP8266 microcontroller with integrated wifi (module 07 or 12)
  • 3.3v regulator (but also a 5v/VIN bus to most connectors)
  • Two mosfet-driven relay channels, with flyback diode protection
  • Two programmable status LEDs
  • On-board DS18B20 temperature sensor
  • Two One-Wire connectors for other digital sensors (typically more external DS18B20 sensors)
  • One connector for an analog sensor
  • I2C connector that I typically use for a 16x2 LCD
  • 6-pin FTDI connector for serial monitor and programming
  • Three external button connectors

It’s sort of like my own devboard, but it has most things I need for sensor monitoring and simple actuation. Total BOM cost is about $10 CAD, so I can afford to deploy plenty of them with narrow-scoped purposes. They can communicate with each other to share data and become a sort of distributed cidery controller mesh. And the best part is they all effortlessly send their telemetry data up to our InfluxDB/Grafana server.

Want a few of these boards to play with? I’ve shared them so you can order them right from OSHPark.

Here are some of the deployments I’ve done so far…

Electric Pasteurizer

This one actuates heating elements via solid-state relays. It monitors water temperature as well as in-bottle temperature. It runs a pasteurization workflow program that integrates PU (pasteurization units) and sounds a buzzer when the desired number is reached.

Firmware on GitHub

Brite tank monitor

This one has a thermowell temperature sensor as well as an analog headspace pressure transducer on the tank. It’s monitoring only for now, but I plan to add some solenoid valves to actuate the carbonation stone and possibly a headspace blow-off for burping the tank.

I’ve also modified a small weight scale to support I2C, and considered keeping the CO2 cylinder on it during carbonation as an additional measure of carbonation progress.

Firmware on GitHub

Glycol chiller

I replaced the thermostat in our glycol chiller with one of these boards and a relay to run the compressor. It has a temperature probe in the glycol reservoir, plus some in-line sensors on the send and return lines for the brite tank. I thought these inline sensors were a pretty neat idea, but in practice they are not very accurate due to lack of insulation from the ambiant air. They are still useful for relative measurements though, and can show the progress of chilling cider in the brite tank.

Firmware on GitHub

I installed a second one like this at Vancouver Hack Space for the laser cutter’s water-chiller loop.

Basic temperature sensor

I have a few of these boards with just a single temperature probe, and I can stick them anywhere we want to monitor temperatures, such as storage rooms or rooms temporarily acting as storage rooms (seems to happen a lot!).

Firmware on GitHub

Sous vide controller

I used one of these board to convert an old rice cooker into a sous vide with PID control. I made a video about it!

Firmware on GitHub

Posted on Thu, Jan 26, 2017 by Luke Cyca