点灯入门 关于自动浇花土壤湿度传感器突然失效的问题
本帖最后由 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,那程序会一直运行下去,水泵就一直开着,最后容易水漫金山啊,怎么进行程序更好的设计?有例子吗??最好有简单一点的代码,纯小白!!
如果是改成氧气泵养鱼鱼,则需要更为妥善的传感器故障处理代码,否则很容易造成损失
算了 目前只能这样了,严格限制每个小时浇水次数平均值 整数变量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 ;
} 例如先浇30秒,过一小时再判断湿度是否正常,再浇30秒。 得装个温度湿度传感器,最后你发现还是装个监控好用
页:
[1]