BrewBench:Arduino/ESP32 多传感器酿造温控监测套件
项目定位
面向家庭精酿啤酒爱好者的**开源温度监控与自动化控制平台**。支持多种温度传感器(热敏电阻、DS18B20、PT100、DHT11/22),通过 Arduino REST API(Yún/ESP8266/ESP32)上传数据至 Web 仪表盘,可选接入继电器控制加热棒/循环泵实现 RIMS/HERMS 精准控温。代码托管于 GitHub,Web 端开源部署,数据不出局域网。
支持的传感器与接线
| 传感器 | 接口类型 | 典型接线 | 库支持 |
|---|---|---|---|
| NTC 热敏电阻 (10 kΩ@25°C) | 模拟量 | 分压电阻 10 kΩ → A0 | Steinhart-Hart 方程库 |
| DS18B20 (防水探头) | 1-Wire 数字 | D2 + 4.7 kΩ 上拉 | OneWire + DallasTemperature |
| PT100 (铂电阻) | 模拟量(需放大) | MAX31865 SPI 模块 / 4-20 mA 变送器 | Adafruit_MAX31865 |
| DHT11 / DHT22 | 单总线数字 | D3 | DHT sensor library |
硬件平台选型指南
- Arduino Yún / Yún Rev2:原生 Linux + Wi-Fi,Bridge 库暴露 REST API,适合已有库存者。
- ESP8266 (NodeMCU/Wemos D1 Mini):性价比最高,Arduino 核心成熟,Flash 4 MB 足够。
- ESP32 (DevKitC):双核、BLE、更多 GPIO,适合未来扩展多传感器/执行器。
- 普通 UNO + ESP-01 (AT 固件):不推荐,AT 指令不稳定,调试痛苦。
固件关键片段(ESP32 + DS18B20 示例)
#include
#include
#include
#include
const char* SSID = "your_ssid";
const char* PASS = "your_pass";
WebServer server(80);
OneWire oneWire(22);
DallasTemperature sensors(&oneWire);
DeviceAddress probeAddr;
void handleTemp() {
sensors.requestTemperatures();
float t = sensors.getTempC(probeAddr);
String json = "{\"sensor\":\"DS18B20\",\"temp_c\":" + String(t,2) + "}";
server.send(200, "application/json", json);
}
void setup() {
Serial.begin(115200);
WiFi.begin(SSID, PASS);
while (WiFi.status() != WL_CONNECTED) delay(500);
sensors.begin();
sensors.getAddress(probeAddr, 0);
server.on("/temp", handleTemp);
server.begin();
}
void loop() { server.handleClient(); }
Web 监控仪表盘
- 访问
https://<device_ip>/temp获取 JSON,前端用 Chart.js 绘制实时曲线。 - 官方托管版:monitor.brewbench.co(输入设备 IP 即可接入,数据走本地 LAN)。
- 支持多设备分组、阈值报警(Telegram/Email/Webhook)、配方温度曲线导入导出。
执行器接入:RIMS 加热控制
// 2 路继电器模块(低电平触发)
const uint8_t RELAY_HEAT = 16, RELAY_PUMP = 17;
float targetTemp = 66.5; // 糖化目标温度
float hyst = 0.3; // 回差
void controlLoop(float current) {
if (current < targetTemp - hyst) {
digitalWrite(RELAY_HEAT, LOW); // 开启加热
digitalWrite(RELAY_PUMP, LOW); // 循环泵同步开启
} else if (current > targetTemp + hyst) {
digitalWrite(RELAY_HEAT, HIGH); // 关闭加热
// 泵延迟 30 秒关闭,利用余热
}
}
⚠️ **安全必须**:加热棒**必须**接固态继电器 (SSR) + 散热器 + 保险丝 + 漏电保护器;Arduino 仅输出 3.3/5 V 逻辑信号驱动 SSR,切勿直接切大功率交流电。
部署清单
- 克隆固件:
git clone https://github.com/brewbench/brewbench-firmware - PlatformIO / Arduino IDE 打开,修改
config.h中 Wi-Fi、传感器类型、引脚映射。 - 编译上传,串口监视器确认 IP 地址。
- 浏览器打开
https://monitor.brewbench.co,Settings 填入 IP,Add Sensor 选择类型。 - (可选)自建 Web 服务:
docker run -d -p 8080:80 brewbench/monitor。
常见问题
| 症状 | 排查 | |
|---|---|---|
| 温度读数 -127°C | DS18B20 总线未检测到设备 | 检查 4.7 kΩ 上拉、线序、供电 3.3V/5V 兼容 |
| 热敏电阻读数跳变 | 模拟参考电压不稳 / 分压电阻精度差 | 用 3.3V 基准 + 0.1% 电阻、或改用 DS18B20 |
| Web 页面显示离线 | 设备未联网 / 防火墙拦截 / mDNS 未生效 | 串口查 IP、路由器开放 80 端口、尝试 IP 直连 |
| 加热超调 > 1°C | PID 未调优 / 热惯性大 | 引入 PID 库(如 BrettBeauregard/PID),自整定 |
扩展路线图
- 集成压力传感器(发酵罐顶压监控)。
- 支持 Tilt Hydrometer 蓝牙比重计自动采集。
- 固件 OTA 更新(ESP32 HTTPS OTA)。
- Home Assistant MQTT 发现集成。
一句话总结:BrewBench 以“传感器中立 + REST API + 开源 Web 面板”三层解耦,让家庭酿酒师用最低成本(约 ¥150 起)搭建专业级糖化/发酵温控系统,数据完全本地化,隐私可控。
制造工艺
- 树莓派 PIR 运动传感器控制 LED 实战指南
- 树莓派低成本土壤湿度传感器:智能灌溉 DIY 指南
- 树莓派 DS18B20 温度传感器测试与 HC-SR04 超声波测距实战
- 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统
- Sensor Telemetry 2.0.1:基于 Azure IoT Hub 的高精度温度监控系统
- 低成本情绪传感器与 EEG:实时情绪检测硬件方案
- UnifiedWater v1 — 基于 Arduino MKR GSM 1400 的完整水质监测套件
- 霍尔效应传感器深度解析:原理、应用与设计要点
- 凸轮轴位置传感器详解:守护发动机平稳运转的关键角色
- 曲轴位置传感器全解析:精准发动机正时的核心大脑
- 氧传感器 (O2) 详解:作用、位置与故障征兆
- 屏下指纹传感器:演进、技术与优势