Prezados,
Alguém já usou o PID autotune do BMEX?
Abs
sim, qual a dúvida?
Opa Dumpa.
Gostaria de saber qual a melhor forma de utilizar.
A quantidade que uso para infusão é de uns 25 litros.
Coloco essa quantidade e configuro o autotune para a temperatura de infusão?
Quanto Tempo demora?
Funciona mesmo? Vale o tempo gasto?
Obrigado.
O autotune funciona bem sim, no meu equipamento leva cerca de 10 minutos.
Se fizer só com água o resultado já fica muito bom, mas para melhores resultados recomendo que faça exatamente da forma que costuma ser sua brassagem, com a mesma quantidade de água e malte.
Por exemplo, no dia que for brassar põe a água e o malte na panela, segue as instruções do dumpa programando o autotune para 50ºC, depois segue normalmente para suas rampas de sacarificação. Vai acrescentar muito pouco ao seu tempo de brassagem e seu aparelho vai ficar bem ajustado.
Opa,
Você diz para colocar o malte com a agua fria e setar para 50 graus?
Ou esquento até 50 graus, coloco o malte e seto o autotune?
Isso não irá afetar a densidade pré fervura, etc?
Obrigado!
Alguém pode ajudar?
Seto para 50 graus e coloco o malte. Ligo o autotune e depois avanço para a temp de infusão. Isso eu entendi.
A minha dúvida é se isso vai alterar alguma coisa na receita do beersmith.
Obrigado.
Bom dia, pessoal.
Alguém sabe o que significam os números 2, 1, 8 e 4 abaixo?
Consegui alterar os mapeamentos para a bomba, sensor e heater para a placa do Mazza mas somente os botões não estão funcionando.
Na placa dele, os botões foram associados aos pinos P1, P2, P3 e P4. Originalmente seriam nos P0, P1, P2 e P3.
Achei que esses números eram os pinos do PCF8574 mas aparentemente não é isso.
Refiz o código pois troquei o D1 por um D1 pro.
#define ButtonUpPin 2 // P1
#define ButtonDownPin 1 // p0 NODEMCU_PIN_D4
#define ButtonStartPin 8 //P3 NODEMCU_PIN_D5
#define ButtonEnterPin 4 //P2 NODEMCU_PIN_D6
Abs,
Poderia me passar as alterações que você fez no código para funcionar com a placa do mazza?Já consegui!
Abs,
Poderia me passar as alterações que você fez no código para funcionar com a placa do mazza?
Eu até identifiquei algumas, mas queria confirmar antes de alterar e por na placa
Segue o conteúdo do pins.h
Peço por favor que revise e teste o funcionamento. Não me responsabilizo por possíveis problemas ocasionados. Abs!
#ifndef PINS_H
#define PINS_H
#include <pcf8574_esp.h>
/*
#define NODEMCU_PIN_A0 17
#define NODEMCU_PIN_D8 15 Buzzer
#define NODEMCU_PIN_D1 5 [I/O]SCL // I2C
#define NODEMCU_PIN_D2 4 [I/O]SDA // I2C
#define NODEMCU_PIN_D3 0
#define NODEMCU_PIN_D4 2
#define NODEMCU_PIN_D5 14 Pump
#define NODEMCU_PIN_D6 12 Sensor
#define NODEMCU_PIN_D0 16 Heater
#define NODEMCU_PIN_D7 13 AuxHeater
*/
#define BUTTON_USE_EXT true
#define HEATER_USE_EXT false
#define PUMP_USE_EXT false
#define BUZZER_USE_EXT false
//#define PUMP_INVERTED_LOGIC true
// with all address pins grounded, PCF8574 is 0x20 while pCF8574A is 0x38
#define PCF8574_ADDRESS 0x20
//#define PCF8574_ADDRESS 0x38
//Using ESP8266 PINs as input seems to be a good idea
#define I2C_SCL NODEMCU_PIN_D1
#define I2C_SDA NODEMCU_PIN_D2
#define SensorPin NODEMCU_PIN_D6
#define AuxHeatControlPin NODEMCU_PIN_D7
// the following pin are group into Output & Input
// Input is for button, while output is for heater,pump, and buzzer.
#if BUTTON_USE_EXT !=true
#define ButtonUpPin NODEMCU_PIN_D3
#define ButtonDownPin NODEMCU_PIN_D4
#define ButtonStartPin NODEMCU_PIN_D5
#define ButtonEnterPin NODEMCU_PIN_D7
#else
#define ButtonUpPin 2 // P1
#define ButtonDownPin 4 // p2 NODEMCU_PIN_D4
#define ButtonStartPin 8 //P3 NODEMCU_PIN_D5
#define ButtonEnterPin 16 //P4 NODEMCU_PIN_D6
#endif
#if EnableLevelSensor
#define LevelSensorOnIoExpander false
#if LevelSensorOnIoExpander
#define LevelSensorIOExpPin 32 //P5
#else
#define LevelSensorPin NODEMCU_PIN_D7
#endif
#define SensorNormalCloseOnNotFull true
#endif
#if PUMP_USE_EXT != true
#define PumpControlPin NODEMCU_PIN_D5
#else
#define ExPumpControlPin 5
#endif
#if HEATER_USE_EXT != true
#define HeatControlPin NODEMCU_PIN_D0
#define ExHeatControlPin 3
#endif
#if BUZZER_USE_EXT != true
#define BuzzControlPin NODEMCU_PIN_D7
#else
#define ExBuzzControlPin 6
#endif
#if (BUTTON_USE_EXT == true) || (HEATER_USE_EXT == true) || (PUMP_USE_EXT == true) ||( BUZZER_USE_EXT == true)
PCF8574 pcf8574(PCF8574_ADDRESS,I2C_SDA, I2C_SCL);
#endif
// Buttons are INPUT
// byte btnReadPin(byte p){ return digitalRead(p);}
#if BUTTON_USE_EXT !=true
void btnPrepareRead(void){}
#define btnReadPin digitalRead
#else
byte _portvalue;
void btnPrepareRead(void)
{
_portvalue=pcf8574.read8();
}
byte btnReadPin(byte pin)
{
return (_portvalue & pin);
}
#endif
// Heater, Pump, Buzz are OUTPUTs
inline void setHeaterOut(byte v)
{
#if HEATER_USE_EXT != true
digitalWrite (HeatControlPin, v);
#else
pcf8574.write(ExHeatControlPin,v);
#endif
}
inline void setPumpOut(byte v)
{
#if PUMP_USE_EXT != true
#if PUMP_INVERTED_LOGIC
digitalWrite (PumpControlPin, (v==LOW)? HIGH:LOW);
#else
digitalWrite (PumpControlPin, v);
#endif
#else
pcf8574.write(ExPumpControlPin,v);
#endif
}
inline void setBuzzOut(byte v)
{
#if BUZZER_USE_EXT != true
digitalWrite (BuzzControlPin, v);
#else
pcf8574.write(ExBuzzControlPin,v);
#endif
}
#if SpargeHeaterSupport == true
inline void setAuxHeaterOut(byte v)
{
digitalWrite (AuxHeatControlPin, v);
}
#endif
#if SecondaryHeaterSupport == true
inline void setSecondaryHeaterOut(byte v)
{
digitalWrite (AuxHeatControlPin, v);
}
#endif
void initIOPins(void)
{
#if (BUTTON_USE_EXT == true) || (HEATER_USE_EXT == true) || (PUMP_USE_EXT == true) ||( BUZZER_USE_EXT == true)
// pcf8574.begin();
#endif
#if BUTTON_USE_EXT !=true
pinMode (ButtonUpPin, INPUT_PULLUP);
pinMode (ButtonDownPin, INPUT_PULLUP);
pinMode (ButtonStartPin, INPUT_PULLUP);
pinMode (ButtonEnterPin, INPUT_PULLUP);
#else
_portvalue=0;
#endif
#if HEATER_USE_EXT != true
pinMode (HeatControlPin, OUTPUT);
#endif
setHeaterOut(LOW);
#if PUMP_USE_EXT != true
pinMode (PumpControlPin, OUTPUT);
#endif
setPumpOut(LOW);
#if BUZZER_USE_EXT != true
pinMode (BuzzControlPin, OUTPUT);
#endif
setBuzzOut(LOW);
#if SpargeHeaterSupport == true
pinMode (AuxHeatControlPin, OUTPUT);
setAuxHeaterOut(LOW);
#endif
#if EnableLevelSensor
#if LevelSensorOnIoExpander != true
pinMode (LevelSensorPin, INPUT_PULLUP);
#endif
#endif
}
#if EnableLevelSensor
// close/connected/ground: not full
// open/disconnected/V+: full
#if SensorNormalCloseOnNotFull
#if LevelSensorOnIoExpander
bool isWaterLevelFull(void){
// _portvalue is read for button every loop cycle
return (_portvalue & LevelSensorIOExpPin) !=0;
}
#else
bool isWaterLevelFull(void){
return digitalRead(LevelSensorPin) != 0;
}
#endif
#else
#if LevelSensorOnIoExpander
bool isWaterLevelFull(void){
// _portvalue is read for button every loop cycle
return (_portvalue & LevelSensorIOExpPin) ==0;
}
#else
bool isWaterLevelFull(void){
return digitalRead(LevelSensorPin) == 0;
}
#endif
#endif //#if SensorNormalCloseOnNotFull
#endif // EnableLevelSensor
#endif
Bom dia pessoal. Ontem terminei a montagem de um controlador brewmaniac. Estou usando a versão 49 com sparge e antes de conectar a bomba e as resistências, me surgiu algumas dúvidas!
Primeira: Usando o BM no modo auto, percebi que ele liga a pump e heat e não liga o sparge, mas quando dou pause, ele desliga o heat e pump e liga o sparge. Não minha concepção, ele deveria ligar os 3, para que ao fim da mostura a agua do sparge já esteja na temperatura. Como não deixei muito tempo ligado, depois de um tempo ele liga a sparge?
Segunda: Usando o BM no manual, não vi um botão para ligar/desligar o sparge
Obrigado a todos!
Dumpa, então enquanto a temperatura sobe a sparge fica desligada, chegou no setpoint, a sparge liga. Depois ficam alternando para manter ambas na temperatura correta?Resistência principal e resistência de sparge nunca atuam juntas, faz parte do projeto ser assim, sempre na pausa da principal a de sparge é acionada. No modo auto até o final da mostura a temperatura de sparge será atingida, não se preocupe. Modo manual não tem sparge.
Dumpa, então enquanto a temperatura sobe a sparge fica desligada, chegou no setpoint, a sparge liga. Depois ficam alternando para manter ambas na temperatura correta?
Obrigado!
Pessoal, bom dia!
Tenho em casa alguns ESP e resolvi montar um Brewmaniac com um deles.
Estou usando um ESP-07, que aparentemente tem 8Mbit de memória (1Mbyte)
Eu consegui gravar o firmware da versão 0.4.9, montei o display LCD via i2c está funcionando (mostrando o IP e a tela inicial), consegui acessar pela rede que ele cria "bm" e configurar o acesso a minha rede de casa.
Acontece que no momento que acesso ele, por meio do PC conectado a internet, é necessário atualizar o javascript/HTML
Neste momento, ocorre um erro que não foi possível descompactar o arquivo e não consigo prosseguir.
Perguntas
1- Consigo utilizar o ESP-07 com ele? Qual a memória mínima para rodar?
2- Qual a posição de memória que devo gravar o binário? É a partir do endereço 0x0000000?
3- Preciso gravar apenas o binário do brewmaniac direto, ou precisa fazer um conjunto de mais um outro binário? (Por exemplo, o do nodemcu)
4- Eu já fiz um procedimento de resetar a flash pela IDE do arduino. Tem algum outro procedimento antes de gravar o binário?
Alguém consegue me ajudar?
Fico muito agradecido pessoal!!
Depois que você acessa via modo AP, a rede bm pelo ip 192.168.4.1 a primeira tela deve ser a de configuração do wifi, configure ele na sua rede, feito isso vai ter um novo IP, desconecte da rede bm e acesse esse IP da sua rede, só após isso fará a atualização dos arquivos pois agora sim ele tem acesso a internet para fazer o download dos mesmos.
Depois que você acessa via modo AP, a rede bm pelo ip 192.168.4.1 a primeira tela deve ser a de configuração do wifi, configure ele na sua rede, feito isso vai ter um novo IP, desconecte da rede bm e acesse esse IP da sua rede, só após isso fará a atualização dos arquivos pois agora sim ele tem acesso a internet para fazer o download dos mesmos.
Dumpa, obrigado pela resposta!
Sim, é exatamente o que eu estou fazendo, saindo da rede "bm" após configurar o login e senha e acessando o ESP pelo meu roteador, com a conexão da internet.
A questão mesmo é que ele pede para atualizar os arquivos, inicia o carregamento e ocorre a falha... Eu não estou no momento com ele em mãos para dar um print da tela...
Estou meio inclinado a pensar que a memória interna não seja suficiente para essa aplicação... Você já experimentou com ESP de memória de 8Mbit ?
Obrigado!!
Eduardo
Pessoal, bom dia!
Tenho em casa alguns ESP e resolvi montar um Brewmaniac com um deles.
Estou usando um ESP-07, que aparentemente tem 8Mbit de memória (1Mbyte)
Eu consegui gravar o firmware da versão 0.4.9, montei o display LCD via i2c está funcionando (mostrando o IP e a tela inicial), consegui acessar pela rede que ele cria "bm" e configurar o acesso a minha rede de casa.
Acontece que no momento que acesso ele, por meio do PC conectado a internet, é necessário atualizar o javascript/HTML
Neste momento, ocorre um erro que não foi possível descompactar o arquivo e não consigo prosseguir.
Perguntas
1- Consigo utilizar o ESP-07 com ele? Qual a memória mínima para rodar?
2- Qual a posição de memória que devo gravar o binário? É a partir do endereço 0x0000000?
3- Preciso gravar apenas o binário do brewmaniac direto, ou precisa fazer um conjunto de mais um outro binário? (Por exemplo, o do nodemcu)
4- Eu já fiz um procedimento de resetar a flash pela IDE do arduino. Tem algum outro procedimento antes de gravar o binário?
Alguém consegue me ajudar?
Fico muito agradecido pessoal!!
ESP-07 não tem memória de Spiffs suficiente, se não me engano ela é a responsável pelos htmls.
Tem algumas versões pra Sonoff, tente algum delas.
desculpe me perguntar mais quais as medidas dos parafusos que usou e quais separadores usados nas placas de lcd e interface?Hoje finalmente conclui o meu controlador BrewManiacEx
Utilizei a PCB do @dumpa que além de facilitar bastante minha vida ainda pude trocar várias ideias bastante elucidativas com ele.
Montei meu projeto para não ultrapassar os 20A e utilizar uma tomada 220V comum, para isso utilizarei uma resistência de 3500W. O método que utilizo é single vessel numa panela n40.
Na lateral deixei:
- 1 conector P4 energizado o tempo inteiro em 12V (fiquei com preguiça de por uma chave liga/desliga pq é muito chato cortar a caixa) onde ligarei uma bomba para circular água com gelo pelo chiller de imersão durante o resfriamento;
- 1 saída para o sensor de temperatura (conector mike);
- 1 tomada para conectar uma bomba MP-15R e realizar a recirculação durante a brassagem;
- 1 cabo de 3 x 2,5mm que alimentará a resistência da panela e será ligada a esta por um conector Wago Winsta 770 (seguro, prático e permite até 25A);
- 1 cabo de 3 x 4,0mm para alimentar o sistema
Dentro do controlador a única coisa que fiz um pouco diferente dos demais, mas que acho essencial para o eletricista-cervejeiro amador, foi instalar um interruptor diferencial residual (IDR) para desligar o sistema em caso de corrente de fuga. Custou 90 reais, mas pode salvar uma vida.
Seguem as fotos:
View attachment 122373 View attachment 122374 View attachment 122375 View attachment 122376 View attachment 122377 View attachment 122378 View attachment 122379 View attachment 122380 View attachment 122381 View attachment 122382
Pessoal, estou realizando a montagem de um sistema utilizando o Brewmaniac com um wemos D1, porem estou passando por 2 problemas e gostaria de saber se já aconteceu com voces.
Consigo passar tranquilamente o .bin para o d1, porem o modo de conexão pela rede é muito estranho, eu fiz tudo certinho como foi citado varias vezes aqui nesse post, conecetei na rede bm, coloquei os dados da rede, conecetei na rede padrão e fiz o upload nos arquivos, a principio tudo certo, conssigo conectar no controlador, porem quando eu conecto, ele fica reiniciando e eu não consigo utilizar nenhuma função, só consigo utilizar quando eu fecho o navegador.
O outro problema está relacionado ao upload via VS code utilizando o PlataformIO, preciso alteraruns pinos no codigo e adicionar um sensor de nivel, porem o codigo não compila. A principio achei que era algo de errado que fiz no codigo, mas não, nem o codigo puro, padrão, não compila. Inclsuive testei todos os env_default (development,spargeheater, nodemcuv2, etc...)
Alguem já passou por algum desses problemas?
Consegui resolver a parte do upload via VS code, apenas extrai a pasta com o codigona area de trabalho e deu certo (não faço a menor ideia o pq deu certo)
Porem agora estou com outro problema, quando tento configurar meu controlador para utilizar o navegador, na hora de baixar o arquivos ele da o seguinte erro
error:Error open filed!
Alguem sabe como resolver isso?
Já tentei resetar o controlador com o nodemcu-pyflasher, mudar a rede wifi, retirar o controlador da placa, tudo sem sucesso.
Alias, não tive esse problema quando fiz o upload do codigo utilizando o .bin que vem com o codigo
AHhhhh que otimo obrigado pela ajuda, fiz o upload e o wifi aparentemente está perfeito, inclsuive a interface ta sensacional!!!Essa versão não vai funcionar mesmo, o Vito mudou bastante coisa e não há mais essa etapa.
No momento a interface web só funciona em modo AC, se vc configurar o wi-fi vai bugar o firmware e vai parar de funcionar, por isso tem que relatar pro Vito. Eu discuti bastante esse erro com ele, mas estou sem tempo pra ficar testando agora e aparentemente ele fez atualizações recentes que pode ser a correção desse erro.
Instala esses bins pelo Node MCU Flasher.
BrewManiacEx.050b1.portuguese-br.bin
BrewManiacEx.050b1.spargeheater.bin
Olá pessoal!AHhhhh que otimo obrigado pela ajuda, fiz o upload e o wifi aparentemente está perfeito, inclsuive a interface ta sensacional!!!
Porem a legenda dos botões no LCD ficou toda desconfigurada, não consegui encontrar a solução para isso, aparentemente não é algo relacionado ao tipo do LCD pois o titulo aparece certo, só no resto do programa que está estranho, penso que possa ser algo relacionado as traduções (fiz upload via VS code tbm, utilizai o nodemcuv2 e o mesmo com a versão em portugues e o problema continua)
Obrigado pela ajuda, nem reparei que era russo, meu russo ta meio enferrujado heheheOlá pessoal!
Rafael, não é problema! Mas ele está compilado em Russo;
Editar o arquivo src\BrewManiac.cpp
linha 345 #include "resources_ru.h" para resource.h
Copiar o arquivo (src/resources.h) para (locales/)
Ai e só compilar
ola, instalei a versao 0.5 em portugues usando o arquivo .bin, e tb deu esse erro, ficou tudo em russo o lcd, ai fiz o que vc falou aqui no vs code e deu certo, porem a interface HTML fico antiga, versao 0.4.8. Sabe como deixar na interface nova usando o vs code?Olá pessoal!
Rafael, não é problema! Mas ele está compilado em Russo;
Editar o arquivo src\BrewManiac.cpp
linha 345 #include "resources_ru.h" para resource.h
Copiar o arquivo (src/resources.h) para (locales/)
Ai e só compilar
Ola, sei que ja passou muito tempo mas se ainda tiver o codigo e puder postar eu agradeço.Implementei no código, ele interrompe a bomba quando atinge o nível e aguarda XX segundos de acordo com o que você configurar na nova opção que foi criada no menu "Settings". Assim dá tempo do nível baixar antes de tentar ligar a bomba de novo, evitando um liga e desliga repetitivo.
Vou postar o código caso tenha interesse.
ola, instalei a versao 0.5 em portugues usando o arquivo .bin, e tb deu esse erro, ficou tudo em russo o lcd, ai fiz o que vc falou aqui no vs code e deu certo, porem a interface HTML fico antiga, versao 0.4.8. Sabe como deixar na interface nova usando o vs code?
Vlw Dumpa, deu certo, porem tive que apagar o bm.049 tb.Entra pelo gerenciador de arquivos usando o seuip:8008/filemanager
Troque seuip pelo IP que está acessando o Brewmaniac, no gerenciador delete o arquivo: bm.htm.gz, clique nele com o botão direito do mouse, depois volte a página inicial e d~e um CTRL+ F5
View attachment 125144
Enter your email address to join: