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

duxiaodi888 发表于 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,那程序会一直运行下去,水泵就一直开着,最后容易水漫金山啊,怎么进行程序更好的设计?有例子吗??最好有简单一点的代码,纯小白!!
如果是改成氧气泵养鱼鱼,则需要更为妥善的传感器故障处理代码,否则很容易造成损失

duxiaodi888 发表于 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 ;
}

doraemon2099 发表于 2021-9-27 19:58

例如先浇30秒,过一小时再判断湿度是否正常,再浇30秒。

智能花园 发表于 2021-10-2 22:20

得装个温度湿度传感器,最后你发现还是装个监控好用
页: [1]
查看完整版本: 点灯入门 关于自动浇花土壤湿度传感器突然失效的问题