GithubHelp home page GithubHelp logo

zultron / goldibox Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 20.76 MB

Goldibox. Not too hot, not too cold. Insulated box with Peltier junction + PocketBeagle + Machinekit temperature control

Python 37.67% Shell 3.00% QMake 0.36% QML 49.63% C++ 1.77% Makefile 7.20% HTML 0.38%
machinekit peltier-junction temperature pocketbeagle beaglebone incubator

goldibox's Introduction

Goldibox. Not too hot, not too cold.

The Goldibox is an insulated box that maintains temperature using a thermoelectric device and a controller. Originally conceived to incubate biological organisms that thrive best within a particular maximum/minimum temperature range, it can both heat and cool to avoid extremes, but still allow variability within a habitable "Goldilocks zone": not too hot, not too cold, but just right.

The Goldibox's smart controller exposes a remote, network-connected graphical interface for setting temperatures, checking current state, and viewing history through time series graphs. Anyone may modify the open-source control to add new features.

Components

Goldibox

The Goldibox is built from a portable fridge with a Peltier junction that can be switched either to cool or to heat by reversing the input voltage.

The Goldibox controller, a tiny PocketBeagle computer that runs Debian, fits in the cramped space next to the Peltier junction fan and heat sink. It senses internal and external temperatures through a pair of thermistors attachd to its analog inputs, and it switches the Peltier junction and fan through an H-bridge and a MOSFET, respectively, connected through GPIO digital output pins. See BOM.md for a list of hardware components, and fritzing/goldibox.fzz for connecting them.

The Machinekit software runs the configuration in this repository: some python user-space components in the bin/ directory, and HAL configuration in the hal/ directory. The goldibox-control component decides whether to switch the Peltier junction to cool, heat, or off, depending on the measured temperature compared to the user's Goldilocks temperature settings. The goldibox-logger component logs to a RRD database, from which time series charts are generated.

The goldibox-control component exposes a remote UI, used by the MachinekitClient software, which can be downloaded for Android from the Google Play store, and for Linux, Mac OS X and Windows directly from the QtQuickVCP project. The configuration in the qml directory defines the simple user interface with thermostat controls for the "too hot" and "too cold" zones, readouts for internal and external temperature, a power control to enable and disable the Goldibox, and a time series chart showing temperatures over the last day.

Running

Follow the instructions at machinekit.io to download and install a mini-SD card image with Machinekit.

Log into the BeagleBone, clone this repository, and cd into the repository directory.

On the PocketBeagle, start the Goldibox control from the command line (load the overlay file for non-system installs):

# Install minimal apache and other config
sudo make install MININSTALL=1
# Start control
bin/goldibox -o

The Goldibox should now be ready for control. Start the MachinekitClient and open the Goldibox app.

Alternatively, run a Goldibox simulated control and GUI in a Docker container from the command line:

# Start the container
docker/qqvcp.sh
# Install minimal apache and other config
sudo make install MININSTALL=1
# Start control
bin/goldibox &
# Start GUI
MachinekitClient &

The Goldibox may be installed to the system so that it is run at every boot:

sudo make install
sudo systemctl daemon-reload
sudo systemctl enable goldibox
sudo systemctl start goldibox

The apache2 package must be installed and the web server running for the time-series chart to work.

Installing the PocketBeagle

See the jumble of notes in NOTES.md

goldibox's People

Contributors

zultron avatar

Stargazers

 avatar

Watchers

 avatar  avatar

goldibox's Issues

Fix setting persistence

Settings are only saved when cleanly shutting down Goldibox. However, it's easiest to simply unplug the Goldibox to shut it down, and then settings are lost.

Settings should be saved at the time they're changed, not at clean system shutdown, which may never happen.

Add thermistor error correction

Thermistors may be off a few degrees out of the box. Add configurable error parameters, added to value, to calibrate both internal and external sensors.

Add PID component to temp control

Currently, the temp control is a simple switch, to which hysteresis can be added. The temperature fluctuates above e.g. the min setting, +/- one degree, averaging one degree above the setting. The fluctuation and chronic error might be optimized with a PID control.

Add fan delay

There should be a configurable delay for the fan. With zero hysteresis and the inherent instability of the thermistors, the Peltier may switch on and off quickly. That's ok, but the fan should stay on a bit longer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.