GithubHelp home page GithubHelp logo

uncodead / brewuno Goto Github PK

View Code? Open in Web Editor NEW
89.0 24.0 45.0 121.15 MB

High precision and accuracy, open source, online, extensible and low cost homebrew automation on top of ESP8266 microchip.

Home Page: http://www.brewuno.com

License: Other

CSS 0.24% HTML 1.79% JavaScript 13.18% C++ 75.27% C 4.85% Python 0.18% Processing 4.19% CMake 0.04% Makefile 0.01% Shell 0.25%
platformio ota react ntp precision accuracy esp8266 arduino esp8266-arduino cplusplus synchronization wifi-configurations homebrew pid pid-controller pid-control beer brewbeer

brewuno's Introduction

BrewUNO

High precision and accuracy, open source, online, extensible and low cost homebrew automation on top of ESP8266 microchip.

BrewUNO Pro [novo]

Conforme o licenciamento do BrewUNO, é expressamente proibido a venda ou distribuição comercial deste projeto sem permissão do Bruno Leitão.

(According to the BrewUNO license, the sale or commercial distribution of this project without the permission of Bruno Leitão is prohibited.)

Copyright (C) 2019 Bruno Leitão Todos os direitos reservados. Este projeto é gratuito para uso. É permitido modificar para uso pessoal. Não é permitido distribuir o projeto modificado. A modificação pode ser distribuída apenas através do lançamento oficial do BrewUNO. Não é permitido distribuir comercialmente sem permissão.

(Copyright (C) 2019 Bruno Leitão All rights reserved. This project is free to use. It's permitted to modify for personal use. It's not permitted to distribute the modified project. Modification can be distributed via the official BrewUNO release only. It's not permitted to distribute in a commercial way without permission.)

Caso você tenha comprado o BrewUNO (instalado) de alguma empresa ou fornecedor comercial, por favor, entre em contato comigo no email: [email protected]

(If you have purchased BrewUNO (installed) from any company or commercial supplier, please contact me at email: [email protected])

A versão 'PRO' está disponível com novas funcionalidades para atender a demanda comercial do BrewUNO. Apenas fornecedores cadastrados poderão vender a versão PRO. A versão gratuita/free continuará existindo e sendo mantida, tanto por mim como pela comunidade. Caso você queira comercializar ou comprar a versão PRO envie um email para [email protected]

(The 'PRO' version is avaliabe with new features to meet the commercial demand of BrewUNO. Only registered suppliers can sell the PRO version. The free version will continue to exist and be maintained, both by me and the community. If you want to sell or buy the PRO version send an email to [email protected])

BrewUNO PRO features:

  • Brewfather recipe import / Importação de receita do Brewfather
  • Exporting and importing brewing configurations / Exportação e importação das configurações de brassagem
  • Post-boil heating additions and control (Whirlpool / Hop Stand) / Adições e controle de aquecimento pós-fervura (whirlpool/hop stand)
  • Persistent temperature chart / Gráfico de temperatura persistente
  • Reverse pump relay in settings / Configuração para inverter o relé da bomba
  • Performance improvements / Melhorias de performance

BrewUNO

Features:

  • 100% mobile interface
  • Brew with Start/Stop/Resume
  • Responsive interface with stats
  • PID control to heat mash SSR
  • PID control to heat sparge SSR
  • Mash configurations with different steps/temperature and recirculation
  • Boil configurations with hops additions
  • Configurable WiFi
  • Configurable access point
  • Synchronization with NTP
  • The ability to perform OTA updates
  • 20x4 LCD display
  • Three vessel limited support
  • Up to 5 ds18b20 sensors

BrewUNO

Getting Started

Simple Wiring and construction:

WireUP

This is the easiest way to mount your brewuno, you can improve it!

Installing with Flash Download Tools (video)

  • Download bin files
  • Download Flash Download Tools
  • Setup like this: setup
  • firmware.bin offset: 0x0
  • spiffs.bin offset: 0x00300000
  • Click START button
  • Restart WEMOS
  • Connect to BrewUNO wifi (SSID: BrewUNO, Password: brew-uno).
  • Access AP mode ip: 192.168.4.1
  • Scan and configure your wifi under WiFi menu

Installing & Deployment with VS Code

Prerequisites

You will need the following before you can get started.

  • VS Code
  • PlatformIO - IDE for development with ESP8266 v2.2.2 platform installed
  • NPM - For building the interface (if you want)
  • Bash shell, or Git Bash if you are under windows

Pull the project and add it to PlatformIO as a project folder (File > Add Project Folder).

PlatformIO should download the ESP8266 platform and the project library dependencies automatically.

Once the platform and libraries are downloaded the back end should be compiling.

Edit /data/config/wifiSettings.json with yours wifi configurations.

Under PlatformIO menu: Upload File System image, and then, Upload and Monitor. You will see the ip address to access interface. AP mode ip: 192.168.4.1

Building the interface

The interface has been configured with create-react-app and react-app-rewired so the build can customized for the target device. The large artefacts are gzipped and source maps and service worker are excluded from the production build.

You will find the interface code in the ./interface directory. Change to this directory with your bash shell (or Git Bash) and use the standard commands you would with any react app built with create-react-app:

Download and install the node modules

npm install

Build the interface

npm run build

NB: The build command will also delete the previously built interface (the ./data/www directory) and replace it with the freshly built one, ready for upload to the device.

Running the interface locally

npm start

NB: To run the interface locally you will need to modify the endpoint root path and enable CORS.

The endpoint root path can be found in .env.development, defined as the environment variable 'REACT_APP_ENDPOINT_ROOT'. This needs to be the root URL of the device running the back end, for example:

REACT_APP_ENDPOINT_ROOT=http://192.168.0.6/rest/

CORS can be enabled on the back end by uncommenting the -D ENABLE_CORS build flag in platformio.ini and re-deploying.

Configuration

Standard configuration settings, such as build flags, libraries and device configuration can be found in platformio.ini. See the PlatformIO docs for full details on what you can do with this.

By default, the target device is "esp12e". This is a common ESP8266 variant with 4mb of flash though any device with at least 2mb of flash should be fine. The settings configure the interface to upload via serial by default, you can change the upload mechanism to OTA by uncommenting the relevant lines.

As well as containing the interface, the SPIFFS image (in the ./data folder) contains a JSON settings file for each of the configurable features. The config files can be found in the ./data/config directory:

File Description
apSettings.json Access point settings
ntpSettings.json NTP synchronization settings
otaSettings.json OTA Update configuration
wifiSettings.json WiFi connection settings

The default settings configure the device to bring up an access point on start up which can be used to configure the device:

  • SSID: BrewUNO
  • Password: brew-uno

Thanks to:

  • Eduardo 'Dumpa' Sanches
  • Guilherme Wood
  • Paiakan
  • ESP8266 React - rjwats/esp8266-react

Donation

paypal apoiese

brewuno's People

Contributors

axel-dd avatar der-tommy avatar dumpamob avatar philusha1983 avatar uncodead avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brewuno's Issues

Implementar nas configurações o Layout do teclado.

Permitir configurar layout do teclado, ou então ter opções já prontas, tipo Normal ou Invertido!
Seria muito útil, porque no meu caso por exemplo que utilizo a placa do Eduardo 'Dumpa' o teclado está invertido, Bomba na tecla da esquerda. (Obs.: Ele já me forneceu o arquivo para correção)

Uso simultâneo BOIL + Mash

Na versão 1.0.06 testei novamente a configuração ativando sensor de BOIL pelo pino D4 e o mesmo esta funcionando inclusive com controle PWM. Seria muito útil para sistemas com 3 panelas se pudesse adiantar o inicio da fervura na panela de BOIL enquanto executa a segunda mostura no sistema principal. O que acham?

Salvar receitas

Seria interessante poder salvar algumas receitas, quem faz com repetição e utiliza muitas adições de lupulo essa função seria bem vinda

Falha no boil versão 1.0.10

Olá, estou com uma falha na versão 1.0.10, no momento da fervura a barra do pwm não tem o controle, e quando chega na temperatura de fervura ele continua aquecendo sem desligar a resistência, eu baixo sempre a versão 1.0.10 mas quando instalo no esp no ajuda ele mostra como versão 1.0.9, vcs teriam alguma versão que funciona a opção de fervura com 3 relés?

Wiring for buttons

Could you please provide a diagram or description on how to wire buttons?

Problem getting resource: Failed to fetch

I've built a setup with only wemos D1, power supply (steady, ~5.1v that can hold upto 3A), and a switch to start testing it.
when executing START BOIL and many other cases, the device reboots spontaneously.

I've tested this with several different devices and power supplies and all behave the same.

any ideas?

Adicionar aviso de subida para fervura

Adicionar um aviso ao final do mashout informando que a partir daquele ponto o sistema passa a buscar a temperatura de fervura (Heating to Boil/Seeking Boil), disparando um contador positivo até que atinja temperatura de fervura.

Não cria ssid.

Uso atualmente o CBP, e fiquei muito empolgado com a solução do Brewuno.
Porém, após flash do firmware, conforme instruções, reiniciei o wemos e o ssid Brewuno não aparece. Ao ligar a placa, o led azul da uma picada rápida e mais nada. Se aperto o botão de reset, o led pisca também mas nada de aparecer a rede. Nao consigo entender o problema. Liguei a placa em um carregador de celular e em uma placa do Mazza para Brewmaniac EX é acontece a mesma coisa.

Travamentos e perdd pacotes na rede v1.0.08

Ocorre travamento e perda de pacotes na rede local somente quando algum processo esta rodando (mash/boil), tornando a interface instável, não atualiza e não mostra status corretamente mesmo esperando vários segundos, até um minuto. No entanto ao efetuar uma pausa no processo ou cancelar o processo, todos os campos voltam a atualizar normalmente, cessam as perdas de pacotes na rede e a interface fica novamente responsiva aos clicks e atualizações. Fiz um vídeo e enviei no privado pois aqui só é possível publicar imagens.

Gráfico

Gráfico feito o Brewmanic para acompanhar todo o andamento da brassagem.
Historico de brassagem para guardar o grafico, as rampas, o tempo de cada rampa e o tempo total percorrido.

Usar LDC direto na placa sem i2c externa

Gostaria de usar o LCD direto na placa conforme esse esquema de interface do anexo. Na verdade usando os 4 pinos de i2c que tem na placa funciona, mas ligando direto não dá certo. Ajustei o contraste e não é problema de contraste.

Acredito que tanha que mudar o endereçamento igual se fazia na epoca do BmEX quando usava um determinado CI PCF 8574

montagem
Circuitos

CORREÇÃO PARA VALORES DE OFFSET E SELEÇÃO DE SENSOR DURANTE A FERVURA

in file: BrewUNO\src\BoilKettleHeaterService.cpp

void BoilKettleHeaterService::SetUP()
{
_activeStatus->EnableBoilKettle = _brewSettingsService->EnableBoilKettle;
_activeStatus->BoilTargetTemperature = _brewSettingsService->BoilTemperature;
//if (!_activeStatus->EnableBoilKettle)
// _activeStatus->BoilTemperature = _activeStatus->Temperature;
if (!_brewSettingsService->EnableBoilKettle) {
_activeStatus->BoilSensor = _brewSettingsService->MainSensor;
_activeStatus->BoilTemperature = _activeStatus->Temperature;
} else {
_activeStatus->BoilSensor = _brewSettingsService->BoilSensor;
}
}

Adicionar uma segunda bomba.

Eu penso que seria uma ótima ideia ter a opção de acrescentar uma segunda bomba.
Assim poderíamos deixar o sistema um pouco mais automatizado.

Totalizador de Tempo

totalizador de rampa = tempo da rampa +o tempo de subida.
Total Geral de Tempo = subidas + tempos de rampas
Assim temos o tempo de trabalho e se possível um histórico disso.

Sugestões para implementações

  • preparação para suportar plugins
  • controle de receitas/salvar/imprimir/executar
  • powermeter baseado nas características do equipamento (sem sensores)
  • controle de fermentação
  • controle de torneiras
  • integração com ispindel/plaato e outros hardwares
  • controle de atores adicionais para acionamento de válvulas e outros acessórios inclusive por grupo.
  • controle de resfriamento integrado
  • botões para acionamento de GPIO manual permitindo diversas utilizações
  • log detalhado da brassagem incluindo resumo da receita e gráfico de temperaturas
  • controle para destilação

Feature Request - Exibição de funções dos botões no LCD

Gostaria que a ultima linha do LCD exibi-se as funções dos 4 botões (ao invés de exibir o IP).

A exibição do IP é útil, mas uma vez que já se saiba o IP, é uma informação desnecessária que utiliza um espaço que poderia exibir outras informações.

Uma solução interessante, seria, por exemplo.

  • Exibir o IP apenas nos primeiros segundos após a inicialização (e após, o texto fosse alterado para uma descrição das funções dos botões naquele estágio da brassagem).
  • Adicionalmente, poderia ser adicionado uma função que exiba o IP momentaneamente quando segurado as teclas 1 e 4 por alguns segundos (por exemplo).

Sistema com Wemos D1

Eai Bruno, blz?

Parabéns pelo trabalho!
Estou me baseando no seu projeto para montar a minha controladora.
Mas por um equivoco meu, comprei a Wemos D1 no lugar da Wemos D1 Mini.
Executo o flash na placa e consigo abrir a interface do brewuno, mas os relés e sensores aparentam não estarem sendo controlados. Temperatura, por exemplo, não funciona. O relé mecanico, para bomba , também não é controlado pelos comandos na interface do brewuno.
Como eu não sei praticamente nada do assunto, essa é a minha primeira aventura, fiquei achado que pelas placas serem diferentes a pinagem poderia mudar e nesse caso não estivesse funcionando por eu estar seguindo a pinagem do seu projeto. Enfim, isso pode não fazer sentido algum. Se você puder dar algumas dicas para eu resolver isso agradeço muito!
Abraços

Comportamento estranho do LCD

Meu LCD está com este comportamento estranho.
Liga fica tudo OK, ai do nada começa a aparecer caracteres estranhos.

Alguém tem alguma dica do que pode ser ?

IMG_5651

importar Json do brewfather

Bom Dia Bruno, compre a versão Pro do Brewuno e tenho a versão grátis do brewfather e nele tem uma opção de vc exportar a receita em json porem no pro vc não consegue importar esta receita em json, seria possível implantar esta importação?
desde já agradeço e parabenizo pelo projeto!!!

Pump pre mash

Hi Bruno, I've been using BrewUNO for 1 month, I'm really enjoying it, but I found an error in the mash. When I start the pre mash I leave the pump off but it turns on anyway. I asked a friend who is a programmer to take a look and see if the problem was solved.

Keep the MashService.cpp file, line 40, like this:

         // _pump-> TurnPumpOn ();
         activeStatus-> Recirculation = ((int) steps [0] ["r"]) == 1;
         if (activeStatus-> Recirculation)
             _pump-> TurnPumpOn ();
         else
             _pump-> TurnPumpOff ();

Do you intend to save recipes on BrewUNO?

Regards,
Zac

Adjust duty cycle of the PWM output

Hi, Is there a way to adjust the duty cycle (frequency) of the PMW output? From the datasheet of the ESP8266 the standard frequency is 1kHz. The issue i see is that when using a zero crossing SSR to control the heaters, as the PMW frequency is much higher than the AC voltage freauency (50/60Hz), the control may not be effective enough. I was thing to reduce the PWM frequency to something around 1Hz.
Thanks and congrats for the project.

Programar início da Brassagem

Ferramenta para permitir a programação de um horário para começo, ou até mesmo retardar o início por meio de um timer.

Seria útil para já deixar a água na panela no dia anterior e quando for começar a fazer a cerveja de fato, a água já estar na temperatura de arriar o malte.

pump cycle during heating to target of next step

I noticed that pump cycles are not used during heating transition between step.
This is an issue for me since continuous pumping is drying the heater and thus buring the kettle.
Is it possible to add a pump cycling option during heating between step ?

By the way, thank you so mush for this very cool soft

Controlo de mais bombas

Já que é possível ter as 3 panelas configuradas, penso que seria útil poder adicionar mais bombas.
No meu caso tenho uma bomba em cada panela.

Erro de comunicação

olá, instalei a versão1.0.07, faz a conexão, mas depois começa a dar erro na conexão, voltei para a versão 1.0.02 e está funcionando perfeitamente, o que pode estar ocorrendo?

how to compile the code on VS code + platformio

I´m trying to compile the code but gives me a lot of erros that looks like a a arduinojson version problem, witch version are you using and the version of esp 8266 firmware 2.2.2(im using this version).

Thanks

Aumentar o Tempo na Sacarificação

Teria como colocar uma opção de aumentar o tempo da rampa para quando for feito o teste de iodo e não tenha convertido poder adicionar mais tempo.

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.