Free_Life自动浇花套件_SKU_KIT0026_ - jimaobian/DFRobotWikiCn GitHub Wiki
随着人们生活节奏的加快,即使是最爱的花草浇水也无法顾及,偶尔出差、旅行、探亲也是很正常的事情,而家中花草谁来管?花草生长问题80%以上是由花儿浇灌问题引起;好不容易种植几个月的花草,因为浇水不及时,长势不好,用来美化家园的花草几乎成了“鸡肋”;对于广大DIY爱好者,我们要介绍一款可以自己编程、设置参数、自己动手组装的自动浇花控制器,这是一款基于Arduino的控制器,使用土壤湿度传感器对土壤湿度进行监测,通过温湿度传感器对室内温度、湿度进行测量,控制水泵或电池阀进行浇水,从而达到自动浇灌的目的。 这个系统我们为它取名为Free Life(自由生活)。
- Free Life自动浇花系统控制器 1个
- Micro USB线 1根
- DHT11温湿度传感器 1个
- 土壤湿度传感器 1个
- 模拟接口转数字接口传感器连接线 2根
- 潜水泵 1个(注意:潜水泵必须在水中使用,不能露出水面!)
- 潜水泵电源连接线 1根
- 主板电源连接线 1根
- 橡胶水管 1米
- 塑料外壳 1个
- 2mm一字螺丝刀 1个
- 1号十字螺丝刀 1个
- 电子文档上位机软件 1份
1、先将水泵的连接头接到控制器的Solenoid Valve端子上,蓝色接负极(-)棕色接正极(+),然后将电源连接头接到PWRIN端子上,黑色接负极(-)红色接正极(+)。
2、如上图所示,将控制板安装到外壳底板上,然后将Moisture Sensor(土壤湿度传感器)插到传感器接口上,这里使用橙色传感器连接线,注意方向,传感器在控制器上的默认端口为模拟口2。
3、将DHT11温湿度传感器插到传感器接口上,这里使用橙色传感器连接线,注意方向,传感器在控制器上的默认端口为数字口9。
4、使用Micro USB线连接电脑,初次使用需要安装USB驱动程序,先去下载Arduino最新的IDE:http://arduino.googlecode.com/files/arduino-1.0.1-windows.zip
5、使用Micro USB线将程序下载到主板上(出厂已经下载好程序,可以直接使用)。
6、以上操作完成后,将外壳盖上。
7、将水装到水桶或水盆里,放在离花盆较近的位置,把配的水管插到潜水泵上然后置于水中,必须保证蓄水充足,以供浇水**(注意潜水泵必须在水中使用,在空气中使用会导致损坏)**。
8、将水泵和电池盒(或者电源适配器)连接到水泵接口和电源接口上。
9、通上电后,如果土壤湿度传感器放在空气中,此时水泵就开始抽水,将土壤湿度传感器的探测头放到水中,此时水泵应该停止抽水。
10、为了能方便用户观察土壤湿度及室内环境的参数,我们开发了flower's life这款软件,通过该软件把土壤湿度和环境温湿度数据呈现在我们面前,打开flower's life软件。界面如下:
11、该软件主要是通过对串口数据的监听来实现对当前控制器串口返回的土壤湿度和室内温度、湿度等参数的读取。其读取时间不定,该软件会自动监测串口数据的接收并自动读取,不会在没有数据的时候随意读取,避免了一定的数据读取冲突造成错误。
12、通过这款软件,能对浇水的动力和湿度传感器进行选择,动力包括潜水泵和双稳态电磁阀,传感器包括土壤湿度传感器和碳棒,我们默认设置为潜水泵和土壤湿度传感器,在没有其他装置的情况下请勿乱设置。插上Micro USB线,点击设置,选择当前串口端口号和通讯波特率,串口号请到设备管理器中查看Arduino下载器的端口号,波特率默认为115200。
13、设置好后,单击链接按钮,连接成功后,我们就可以看到当前土壤湿度以及室内温湿度的情况了。
14、不同的花,对土壤湿度的需求也尽不相同,我们可以根据自动浇花控制器上的湿度调整电位器来改变浇水阈值,以适应不同花儿对土壤湿度的需求,轻轻转动电位器旋钮(如下图箭头所示),软件上的浇水阈值的数据也会随之发生改变,这样,我们就能根据花儿的最佳生长状态调节一个适合的浇水阈值了,浇水上限在库文件中做修改即可。
15、另外,如果环境温度过高,花儿不宜浇水,否则可能会导致花儿枯死,浇水的温度阈值在程序中进行设置,程序默认为40摄氏度以上不启动浇水系统,用户也可以根据自己意愿进行修改。
16、用户可以根据我们提供的资料,对自动浇花系统进行二次开发,使用Arduino IDE环境编程,Arduino下载器将程序下载进去。
功能定义:实现从上位机软件选择湿度传感器(湿度传感器或碳棒)和浇水形式(潜水泵或电池阀),同时返回土壤湿度、室内温度、湿度到上位机上显示。
#include <Free_Life.h> //我们提供的库函数
#include <DHT.h>
#define temperature 40 //室温阀值,用户可以自己定义
Free_Life flower;
void setup()
{
flower.Initialization();//初始化主控制器,默认选择湿度传感器和水泵
Serial.begin(115200);//波特率115200
}
void loop()
{
flower.process(temperature);//传入室温阀值,当室内温度大于该阀值时,水泵强制停止
flower.print();//输出土壤湿度、室内温度、湿度给上位机软件显示
delay(500);
}
Arduino IDE编程环境下载地址 提供的库文件只支持1.0.1以上版本的IDE,硬件选择Arduino leonrado