请选择 进入手机版 | 继续访问电脑版
凡是官网购买产品,均可以获得积分,(积分可以用来下载技术资料)还可以获得精致技术支持。零知实验室可提供全套电子方案定制服务,了解详情请咨询客服。           
查看: 1272|回复: 1

零知开源小项目-制作一个简单的自动浇花神器

[复制链接]
发表于 2019-7-30 16:01:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 零知小技术 于 2019-7-30 18:10 编辑

每次给家里的盆栽浇水都挺麻烦的,要是不在家也没法给盆栽浇水,可能过几天就枯萎了。前面我们使用过继电器制作过摇头风扇,现在我们用继电器来制作一个自动浇花系统。

一、工具材料
想要制作一个自动浇花系统,我们需要准备以下工具:
QQ图片20190730162754.jpg


二、硬件接线
土壤湿度传感器A0,D0脚分别接零知标准板的A1,4号引脚,继电器IN脚接标准板的1号引脚。具体接线参考下图:
无标题.png QQ截图20190730171847.jpg
QQ截图20190729112448.png
实物连线如图所示:
QQ图片20190729172507.jpg

三、软件代码

打开零知开发工具,新建项目,输入以下代码:

[C++] 纯文本查看 复制代码
/**********************************************************
*    文件: pump.ino      by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
*    -^^- 零知开源,让电子制作变得更简单! -^^-
*    时间: 2019/07/25 10:58
*    说明:
************************************************************/
#include <Servo.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3f,16,2);

int sensorpin = 4;//传感器D0脚接4号引脚 有水为0;无水为1
int pumpin = 1;//续电器引脚 低电平触发 
int sensor;
int sensor1;
int sensorpin1 = A1;//传感器A0脚接A2引脚,输出湿度的模拟值

// 复位或上电后运行一次:
void setup() {
        //在这里加入初始化相关代码,只运行一次:
        Serial.begin(9600);
        lcd.init();//LCD液晶屏初始化
        lcd.backlight();//LCD液晶屏打开背光
        pinMode(sensorpin,INPUT);
        pinMode(sensorpin1,INPUT);
        pinMode(pumpin,OUTPUT);
        digitalWrite(pumpin,HIGH);//水泵关闭
        
}

//一直循环执行:
void loop() {
        // 在这里加入主要程序代码,重复执行:
        sensor = digitalRead(sensorpin);
        sensor1 = analogRead(sensorpin1);
        
        Serial.print("A0:");
        Serial.println(sensor1);
        
        lcd.print("Humidity:");
        lcd.print(sensor1);//LCD液晶屏显示当前湿度模拟量
        
        //如果传感器检测值为1表示没水;0表示有水
        if(sensor==1&&sensor1>2400)
        {
                Serial.print(sensor);
                Serial.println("缺水状态!");
                digitalWrite(pumpin,LOW);//打开水泵
                Serial.println("水泵-打开");
                
                lcd.setCursor(2,1);//在第二行空两格显示
                lcd.print("Watering!");
                
                delay(10000);//浇水10秒
                
                digitalWrite(pumpin,HIGH);//关闭水泵
                Serial.println("水泵-关闭");
                sensor1 = analogRead(sensorpin1);                lcd.clear();//LCD液晶屏清屏
                lcd.print("Humidity:");
                lcd.print(sensor1);
                lcd.setCursor(2,1);
                lcd.print("Stop watering!");
                
                
        }
        else
        {
                digitalWrite(pumpin,HIGH);//关闭水泵
                Serial.print(sensor);
                Serial.println("不缺水状态!");
                Serial.println("水泵-关闭");
                
                lcd.clear();
                sensor1 = analogRead(sensorpin1);
                lcd.print("Humidity:");
                lcd.print(sensor1);
                lcd.setCursor(2,1);
                lcd.print("Soil moisture!");
                
        }
        
        delay(10000);//10秒钟扫描一次;
        lcd.clear();
        //delay(36000000);//10小时扫描一次
        
}


然后点击验证,通过后再点击上传,将程序上传到零知标准板中。


四、效果展示
以上的步骤都完成以后,我们就可以看到预期的效果了。视频看下一楼





回复

使用道具 举报

 楼主| 发表于 2019-7-30 16:02:07 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 小黑屋| 零知实验室 ( 粤ICP备17040594号-3 )

GMT+8, 2020-4-9 05:25 , Processed in 0.064738 second(s), 18 queries .

快速回复 返回顶部 返回列表