博客/社区

如何用Grafana监控酵母发酵剂

2020年6月17日8分钟

由于编辑错误,这篇文章的早期版本提到普罗米修斯在标题中。这一事实性错误已被纠正,我们已经在我们的流程中增加了检查,以避免今后发生此类错误。

我要坦白一件事:我是在冠状病毒封锁期间自制面包的人之一。我甚至自己种了酵母发酵剂。

也许你不知道,发酵剂是一种酵母混合物,用来使面包发面。(有一个基本的配方在这里)。你可以用面粉和水制作它,但它需要定期“喂食”,并在一到两周的时间内部分丢弃。这个过程需要几周的时间,但最终是值得的。

因为我是Grafana实验室的一名软件开发人员,也非常有兴趣了解更多关于我周围bob电竞频道的东西,当我听说可以制作酵母发酵剂监控系统时,我不得不尝试一下。(据说它可以改善开胃菜的质量和面包的味道。)所以在我们的黑客日,我决定把我的初学者成长到一个新的水平。

我做这个系统的灵感来自sourd.io这是由Christine Sunu创建的,这是我参与的第一个物联网项目。我非常喜欢这个过程,我想和大家分享——尤其是那些想尝试物联网开发的人。设置非常简单,我将带您完成这些步骤。

硬件

要建立酵母监测系统,您将需要:

  • 1个DHT11传感器模块,用于测量温湿度
  • 1台HC-SR04超声波距离传感器测量酸面团上升
  • 2个HC-SR04支架
  • 1 ESP32-PICO-KIT V4开发板
  • 7 M-F杜邦电缆
  • 1根微型USB线
  • USB充电器1个

加:

  • 1个中等大小的罐子用来装酵头,盖子可以切下来
  • 能在盖子中间开个洞的东西
  • 一把胶枪,强力胶或双面透明胶带(最好是全部)
硬件
硬件

该软件

你必须安装Arduino IDE这是一个用于编写和上传程序到Arduino兼容板的平台。我安装了1.8.10版本,因为更新的版本会在我使用的OS Catalina上抛出错误。它运行得很好。

如果您的操作系统不能自动识别USB串行,您可能需要安装CP210x USB到UART桥VCP驱动程序.(我必须为我的Catalina操作系统安装它。)这个驱动程序基本上可以让你的计算机与ESP32开发板通信。

数据库设置

下一个重要的步骤是建立一个数据库,您将存储来自传感器的数据。InfluxDB时间序列数据库是我的选择,它通常是物联网项目的一个非常受欢迎的选择。你可以很容易地设置InfluxDB云,可以免费存储30天的数据。

一旦您的InfluxDB云启动并运行,您将需要设置以下内容:

  • 桶,这是一个命名的位置,将存储来自传感器的时间序列数据。我为我的酸面包数据创建了一个名为“arduino”的特定桶。
  • 一个令牌,它对存储监控系统数据的bucket具有写访问权。
  • 对将要为Grafana存储数据的bucket具有读访问权的令牌。

现在是时候开始把事情放在一起了。

DHT11传感器模块这是一个非常基本和便宜的传感器由两个部分组成:一个湿度传感器和一个热敏电阻。它可以用来测量酵母发酵剂所处环境的温度和湿度。

如果你有一个DHT11传感器模块,它将有三个引脚。如果你看到四个也不用担心——你可能只是单独买了一个传感器。这也发生在我身上,这是一个很容易解决的问题:你只是不使用第三个别针。

引脚的连接方法如下:

DHT11传感器模块
DHT11传感器模块

  • Vcc引脚到板上3.3V
  • 板上的数字针到针32
  • 板上的Gnd引脚到Gnd

HC-SR04超声波距离传感器该传感器提供2cm ~ 4m的测量功能,精度在3mm左右。这将用于测量酵头离盖子的距离,并计算它的上升和/或下降。

HC-SR04有四个引脚,你要像这样连接到开发板:

HC-SR04传感器
HC-SR04传感器
  • 板上Vcc引脚到5V
  • 三角引脚,将信号发送到板上的引脚4
  • 接收板上引脚5信号的回声引脚
  • 板上的Gnd引脚到Gnd

编程

准备好传感器和开发板之后,需要编写并上传一个程序,该程序将从传感器检索数据并将其发送到InfluxDB数据库。通过microrousb将ESP32板与连接的传感器连接到计算机。

步骤1:设置Arduino IDE以支持您的ESP32板

打开Arduino IDE。如果您使用的是我推荐的ESP32板(而不是Arduino板),则需要添加对EP32板的支持的板定义。进入Arduino > Preferences并添加urlhttps://dl.espressif.com/dl/package_esp32_index.json附加板管理器url输入。这个开源板定义增加了对ESP32板编程的支持。

Arduno偏好
Arduno偏好

进入“Tools > Boards > Boards Manager”,添加ESP32单板管理器。

董事会的经理
董事会的经理

接下来,在Tools > Boards中,选择ESP32 Pico Kit board。这告诉Arduino IDE在编译固件映像时使用哪个配置文件和基本库,以及如何将其闪现到板上。确保在Tools > Port子菜单中,您已经选择了新的COM端口。

工具>单板
工具>单板

步骤2:添加库

对于这个项目,你将使用以下库:

  • DHT传感器库由Adafruit开发
  • Adafruit统一传感器
  • NTP客户端Fabrice Weinberg
  • HCSR04作者:Martin Sosic

转到Sketch > Include Library > Library Manager并安装所有这些库。在进行下一步之前,请确保您已经安装了所有这些程序。

库管理器
库管理器

步骤3:创建一个程序

Sketch是Arduino用于上传到Arduino板上并在其上运行的代码单元的名称。你可以从我的github

在我创建的文件夹中,你会发现两个重要的文件:sourdough_monitor.ino而且config_template.h.在第一个文件中,有程序。第二种是存储变量。

文件config.h:

  1. 将config_template.h重命名为config.h

  2. 添加变量:

  • 您的wifi名称和密码,以便ESP32可以连接到您的互联网
  • 您的InfluxDB信息-主机、组织id、令牌、桶
  • 根证书

文件sourdough_monitor.ino:

下面您可以找到程序代码和解释每个部分的注释。

步骤4:上传并运行程序到ESP32

让我们一起努力吧!

点击打开按钮(箭头指向上方),选择打开,找到您的sourdough_monitor.ino归档并打开它。

sourdough_monitor.ino
sourdough_monitor.ino

然后打开工具>串行监视器。这将允许您看到来自电路板的调试输出。设置底部的端口速率为115200。

最后,使用UI中的Upload按钮(箭头指向右侧)构建程序并将其上传到ESP32。

这个项目
这个项目

当上传完成后,您的串行监视器将显示:

  • 启动并连接WiFi
  • 提交指标的结果

如果一切设置正确,很快还将在InfluxDB数据库中看到传入数据。

Grafana中的数据可视化

当所有数据都流向InfluxDB时,就该在Grafana中可视化它们了。遵循安装指南建立它。

不幸的是,流入数据源不提供带有令牌的身份验证,因此需要添加Flux [BETA]数据源插件。填写您的组织id、桶和令牌,并保存数据源。

接下来,创建仪表板。Flux数据源具有与其云接口兼容的查询编辑器,您只需从InfluxDB查询编辑器复制粘贴查询即可。

酵母仪表板
酵母仪表板

罐体监控系统

是时候动手了。♀️我包括关于我如何安装我的罐子的细节,但我相信有一个更好的方法,所以请随意即兴发挥。

你可以暂时把罐子放在一边,因为这都是关于盖子的。小心地在HC-SR04的盖子中间做一个2cm x 5cm的洞,DHT11的盖子旁边有一个较小的洞。

将HC-SR04传感器放入HC-SR04支架中,然后将第二个支架放在其上。将传感器支架与传感器粘在盖子上。用双面胶带将DHT11粘在盖子上,这样它就会面向罐子的内部。

盖子上的传感器
盖子上的传感器

用胶枪将ESP32板小心地粘到HC-SR04支架顶部。确保你只粘在ESP32板上的延伸部分,而不是板本身。

完成连接
完成连接

下面的照片是它应该看起来的样子。(后来我用一个切下来的塑料瓶加了一个盖子,以确保酸面包不会从盖子上的洞里变干。)

封闭罐上的监视器
封闭罐上的监视器

把这个罐子放在你的厨房里——或者任何你打算放启动器的地方——然后把它插到USB充电器上。

酵母发酵剂与监视器
酵母发酵剂与监视器

现在,您已经准备好添加开胃菜的原料,并开始监控进度。

我用监控器做的面包是我迄今为止烤得最好的。我不能说这和监控系统有关因为我并没有改变我喂鱼的方式,但味道真的很好。

我真的希望你能尝试一下,并告诉我进展如何。此外,如果你有一些有趣的物联网想法,我也非常乐意听到它们!