主要内容

基于Arduino的植物智能浇水

本例展示了如何使用Simulink®支持包为Arduino®万博1manbetx万博1manbetx硬件创建一个Simulink模型来实现基于ThingSpeak的智能植物浇水系统。

万博1manbetx支持的硬件:

  • Arduino Mega 2560

  • Arduino Mega ADK

  • Arduino由于

此示例的可用版本:

Arduino Mega 2560板:arduino_smart_plant

所提供的模型已为Arduino Mega 2560预配置。您可以在“支持的硬件”部分中列出的任何板上运行此模型,方法是更改本例任务7中描述的“硬件板”参数。万博1manbetx

简介

在本例中,我们将开发一个Simulink模型来实现一个智能植物浇水系统万博1manbetx。

植物的浇水需求可以由其所需的理想土壤湿度范围决定。如果土壤湿度不在理想范围内,那么植物浇水过多或浇水不够。

通过测量土壤湿度,我们可以决定植物是否需要浇水。为了测量土壤湿度,我们将使用土壤湿度传感器。传感器测量土壤中水分的百分比。

植物生长的另一个重要资源是它接收到的阳光量。通过测量到达植物的光的强度,我们可以确定是否满足植物的要求。环境光强度传感器可以用来测量入射到植物上的光的量。

智能植物浇水系统将由Arduino组成,Arduino与土壤湿度传感器和光强传感器相连。

  • 根据测量到的湿度值,通过继电器屏蔽连接到Arduino的水泵是开/关的。

  • 如果测量的光强小于用户设置的阈值水平,则使用LED通知用户低光条件。

为了为用户提供更多的通用性,我们将Arduino连接到ThingSpeak.Thingspeak是MathWorks分析物联网平台。

ThingSpeak是一个物联网平台,使您能够收集、存储、分析、可视化和处理来自传感器或执行器(如Arduino®、Raspberry Pi™、BeagleBone Black和其他硬件)的数据。ThingSpeak活动的主要元素是通道,其中包含数据字段、位置字段和状态字段。创建ThingSpeak频道后,您可以将数据写入频道,使用MATLAB®代码处理和查看数据,并使用推文和其他警报对数据做出反应。

将系统连接到ThingSpeak提供了以下功能

  • 我们会定期发送湿度和光强值存储在ThingSpeak上。这将使用户能够从世界任何地方在线监测系统的性能。

  • ThingSpeak中可存储土壤湿度和光强阈值。Arduino会从ThingSpeak读取阈值,并采取必要的行动。用户可以在任何时候通过在ThingSpeak中设置不同的值来远程更改阈值。在随后的操作周期中,当Arduino从ThingSpeak读取数据时,更改将在系统中生效。

先决条件

在开始这个示例之前,我们建议您完成以下工作:

所需的硬件

要运行这个例子,你需要以下硬件:

万博1manbetx仿真软件模型

模型示例如下图所示:

任务1 -连接传感器到Arduino硬件

在本任务中,您将将土壤湿度传感器和环境光传感器连接到Arduino板。

1.按照以下电路图将土壤湿度传感器连接到Arduino板上:

土壤水分传感器|Arduino大型2560_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 5 V接地|接地团体| A0  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2.使用下面的电路图将环境光传感器连接到Arduino板上:

环境传感器|Arduino大型2560_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 5 V接地|接地团体| A1  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3.使用下面的电路图将Relay Shield连接到Arduino板上:

继电器保护| Arduino兆2560针  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 5 V接地|接地IN1 |销4 COM | 12 V  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.使用下面的电路图将水泵连接到继电器屏蔽

水泵|继电器盾牌  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC |没有接地|接地  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

任务2 -创建Simulink模万博1manbetx型来实现智能浇水系统

在本任务中,您将开发一个Simulink模型来实现智能浇水系统。万博1manbetx我们将使用Arduino算法模板从Arduino模板库中开发Simulink模型。万博1manbetx

1.打开Simulin万博1manbetxk开始页。

2.万博1manbet万博1manbetxxArduino硬件的Simulink支持包模板,创建一个新的Simulink模型使用万博1manbetx算法模板。

该模板最适合于涉及简单或中等复杂算法的系统的实现。该模板分为三个主要区域,输入,算法和输出部分。

我们开发的模型将用于模拟和部署模式。在仿真模式中,我们将使用Simulink源块对土壤水分传感器和环境光传感万博1manbetx器进行动作/仿真。算法的输出可以使用显示或作用域块来查看。

在对算法进行仿真验证后,我们可以为Arduino硬件配置模型,将模型构建并部署到硬件上。

3.开放万博1manbetxSimulink库浏览器再加上2模拟输入模块从Simulink支持包Ar万博1manbetxduino库。万博1manbetx湿度传感器和光传感器输出均为模拟信号。配置模拟输入块以读取环境光传感器引脚A0上的传感器,土壤湿度传感器引脚A1上的传感器。

4.从Arduino库万博1manbet万博1manbetxx的Simulink Supportpackage中添加两个数字输出块。这些模块将用于打开/关闭控制水泵的继电器,并打开/关闭LED(在本例中,是位于引脚13的Arduino板载LED)。将继电器对应的数字输出块配置到引脚4输出,将另一个数字输出块配置到引脚13输出。

5.在“算法”区域中双击打开子系统。从Simulink的“逻辑和位操作”库中添加两个“关系运算符”块。万博1manbetx这些信息将用于决定是否需要打开/关闭水泵,以及是否需要告知用户低光条件。

任务3 -创建ThingSpeak频道

在本任务中,您将创建一个新的Thingspeak通道来存储系统的传感器数据以及与之相关的阈值。

1.完成开始使用ThingSpeak.这一步将向你介绍ThingSpeak及其功能。

2.在你的ThingSpeak账户中创建一个频道来收集与智能植物浇水系统相关的数据。遵循中提到的步骤在新通道中收集数据帮助页面。

3.在创建的通道中,添加四个字段。这些将用于存储以下内容

  • 第1场-环境光强度.这个区域将存储环境光照射在植物上的值。

  • 第2场-土壤水分水平.这块地将储存植物土壤湿度水平的值。

  • 第3场-环境光强阈值.该字段将用于设置光强的阈值水平。

  • 第4场土壤湿度阈值.该字段将用于设置土壤湿度水平的阈值水平。

任务4 -添加和配置ThingSpeak块到Simulink模型万博1manbetx

在这个任务中,您将添加ThingSpeak块到您的模型。ThingSpeak写入模块将用于将湿度水平和光强水平发送到ThingSpeak通道。ThingSpeak读取块将用于读取光照强度和土壤湿度水平的阈值。

1.从Simulink Supportpackage for Arduino库中添加两个ThingSpeak读取万博1manbetx块到您的模型。万博1manbetx该块可以在Arduino块库中的Ethernet和WiFi组中找到。根据您在示例中使用的屏蔽,从相应的组中选择ThingSpeak读取块。

2.配置ThingSpeak读取块以读取存储在任务4中创建的ThingSpeak通道中的阈值。将两个块的“Channel ID”参数设置为您在任务4中创建的Channel ID。根据你在任务4中设置的通道访问,为这两个块设置“通道访问”参数。如果访问类型是私有的,请提供与通道相关的“READ API KEY”。光强阈值存储在第3块,土壤水分水平阈值存储在第4块。

3.添加ThingSpeak写块。这个块放在Arduino库的以太网和WiFi组下面。与步骤1类似,选择与示例中使用的屏蔽类型相对应的适当块。

4.配置ThingSpeak写块。将块的“Channel ID”参数设置为您在任务4中创建的Channel ID。在“Write API Key”参数中提供Write API Key。由于我们正在存储光强和土壤湿度的值,将“要发送的变量数量”参数设置为2。

5.保存您的模型。

任务5 -在ThingSpeak上存储土壤湿度和环境光强度的初始阈值

通过在MATLAB命令提示符中执行以下命令,可以将土壤湿度和环境光强的阈值存储在通道的第3和第4字段中

(通道ID,{光强阈值,土壤湿度阈值},“字段”, [3,4],“WriteKey”,通道写API密钥)

寻求进一步的帮助thingSpeakWrite,请参考thingSpeakWrite或在MATLAB命令提示符中输入以下命令

帮助thingSpeakWrite

任务6 -配置Simulink模型部署万博1manbetx在Arduino硬件上

在本任务中,您将配置要部署在Arduino硬件上的模型。当我们从Arduino模板模型开始时,该模型已经为Arduino MEGA 2560配置了。

1.打开Arduino智能植物浇水模型。

2.硬件选项卡上,单击硬件设置.在配置参数对话框中的参数硬件实现窗格。如果您使用的不是Arduino MEGA 2560的Arduino单板,请在界面中设置所需的Arduino单板硬件板参数。

3.如果在本例中使用了以太网或WiFi屏蔽,请在下面设置网络详细信息以太网屏蔽特性无线网络属性配置参数>硬件实现

4.硬件选项卡中的Simuli万博1manbetxnk模型模式部分中,选择在船上跑然后点击构建、部署和启动.Simu万博1manbetxlink模型将被构建并部署到连接的Arduino板上。

其他可以尝试的事情

1.根据数据采取行动:按照中提到的步骤操作根据你的数据行动通过向您发送推文,帮助页面在低光条件下做出反应。

2.你可以用晶体管来代替继电器屏蔽。

3.创建一个移动应用程序使用万博1manbet万博1manbetxxAndroid设备的Simulink支持包万博1manbet万博1manbetxx苹果iOS设备的Simulink支持包设定光照和土壤湿度的阈值。这两个支持包都提供万博1manbetx了一个ThingSpeak块,类似于Arduino库中可用的ThingSpeak块,用于在ThingSpeak通道上存储数据。