国外课栈 - 国外电子信息技术视角栈

Arduino云植物自动浇水

 二维码 31

硬件

请注意,您还可以使用具有Wi-Fi连接的任何其他Arduino IoT板,例如Arduino MKR WiFi 1010或更便宜的Arduino Nano 33 IoT。 MKR板的优势在于它们可安装在Arduino MKR Relay Proto Shield上,从而简化了接线。

对于水箱,您可以使用周围的任何物品(我从厨房使用宜家的食物储藏容器)。

软件

组装

所有组件都连接到中央项目箱,该项目箱安装在宜家容器的盖子上。

为了安装Arduino MKR Relay Proto Shield,我3D打印了一个简单的转接板。项目框侧面的小孔提供了对MKR1000的微型USB端口的访问,该端口用于为系统供电和对开发板进行编程。

土壤湿度传感器

在此项目中,我使用了带模拟输出的电容性土壤湿度传感器。 电容式传感器比电阻式传感器具有更好的耐腐蚀性,但并非100%防水。 由于它们是由带有复合基板的标准PCB制成的,因此水很容易从PCB的侧面渗入。 传感器顶部的电子元件也没有受到任何防水保护。

为了使传感器更加防水,我在边缘和电子设备上涂了透明的指甲油。 真正的保形涂料可能更好,但指甲油可以作为便宜的替代品很好地工作。

传感器随附的电缆很短,所以我做了新的电缆。您也可以将更长的电线焊接到原始电缆上。

连接

下表显示了您需要建立的连接。

泵和中继

温湿度传感器

尽管对于自动给植物浇水不是严格必需的,但我认为温度和湿度传感器将是该系统的不错的补充。 在此项目中,我使用了AM2301A传感器,该传感器位于已连接电线的外壳中。 该传感器由ASAIR制造,后者也生产非常流行的DHT11和DHT22传感器。

连接AM2301A温湿度传感器

我将传感器安装在项目框的侧面。请注意,我在项目框和传感器的背面钻了一个小孔,以将电线穿过。

I2C LCD

除Arduino IoT Cloud之外,传感器数据还显示在项目箱盖上安装的20×4 I2C LCD上。

我使用自制的CNC雕刻机在项目框中切出了一个开口,但是您也可以使用竖锯或锋利的方盒铣刀。

LCD通常使用5 V电压供电,但似乎可以在3.3 V电压下正常工作。由于LCD背面安装了I2C模块,因此您只需要将SDA和SCL两条线连接到MKR1000。 连接位于屏蔽层的螺钉端子处,因此显示屏的接线非常容易。

I2C LCD连接

最初,我计划将PVC管的末端粘贴在播种机中间的某个位置。但是,我发现播种机的此左部分已被浸湿,其余部分完全干燥。

我的解决方案是在试管的最后30 – 40 cm处钻一堆小孔(1 mm),这些孔大约间隔2 cm。我用3D打印了一个塞子,塞住了管的末端,还有一些固定在土壤中的支架。

这似乎可以使土壤均匀润湿,效果很好。

Arduino云

插件

设置

现在,通过单击页面顶部的图标,返回“入门”页面。 下一步是建立一个新的物联网板。 对于这个项目,我使用了Arduino MKR1000。 如果不确定板名是什么,可以单击Autodetect Arduino Board图标。

IoT配置向导将打开,它将引导您完成设置和测试电路板。

单击开始,然后使用USB电缆将开发板连接至计算机。如果您正确安装了Arduino Create插件,则计算机应该能够检测到您的设备。

接下来,给您的板起个名字。我只是简单地将板称为MKR1000_1。确保使用易于识别的名称,尤其是当您在不同项目中使用多个开发板时。

此后,需要配置MKR1000的加密芯片,最多需要5分钟。 每个MKR1000都配备了一个Microchip ECC508加密芯片。 当该芯片链接到您的Arduino帐户时,可用于安全地存储您的主板的身份。

接下来,您可以上传一个示例sketch,该sketch将允许您测试板的功能并通过网络监视器打开和关闭板载LED。 在sketch的“秘密”选项卡中,您需要输入本地wifi网络的名称和密码。

在下一页上,单击LED字符以打开和关闭板载LED。

如果一切顺利,您应该看到下面的页面。

创建

设置新的IoT设备后,您可以返回Arduino Create仪表板,然后单击Arduino IoT Cloud图标。

单击此图标后,将打开Arduino IoT Cloud“您的事物”页面。 在此页面上,您可以创建新的Things,这是Arduino称为可以连接到互联网的设备。 在我们的案例中,事物表示连接了多个传感器的Arduino MKR1000板。 每件事物都可以具有多个属性,例如温度,LED的状态,GPS坐标等。

在IoT云的免费版本中,您只能创建一个Thing,最多具有五个属性。 如果您想要多个,则必须升级到Arduino云的付费计划。 由于该项目仅使用一个属性少于五个的Thing,因此免费层可以正常工作。

单击添加新事物并为其命名。我叫我的Automatic_indoor_garden。从下拉菜单(MKR1000_1)中选择我们刚刚配置的MKR1000板。

现在,您将被重定向到一个页面,您可以在其中添加属性到Thing。

添加属性

在此项目中,我添加了三个不同的属性:温度,湿度和土壤湿度。 属性表示Arduino代码中的变量,并且在云中也可以读取。 创建属性并上传代码后,您将能够在Thing仪表板中查看它们。

通过单击添加属性,添加属性非常容易。请注意,您必须执行此过程三次。

对于每个属性,您需要设置以下参数:

  • 名称-将显示在属性列表和窗口小部件上的名称。
  • 变量名称–您将在Sketch中使用该变量的名称来引用此属性。它不能包含特殊字符。
  • 类型–选择正确的属性类型。添加数值测量的最小值和最大值,以正确绘制窗口小部件。
  • 允许
    • 读写:该属性可以设置并显示在Arduino IoT Cloud仪表板中。
    • 只读:该属性将发送到Arduino IoT Cloud,并将在您的仪表板中提供。
  • 更新
    • 值更改时:每当值更改大于或等于增量时,该属性将发送到Arduino IoT Cloud。
    • 定期:每次经过指定的秒数后,该属性就会发送到Arduino IoT Cloud。
  • 历史记录–显示该属性的历史数据的可视化。

在下面的图片中,您可以看到我用于“温度”属性的参数。请注意,您可以选择许多内置属性类型之一,例如温度(摄氏度),也可以创建自定义类型。

您可以在下表中找到其他属性的参数。

属性参数

通过选择显示历史记录可视化,您可以记录特定时间段内属性的值并将其另存为图形。不幸的是,您只能在Arduino IoT Cloud的免费版本中保存1天的数据。

添加所有属性后,单击“编辑Sketch”。这将打开Arduino Web编辑器。

创建Sketch

单击“编辑sketch”后,您将看到已自动创建一个新sketch。

请注意,sketch与Thing加上创建日期同名。除了这个.ino文件之外,您还将看到三个文件:

ReadMe.adoc:这是纯文本文件,您可以在其中添加有关作者和项目的信息。

somethingProperties.h:当您向Thing添加属性时,此文件由Arduino IoT Cloud自动生成。 通常,您不应该自己编辑此文件中的代码。 当您更改仪表板中的Thing属性时,它将自动更新。

请参阅Arduino Project Hub上的IoT Cloud –入门页面,以获取关于thingProperties.h中不同功能的更详细说明。

Secret:此标签可让您填写网络凭据。 SECRET_SSID和SECRET_PASS是MKR1000将连接的wifi网络的名称和密码。填写完这些详细信息后,单击“保存”。

Arduino代码

自动生成的文件可以很容易地开始使用IoT云,但是当然,您仍然需要自己编写一些代码。

在主sketch中,而不是thingProperties.h,我添加了代码,这些代码将读出传感器,控制水泵并在字符I2C LCD上显示信息。

您可以用以下代码替换主草图中的代码。 如果尚未将MKR1000板连接到计算机,则可以通过单击上载按钮(页面顶部的右箭头)来上载代码。 我建议暂时断开泵的连接,只保留传感器的安装。

接下来,我将解释代码的工作原理,并向您展示如何自己更改几个参数。

代码分解

创建仪表板


阅读完整文档



文章分类: 电子创客EM-Arduino