https://github.com/chasmack/seedling
Seedling heat mat controller
https://github.com/chasmack/seedling
1-wire bang-bang circuit-python ds18b20 ds2482 flask-application systemd-service temperature-control
Last synced: about 2 months ago
JSON representation
Seedling heat mat controller
- Host: GitHub
- URL: https://github.com/chasmack/seedling
- Owner: chasmack
- Created: 2020-03-13T23:31:25.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-06-07T21:26:17.000Z (almost 5 years ago)
- Last Synced: 2025-02-12T21:19:16.085Z (3 months ago)
- Topics: 1-wire, bang-bang, circuit-python, ds18b20, ds2482, flask-application, systemd-service, temperature-control
- Language: Python
- Size: 401 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Seedling Control
A bang-bang temperature controller for seedling heat mats.
Implements four independent channels of control.
Each channel uses a DS18B20 1-wire temperature sensor for feedback.
Additional DS18B20 sensors can be configured to monitor auxiliary temperatures.
A web interface is provided to monitor and adjust temperatures.
The top level monitor process runs as a SYSTEMD(1) service.### Hardware
The system runs on a Raspberry Pi Zero. The Pi's I2C port controls an MCP23008 8-bit I/O expander
and a DS2482-100 1-wire master. The I/O expander in turn drives a quad opto-coupled relay module.
The 1-wire master controls four DS18B20 temperature sensors running parasitic power mode.
Additional DS18B20 sensors can be added. The I/O expander and I2C master both run on +5v power
to reduce load on the Pi's 3v3 supply. An Adafruit BSS138 4-channel bi-directional level shifter
is used to convert the Pi's 3v3 I2C bus to run with the 5v I/O.### Control Process
A simple control loop reads the DS18B20 temperature sensors and controls the relay ports.
A command queue allows control channels to be enabled/disabled and the setpoint adjusted.
A response queue acknowledges commands and provides system status.### Web User Interface
A Flask web app displays the system status and allows control channels to be adjusted.
---
