几个月前,在我们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.ino和config_template.h。第一个文件包括程序详细描述每个部分所做的评论。在第二个,我存储变量和API密钥。如果你决定创建自己的监控系统,下载回购,重命名config_template.h来config.h,取代你的变量和API密钥。
第四步:上传和ESP32运行程序
现在是时候上传程序ESP32板!它是打开avocado_monitoring一样容易。在Arduino IDE和按进气阀打开文件上传按钮(箭头指向正确的)。
一切都正确设置后,我很快就能看到我的石墨和洛基数据库传入的数据。
在Grafana可视化数据
一旦监测的数据流向石墨和洛基,是时候在Grafana可视化。我打开Grafana实例,通过我的Grafana云注册成立并开始创建仪表板。我创建了两个指示板,如果你想使用相同的,你可以去复制粘贴我的仪表板JSON模型在这里和在这里。
添加植物站的监控系统
现在到了最后,方便工作的一部分。♀️我安装在厂站监控系统使用胶枪,但随时即兴创作和设计自己的解决方案。
这篇博客,我想表明它没有困难或复杂的创建一个监控系统基本上任何东西。我希望你能试试这个让我知道它是怎么回事。或者如果你决定建立一个不同的监测系统或物联网项目,我也会非常喜欢听到!