(SKU:KIT0003)自动浇花套件V2.0
来自DFRobot Product Wiki
目录 |
概述
随着人们生活节奏的加快,人们开始变得越来越忙碌,偶而出差、旅行、探亲也是很无可避免的事情,但这个时候问题来了,家中心爱的花草有谁来照管?
一个好的生活环境,植物是必不可少的一部分。据了解,80%的花草生长问题是由于不按时浇水导致的。特别是在都市生活的白领们,平时工作时间长,经常加班,生活不规律。辛苦几个月种的花,可能就因为一两周的不停加班而凋谢。直到某一天突然看到,心情就会变得很差,影响工作情绪。这对广大爱花人士来说,是一件非常心痛的事情,辛苦工作几许,却因为出差几天,加班几天,旅行几天,便失去了爱花的生命。
DFRobot专为广大DIY人士,养花爱好者推出了一款可编程自动浇花套件,基于Arduino Leonardo控制器设计,使用土壤湿度传感器,配上空气温湿度传感器,可以实时监测当前温湿度和土壤湿度。可手动设置湿度阈值,当湿度低于一定数值时,自动开启水泵。适用于不同品类的植物。板载一个Xbee接口,可插WiFi,蓝牙,Zigbee等无线设备,连接到本地网关,使实现物联网远程控制。即使不在家也可以自动照顾您的花草,免除您的后顾之忧。
技术规格
- 输入电源:6-12V
- bootloader:leonardo
- 具有4个模拟口,5个数字口
- 支持湿度传感器
- 支持潜水泵和双稳态电磁阀浇水
- 具有室内温度和湿度检测
- 板载土壤湿度阀值调节
- 支持xbee无线数传
- 支持USB程序下载
- 预留碳棒接口
- 预留DS18B20温度传感器接口
- 电源接口:接线柱
- 潜水泵接口:接线柱
- 碳棒接口:接线柱
- DS18B20温度接口:接线柱
- 预留3.3V电源输出接口焊点
- 潜水泵额定电压:4.5-12V
- 潜水泵扬程:0—220cm
- 模块尺寸:75 x 50mm
传感器资料
配送清单
- Free Life自动浇花系统控制器 1个
- Micro USB线 1根
- DHT11温湿度传感器 1个
- 土壤湿度传感器 1个
- 模拟接口转数字接口传感器连接线 2根
- 潜水泵 1个(注意:潜水泵必须在水中使用,不能露出水面!)
- 潜水泵电源连接线 1根
- 主板电源连接线 1根
- 橡胶水管 1米
- 塑料外壳 1个
- 2mm一字螺丝刀 1个
- 1号十字螺丝刀 1个
组装示意图
- 此套件中不含碳棒、XBEE、DS18B20,仅预留了接口,若想使用此产品请自行单独购买。
- 提示:
- 主控板上的蓝色旋钮接在模拟引脚A1上,用户可以在程序中读取该旋钮的值来作为浇花的阈值。
- DS18B20温度传感器接口可以直接外接三线DS18B20温度传感器。购买 DS18B20 防水数字温度传感器(SKU:DFR0198)
- 连接DHT11温湿度传感器时,请将连接线的绿线朝上,竖直插在D9引脚上。
- 连接土壤湿度传感器时,请将连接线的蓝线朝上,竖直插在A2引脚上。
- 潜水泵连接线的棕色线接Solenoid Valve接口的+,蓝色线接-。
- 电池盒连接线的红色接PWRIN接口的+,黑色线接-。
Arduino 样例程序
测试传感器
- 下载DHT11库文件
- 复制以下代码上传至主控器
注:此代码作用为将测得的传感器数据上传到电脑端的串口监视器,不具备浇花功能。
#include <dht11.h> dht11 DHT; #define MOISTURE_PIN A2 #define DHT11_PIN 9 int airHumidity;//空气湿度 int airTemperature;//空气温度 int soilHumidity;//土壤湿度 void setup(){ Serial.begin(9600); } void loop(){ int chk; chk = DHT.read(DHT11_PIN); // READ DATA switch (chk){ case DHTLIB_OK: Serial.print("OK,\t"); break; case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; default: Serial.print("Unknown error,\t"); break; } airHumidity=DHT.humidity; airTemperature=DHT.temperature; soilHumidity=analogRead(MOISTURE_PIN); Serial.print("airHumidity:"); Serial.print(airHumidity); Serial.print(",\t"); Serial.print("airTemperature:"); Serial.print(airTemperature); Serial.print(",\t"); Serial.print("soilHumidity:"); Serial.println(soilHumidity); delay(2000); }
结果
- 打开串口监视器,选择波特率和程序中一致,本示例为9600,可观察到如下结果。
测试水泵
注:此代码作用为控制水泵打开和关闭,不具备浇花功能。
void setup() { //水泵控制引脚初始化 pinMode(5, OUTPUT); pinMode(6, OUTPUT); digitalWrite(5, LOW); digitalWrite(6, LOW); } void loop() { pumpOn(); delay(1000); pumpOff(); delay(1000); } //水泵打开 void pumpOn() { digitalWrite(5, HIGH); digitalWrite(6, HIGH); } //水泵关闭 void pumpOff() { digitalWrite(5, LOW); digitalWrite(6, LOW); }
自动浇花示例(最终程序)
注:本示例程序未使用DHT11温湿度传感器的数据,仅仅使用土壤湿度传感器数据,当土壤湿度传感器检测数据小于设定湿度时,打开水泵,土壤湿度大于等于设定湿度时关闭水泵。
#define MOISTURE_PIN A2 //土壤湿度传感器引脚 int soilHumidity;//土壤湿度 int setHumidity = 50; //设定湿度 void setup() { //水泵控制引脚初始化 pinMode(5, OUTPUT); pinMode(6, OUTPUT); digitalWrite(5, LOW); digitalWrite(6, LOW); } void loop() { soilHumidity = map(analogRead(MOISTURE_PIN), 0, 1023, 0, 100);//将土壤湿度传感器转换为0—100% if (soilHumidity < setHumidity) { pumpOn(); } else { pumpOff(); } } //水泵打开 void pumpOn() { digitalWrite(5, HIGH); digitalWrite(6, HIGH); } //水泵关闭 void pumpOff() { digitalWrite(5, LOW); digitalWrite(6, LOW); }
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。