From 24a4105189443cc7708b2d024318395caf5182d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Rasmussen?= Date: Tue, 18 Jun 2024 08:56:32 +0200 Subject: [PATCH] update README --- .editorconfig | 2 ++ README.md | 95 +++++++++++---------------------------------------- 2 files changed, 22 insertions(+), 75 deletions(-) diff --git a/.editorconfig b/.editorconfig index e09586f..267ab06 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,6 +10,8 @@ insert_final_newline = true [*.md] trim_trailing_whitespace = false +indent_style = space +indent_size = 2 [*.{conf,hcl,json,xml,yml}] indent_style = space diff --git a/README.md b/README.md index 0bdab68..94ac4fc 100644 --- a/README.md +++ b/README.md @@ -2,90 +2,35 @@ Control the temperature of your fermentation process. -# Integrations +## Integrations -* NATS -* Prometheus -* Sentry +- NATS +- Prometheus +- Sentry -# Epics - -## Heater/Cooler - -| Persona | Description | -|----------|--------------------------------------------------------------------------------| -| Brewer | The person responsible for the wort and the fermentation process | -| Operator | The person responsible for the fermentation tank and the system controlling it | - -*As a brewer I need to maintain the wort at a specific temperature so that my fermentation process is predictable* -*As an operator I need an alert if the system can't maintain the temperature, so that I may correct the problem* - -## Ambient temperature - -* Ambient temperature -* Case temperature -* Wort temperature -* Wort gravity - -# User stories - -## Acceptance criteria - -* Given the wort is at or above the requested temperature and the heater is running then stop the heater -* Given the wort is above the requested temperature and the heater is not running then start the cooler -* Given the wort is above the requested temperature - -* Given the wort is too cold and the cooler is running then stop the cooler -* Given the wort is too cold and the cooler is not running then start the heater - -* Given the cooler is running -* Given the cooler is running when then the heater may not start -* Given the heater is running then the cooler may not start -* Given the temperature is - -# Data logging - -* Ambient temperature -* Case temperature -* Wort temperature -* Wort gravity - -* Data is stored in sqlite3 -* Data is scraped and stored in PostgreSQL -* Data is removed from sqlite3 when confirmed in PostgreSQL - -# Metrics +## Metrics Prometheus metrics -* Ambient temperature -* Chamber temperature -* Wort temperature -* Wort gravity -* Heater state -* Cooler state -* Tank pressure +- Ambient temperature +- Chamber temperature +- Wort temperature +- Wort gravity +- Heater state +- Cooler state -# Drivers +## Build -On the Raspberry Pi you'll need to add `dtoverlay=w1-gpio` (for regular -connection) or `dtoverlay=w1-gpio,pullup="y"` (for parasitic connection) -to your /boot/config.txt. The default data pin is GPIO4, but that can be -changed from 4 to x with `dtoverlay=w1-gpio,gpiopin=x`. +The firmware is built for [gokrazy](https://gokrazy.org). Identify the device +for your SD-Card, then run the command below to overwrite it. Ensure that no +partitions are mounted on the card prior to running the command. ```bash -echo dtoverlay=w1-gpio,gpiopin=4,pullup=0 >> /boot/config.txt - -modprobe wire -modprobe w1-gpio -modprobe w1-therm +gok --parent_dir ./deployments --instance fermentor overwrite --full ``` -# Build +## TODO -A Raspberry Pi 1 is used, so we compile for ARMv6. - -```bash -cd cmd/fermentord -GOARCH=arm GOARM=6 GOOS=linux go build -``` +- hardware: Fix the LCD display contrast by adding a 3v3/5v logic level converter +- firmware: Add a way to control the runtime configuration + - use nats to control the runtime parameters