电子说
步骤1:安装花园灌溉
布局多管道,适合喷射,滴灌线和滴头。灌溉控制器将适用于任何灌溉装置。它的核心是测量土壤湿度读数并在土壤过于干燥时激活水龙头计时器。可以校准控制器以设置饱和点的低点,点亮定时器的开启时间以及控制器检查饱和度的频率。
这些设置可以在arduino上更改并存储在EPROM记忆中。 IOT集成也可以更新设置。该项目将每四个小时运行一次控制器,如果土壤太干,则打开水龙头3分钟。如果干/热,它可以连续运行几次,否则每天运行一次或两次。
步骤2:适合分接计时器
安装水龙头计时器并尝试使用可调节的刻度盘来计算出最适合灌溉安装的粗略频率和运行时间。我们将删除计时器并修改它以使用Arduino。
步骤3:Arduino Build
使用接线图作为构建指南。在照片中,使用了电话线和用于连接点的螺钉端子条。需要进行一些焊接。
点击定时器修改
小心拆开分接计时器。我们将对两个可调节表盘进行硬接线,这样它们就可以通过arduino而不是手动拨盘进行控制。左侧频率拨盘将硬连线到复位位置,以便右侧拨盘可以在开/关位置之间切换。如图所示,右侧刻度盘将有一条来自中间右侧触点和外侧右侧触点的电线。默认情况下,计时器将处于关闭位置。如果两根导线接触,定时器将打开。将两根导线连接到5V继电器,然后arduino可以在两根导线之间闭合/断开接触。通过公共继电器端子中的一根导线和常闭端子中的另一根导线,我们将确保在arduino关闭时关闭定时器。将继电器引脚设置为HIGH将打开定时器;将其设置为LOW将关闭计时器。
土壤探测器
对于这个项目,两个钉子被焊接到连接到螺钉端子的电线上。一个钉子的终端直接接地。另一个连接到arduino中的模拟输入和电阻。电阻连接到arduinos 5v信号。如图所示。
温度/湿度传感器
DHT11温度/湿度传感器连接到arduino的5V,接地和数字引脚arduino。
Lora shield
这个项目还使用了Dragino Lora Shield(未在接线图中显示)。
PVC底座
本项目中使用的arduino的PVC底座设计为可以暴露温度/湿度传感器,同时将所有其他组件固定在防水PVC外壳内。为传感器钻一个小孔,用硅将其固定到位,同时阻止水分到达arduino。如图所示。
步骤4:Arduino编程
通过面包板或端子板将组件连接在一起用于编程和测试
EPROM配置
首先,我们需要将配置变量写入EPROM存储器。在你的arduino上运行以下代码:
Github上可用的代码
这里DRY_VALUE设置为960. 1024表示土壤完全干燥,0表示完全饱和,960表示电阻,电缆长度和指甲的良好饱和水平用过的。这可能会因您自己的配置而异。
VALVE_OPEN设置为180000毫秒(3分钟)。当/如果点击计时器打开,它将保持打开3分钟。
RUN_INTERVAL设置为14400000毫秒(4小时)。这意味着控制器将每四小时检查一次土壤湿度,如果饱和度低(大于960),则打开水龙头定时器3分钟。
上面的代码可以更改,这些值在任何时候。
程序代码
Github上可用的代码
依赖关系:
TimedAction
Radio Head
这个例子使用Dragino Lora盾牌,特别是Lora并发示例,盾牌直接连接到Dragino Lora Gateway。
这可以通过删除“BEGIN:lora vars”部分下的代码并更改程序以包含以下Dragino示例或适用于其他无线电/wifi屏蔽等来使用物联网。
提供的代码假定DHT11_PIN是数字引脚4,RELAY_PIN是数字引脚3,土壤湿度模拟引脚是模拟输入0.
调试变量可以设置为true以便串行调试消息可以在波特率9600中记录。
步骤5:机箱构建
切割PVC管道以适应点击计时器和Arduino基地。为龙头定时器水龙头配件和软管接头钻孔。在管道上钻孔足以容纳汽车导管,将10厘米长的导管滑入孔中,并从arduino和tap定时器中取出导线。这应包括:
来自Arduino
来自arduino USB端口的电源线和/或USB电缆。
土壤湿气电缆(VCC,GND,A0)
继电器NC和公共螺钉端子的两根电线
来自分接计时器
电源线
右拨号触点的两根电线
步骤6:粘合前测试控制器
确保一切正常,然后密封所有内容。
上面的照片显示了esky中的样品设置,其中土壤湿度探头放在锅中,水龙头计时器装有来自软饮料瓶的水。
一个滴头连接到点击计时器。
这是一个很好的方法来测试设置没有在水上或水下工厂。
这个例子可以运行,只要需要校准控制器。
步骤7:胶水/防水外壳
使用PVC底漆和PVC水泥固定端盖和联轴器。
使用填缝料/硅填充自动导管周围的任何空隙并敲击定时器配件。
此处,arduino外壳上使用螺钉端盖以便于操作。
步骤8:安装
在晴朗的日子安装。元件和电线在密封之前需要保持干燥。
将控制器放置在花园龙头所在位置和土壤探针放置位置之间的某个位置。
适合在安装完成之前,请确定它是无动力的。
安装土壤探针。
将条形端子连接到每个组件,然后从每个组件的螺丝端子上铺设电话线确保电缆被汽车导管覆盖。将所有部件连接在一起
用螺纹密封胶带密封所有端子和任何其他暴露部件,然后用电工胶带密封。
用螺纹密封胶带密封分流管的任何松动/暴露区域,然后用电工胶带密封
将定时器连接到3.2v电源。电池组或连接到电源插座的3.2V DC-AC适配器。
将Arduino连接到6-12V DC电源。电池组或连接到电源插座的USB/DC-AC适配器。
启动并测试!
步骤9:ThingsBoard集成 - 监控和报告
此示例使用连接到Dragino Lora网关的A Dragino Lora Shield。无论是使用此设置,另一个Lora设置还是任何其他IOT连接,灌溉控制器收集的数据都可以转发到物联网等物联网平台上。默认情况下,程序发送以下数据字符串,其中每个字符字节为十六进制编码:
TXXXHXXXSXXXXRX
其中T后跟温度,H后跟湿度,S后跟饱和度等级和R后跟一个数字,与其在上一次运行间隔执行的操作有关。这可以是0-5,其中每个数字表示:
0: The program is initialising
1: Temperature Sensor fault
2: Temperature was too low to run
3: Soil moisture too dry so the tap timer was activated
4: Soil moisture fine so the tap timer was not activated
5: The irrigation controller has been deactivated
有几种方法可以在您自己的设备上安装Thingsboard的副本,或者您可以在我们的ThingsBoard安装上设置一个免费帐户这里。
在Thingsboard中设置你的设备
按照这些说明在Thingsboard中添加一个名为“Irrigation Controller”的新设备。
从设备推送遥测数据
按照以下说明设置通过MQTT,HTTP或CoAp将遥测数据从设备推送到Thingboard的方法。
在我们的服务器上,我们将设备运行时每隔四小时将以下JSON推送到https://thingsboard.meansofproduction.tech/api/v1/。..:
{“temperature”:13, “humidity”:78, “active”: true,“saturation”:941,“lastRunResult”:“RUN_RESULT_NO_WATER”}
此外,我们还定期将以下属性推送到https://thingsboard.meansofproduction.tech/api/v1/。..并提供有关上次查看节点的数据:
{“lastSeen”:“2018-06-04 12:00:00”, “secondsSinceLastSeen”:1543}
用于设备停止传输数据时触发的警报。
创建仪表板
按照此处的说明创建仪表板。我们的小部件包括:
从lastRunResult遥测领域创建的简单卡片小部件。
用于温度遥测领域的垂直数字控制器。从lastRunResult遥测领域创建的时间序列表,显示最后几天的数据。
一个显示饱和遥测场的水平条。这使用数据后处理功能:
return 1024-value;
并设置最小值和最大值0-100。这样,饱和度可以表示为百分比。
显示湿度值的量具。
时间序列条形图,包括温度,湿度和运行结果,分为5上周的小时数,汇总显示最大值。这为我们提供了一个四小时跑步活动的酒吧。数据后处理功能用于将运行结果表示为0或120,具体取决于是否运行水。这提供了一个简单的视觉反馈,以查看一周内水的运行频率。
一张静态HTML卡,显示花园的图像。
电子邮件提醒
我们使用规则为灌溉控制器设置电子邮件警报。全部使用消息过滤器和发送邮件操作插件操作。
要在灌溉控制器无法发送数据时发送电子邮件警报,我们使用“设备属性过滤器”使用以下过滤器:
typeof cs.secondsSinceLastSeen !== ‘undefined’ && cs.secondsSinceLastSeen 》 21600
如果土壤变得太干,要发送电子邮件,请使用以下遥测过滤器
typeof saturation != “undefined” && saturation 》 1010
要根据土壤变得过于潮湿而发送电子邮件,请使用以下遥测过滤
全部0条评论
快来发表一下你的评论吧 !