博客/工程

我建立了一个监控系统如何鳄梨和Arduino和Grafana云工厂吗

2021年3月8日,8分钟

几个月前,在我们Grafana黑客的日子里,我创建了自己的第一个监控解决方案:我酵母监测系统。这是一个很多的乐趣来构建它,我喜欢很多!所以当未来Grafana黑客一天的临近,我开始想知道我的下一个监测系统。我想了解更多关于什么?我想获得更好的在做什么?说实话,我没有努力思考。我环顾四周,他们是:我爱我美丽的植物,但肯定不知道如何照顾。所以我决定尽我所能理解和构建为我的植物监测系统。具体地说,一个监控系统为我鳄梨植物。

监控什么?

每当我从任何监控项目开始,我开始写一列变量,能告诉我更多关于我想监视系统。在这种情况下,它是植物的外部输出和它的环境的日益增长。我的目标是尽可能多的变量列表我能想到的,然后计算出可以被监视,我将能够构建。在这个项目中我将监控:

  • 植物的高度
  • 空气温度
  • 空气湿度
  • 土壤水分
  • 光照条件

硬件

建立我的鳄梨工厂监控系统,我使用:

  • 1ESP32无线蓝牙4 mb Flash UNO R3开发板
  • 1HC-SR04超声波距离传感器测量植物的高度
  • 1DHT22传感器模块测量环境的温度和湿度
  • 1土壤水分测量土壤水分传感器模块
  • 1TEMT6000光传感器来测量光强度
  • 1LED显示屏矩阵MAX7219直接显示当前条件的植物监测系统
  • 125分电路试验板
  • M-F杜邦电缆
  • 1微型USB电缆
  • 1USB充电器

你还需要:

  • 1厂站把这一切放在一起,建立监测系统

该软件

你需要安装Arduino IDE开源电子易于使用的硬件和软件平台。Arduino编译代码,然后上传你的董事会。我安装的版本1.8.10,因为新版本扔错误操作系统大苏尔,我使用。它工作得很好。

如果你的操作系统不会自动识别USB系列,你可能会需要安装CP210x USB UART桥VCP司机

设置Grafana云

下一步是设置数据库和Grafana。我已决定使用Grafana云——带有Grafana主办,Grafana洛基和石墨——为我们的数据存储和数据可视化。的自由层伴随着10000系列石墨指标和50 gb的日志在洛基,绝对是超过足够的监控解决方案。

我去了Grafana云注册并创建了一个新的账户。一旦我有我的帐户所有的设置,我可以看到我和我主持的门户Grafana,洛基,石墨的实例。

在这一点上,我还创建了API键洛基和石墨出版指标从我这些数据库监控系统。

现在是时候开始整理纷乱的事情。下面,你可以看到所有的传感器和输出的插脚引线:

比我有更多的输入和输出电力和地面别针,我还使用了25分的替代品。我的连接vcc销接地销,所以我创建了3个额外的接地和vcc别针,我将使用我的输入和输出。

LED显示屏矩阵MAX7219

8×8 LED矩阵通常用于显示简单的图形或文本。我决定用它来显示我的植物的状态。如果工厂有完美的条件,我看到一个笑脸在LED矩阵。另一方面,如果土壤干燥温度过低或过高,显示一个悲哀的表情符号。

引出线:

  • VCC销5 v在案板上
  • 喧嚣数据输入销销5
  • CS芯片选择销销13在黑板上
  • CLK串行输入销销12在黑板上
  • 接地针接地在案板上

DHT22传感器模块

这是一个非常基本的和廉价的传感器由两部分组成:一个湿度传感器和热敏电阻。在本例中,它是用来测量温度和湿度的环境我的鳄梨植物生命。

引出线:

  • VCC销至3.3 v在黑板上
  • 数据销销27在黑板上
  • 接地针接地在案板上

TEMT6000光传感器

这个光传感器将检测到的亮度我鳄梨工厂的环境。TEMT6000措施以勒克斯照度。TEMT6000非常直观的使用:更多的流动意味着更明亮、更少的流动意味着更深。

引出线:

  • VCC销5 v在黑板上
  • SIG输出电压销销34在黑板上
  • 接地接地在黑板上销

土壤水分传感器

土壤湿度传感器是这个项目中最重要的传感器之一。它将让我知道如果我的植物是湿的或干的土壤,它会帮我找出水的时候。

引出线:

  • VCC销销17(我不是使用VCC销防止腐蚀)
  • SIG输出电压销销16在黑板上
  • 接地接地在黑板上销

HC-SR04超声波距离传感器

超声波传感器使用声纳来确定距离一个对象。它具有较高的准确性和稳定的读数范围从2厘米到400厘米。我用这个传感器来测量我的身高。

引出线:

  • VCC销5 v在案板上
  • 三角针,将信号发送给销25在黑板上
  • 回声销销26在黑板上接收信号
  • 接地针接地在案板上

的编程

一旦我有了传感器和开发板准备好了,我开始写一个程序,将检索数据从传感器并将其发送到石墨和洛基数据库。我用一个Arduino IDE上传程序开发板。因此,作为第一步,我连接ESP32董事会和所有传感器通过microUSB我的电脑。

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

我ESP32板连接到我的电脑后,我继续开放Arduino IDE。我使用一个ESP32董事会(而不是一个Arduino电路板),我需要添加一个委员会的定义,增加了对我的支持EP32董事会。在Arduino > Preferences,我已经添加了urlhttps://dl.espressif.com/dl/package_esp32_index.json额外的董事会经理url输入。这个开源定义中增加了对编程ESP32董事会的支持。

然后,在工具>我添加了ESP32板的电路板>经理经理。

最后,在工具>董事会,我选择DOIT ESP32 DevKit。这告诉Arduino IDE和基地库编译时使用的固件图像,以及如何flash董事会。确保在工具>港口子菜单,你选择新的COM端口。

步骤2:添加库

对于本项目,我使用以下库:

我安装了所有这些库的素描> >库管理器包括图书馆。安装了这些库是很重要的在搬到下一个步骤。

步骤3:创建一个项目

Arduino叫做Arduino的本机支持语言编程语言(APL),这是一个c++框架之上。一个程序写在APL称为草图,.ino扩展。每个Arduino程序有两个特殊功能的一部分,每一个素描:设置循环()和()。setup()调用一次,当草图开始。循环()函数,是大多数的核心草图。

完整的草图可以在我下载GitHub。在回购中,有两个重要的文件:avocado_monitoring.inoconfig_template.h。第一个文件包括程序详细描述每个部分所做的评论。在第二个,我存储变量和API密钥。如果你决定创建自己的监控系统,下载回购,重命名config_template.hconfig.h,取代你的变量和API密钥。

第四步:上传和ESP32运行程序

现在是时候上传程序ESP32板!它是打开avocado_monitoring一样容易。在Arduino IDE和按进气阀打开文件上传按钮(箭头指向正确的)。

一切都正确设置后,我很快就能看到我的石墨和洛基数据库传入的数据。

在Grafana可视化数据

一旦监测的数据流向石墨和洛基,是时候在Grafana可视化。我打开Grafana实例,通过我的Grafana云注册成立并开始创建仪表板。我创建了两个指示板,如果你想使用相同的,你可以去复制粘贴我的仪表板JSON模型在这里在这里

添加植物站的监控系统

现在到了最后,方便工作的一部分。♀️我安装在厂站监控系统使用胶枪,但随时即兴创作和设计自己的解决方案。

这篇博客,我想表明它没有困难或复杂的创建一个监控系统基本上任何东西。我希望你能试试这个让我知道它是怎么回事。或者如果你决定建立一个不同的监测系统或物联网项目,我也会非常喜欢听到!