本方案是一个实时植物监控系统,可查看温度、光照和湿度。
使用MKR1000 、标准 Firmata Wifi 草图以及 Johnny-Five 和 Node.js制作。
我首先使用 StandardFirmataWifi 草图加载 MKR1000。这将使我们能够使用 Johnny-Five 与董事会进行沟通。
打开 Arduino IDE
文件 -》 示例 -》 Firmata -》 StandardFirmataWifi
切换到第二个选项卡“wifiConfig.h”
阅读评论并设置选项以匹配您的设备。对于 MKR1000,我必须注释掉第 1 步选项 A 并取消注释选项 B。然后向下滚动并为您的 wifi 配置 SSID 和密码。如果需要,您可以将开发板的 IP 地址设置为静态。下面是 wifiConfig.h 中我必须为我的家庭 wifi 设置更改的行。
切换回第一个选项卡“StandardFirmataWifi”
编译并上传草图到 MKR1000
接下来,我使用 node 和 express 创建了一个 Web 应用程序。这将使我们能够运行 Johnny-Five,这是一个基于 Firmata 协议的开源框架,允许在 MKR1000 和我的节点应用程序之间轻松通信。
然后,我创建了一个基本仪表板,用户可以在其中实时查看从 MKR1000 流式传输到客户端的当前传感器数据。我正在使用 WebSockets 每秒向客户端发送传感器数据。
用户还可以点击任何传感器读数以查看该特定传感器的完整历史记录。此视图呈现 2 个图表,顶部图表是总读数的放大版本,底部图表是该传感器的完整历史数据。用户可以在底部图表上选择一个范围,该范围会更新所选范围的顶部“详细”图表。这些图表每 10 秒显示一次保存到 RethinkDB 的数据。
您需要安装 RethinkDB 并在本地运行它。
他们有一些很棒的文档,因此请查看
https://rethinkdb.com/docs/install/
安装 RethinkDB 后,我们将需要创建一个数据库和表来存储前面提到的测量值。
打开终端并输入rethinkdb以启动我们的 rethinkdb 服务器。
然后打开任何现代浏览器并转到 localhost:8080
这将加载 RethinkDB 仪表板,您可以在其中访问数据库并创建表。对于这个系统,我们需要创建一个名为的数据库plant_monitoring_system和一个名为的表measurements
单击表格以加载表格视图
单击“+ 添加数据库”按钮
键入plant_monitoring_system并单击添加
然后,单击“数据资源管理器”打开数据资源管理器,我们将在其中运行命令以创建此项目所需的表。在数据资源管理器中键入以下代码并单击运行。
r.db(‘plant_monitoring_system’).tableCreate(‘measurements’)
这应该为数据库创建做。我们只需要在启动我们的节点应用程序之前确保数据库正在运行。我们之前使用命令启动了我们的数据库
rethinkdb
这是设置好之后的一些照片。
下面是我为这个系统构建的电路示意图。该板实际上是一个 Arduino MKR1000。5v 引脚实际上是 3.3v,但所有组件都可以在 5v 下正常工作。
在照片中很难看到,但您只需将以下传感器连接到相应的端口即可。
LM35传感器连接:
3.3V
模拟引脚 1
地面
光敏电阻连接:
3.3V
模拟引脚 2 和 10k 欧姆电阻接地
湿度传感器连接:
模拟引脚 1
3.3V
地面
全部0条评论
快来发表一下你的评论吧 !