点灯入门 关于自动浇花土壤湿度传感器突然失效的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1915|回复: 3

[求助] 点灯入门 关于自动浇花土壤湿度传感器突然失效的问题

[复制链接]
发表于 2021-9-21 09:05 | 显示全部楼层 |阅读模式
本帖最后由 duxiaodi888 于 2021-9-21 09:08 编辑

各位好,本人小白一个 先贴代码,在做一个自动浇花系统,用的点灯官方例子改的:注:humi_read是传感器湿度
if (humi_read < 70) {   //humi_read是传感器湿度
    Text1.print("灌溉中");
    digitalWrite(led1,LOW);//进行灌溉
    delay(2000);

  } else if (humi_read >= 70) {
    Text1.print("湿度正常");
    digitalWrite(led1,HIGH);
    delay(2000);//定义一次灌溉时间
  }

那么问题来了,如果传感器坏了,比如说土壤湿度传感器一直湿度小于70,那程序会一直运行下去,水泵就一直开着,最后容易水漫金山啊,怎么进行程序更好的设计?有例子吗??最好有简单一点的代码,纯小白!!
如果是改成氧气泵养鱼鱼,则需要更为妥善的传感器故障处理代码,否则很容易造成损失
 楼主| 发表于 2021-9-21 10:20 | 显示全部楼层
算了 目前只能这样了,严格限制每个小时浇水次数平均值 整数变量shi指的是从阿里时序服务器上下载的时间 24小时制
if ((humi_read < 70)&&(counter/shi<=10)) { //规定在湿度小于70,且每小时浇水次数小于10次时执行浇水循环
    Text1.print("灌溉中");
    digitalWrite(led1,LOW);
    delay(2000);
    counter++;//浇水计数加一
    Text3.print(counter);
  } else if (humi_read >= 70) {
    Text1.print("湿度正常,不浇水啦");
    digitalWrite(led1,HIGH);
    delay(2000);//定义一次灌溉时间
  }

  timeClient.update();//更新时间
  int shi = timeClient.getHours();//小时赋值
  int fen = timeClient.getMinutes();//分钟赋值
  Serial.println(timeClient.getFormattedTime());//串口打印时间
  BLINKER_LOG("当前时间: ",fen," 分");//串口当前分钟
  BLINKER_LOG("当前时间: ",shi, " 时");//串口当前小时
  delay(1000);
  if (shi = 1) {  //计数凌晨归零
    counter = 0 ;
  }
发表于 2021-9-27 19:58 来自手机 | 显示全部楼层
例如先浇30秒,过一小时再判断湿度是否正常,再浇30秒。
发表于 2021-10-2 22:20 | 显示全部楼层
得装个温度湿度传感器,最后你发现还是装个监控好用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:57 , Processed in 0.084415 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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