2022年 03月 07日
ベルサイホンと電子工作 3
|
ベルサイホンと電子工作 2からの続き



前回の電子工作ではアクアポニックスの満水からの排水が終わったらポンプ30分停止で節電を狙った。
続いて日中の7時~16時(夏場は長くする)だけ運転し夜間は完全停止を狙う。16時過ぎたらポンプ停止だけでは栽培槽の中に水が中途半端に残った状態になることもある。(根が酸素呼吸するため待機時間は完全排水仕切った状態が望ましい)
込み入った手順を整理するのに便利なフローチャートを初めて書いてみた。googleスライドも初の利用。



プログラム通りの動作しているかESP-WROOM-32で満排水状況を確認。

#include <DS3232RTC.h>
int Vpin=7;//センサー5V間欠供給
int datapin=5; // センサーDOpin排水流の有無
int pumppin=3; //ポンプ駆動pin
int data=0; //排水流有り0、無し1
int data2=0; //ポンプ稼働1 停止0
void setup() {
Serial.begin(115200);
pinMode(Vpin,OUTPUT);
pinMode(datapin,INPUT);
pinMode(pumppin,OUTPUT);
}
void loop() {
tmElements_t tm;
RTC.read(tm);
Serial.print(tm.Hour, DEC);//時を表示
Serial.print("時");
Serial.print(tm.Minute, DEC);//分を表示
Serial.print("分");
Serial.print(tm.Second, DEC);//秒を表示して改行
Serial.print(" 水流");
Serial.print(data);
Serial.print(" ポンプ");
Serial.println(data2); //ポンプ稼働1 停止0
digitalWrite(Vpin,HIGH); // センサー給電
delay(1000);
data=digitalRead(datapin); //DO pin 排水流の有無
data2=digitalRead(pumppin); //ポンプ稼働1 停止0
if(tm.Hour >= 7 && tm.Hour <= 16 && data==1){ //時間内且つ水流なし
digitalWrite(Vpin,LOW);//センサー休止
digitalWrite(pumppin,HIGH); //ポンプon
delay(1000UL*6UL); //センサー読取り間隔6秒
}
else if(tm.Hour >= 7 && tm.Hour <= 16 && data==0){ //時間内且つ水流あり
digitalWrite(Vpin,LOW); //センサー休止
delay(1000UL*25UL); //本格排水待ち25秒
digitalWrite(pumppin,LOW); //ポンプoff
delay(1000UL*60UL*30UL); //待機30分
}
else if(tm.Hour <= 7 && tm.Hour >= 16 && data2==1){ //時間外且つポンプ稼働中
digitalWrite(Vpin,LOW); //センサー休止
digitalWrite(pumppin,HIGH); //ポンプon
delay(1000UL*6UL); //センサー読取り間隔6秒
}
else if(tm.Hour <= 7 && tm.Hour >= 16 && data==0){ //時間外且つ水流あり
digitalWrite(Vpin,LOW); //センサー休止
delay(1000UL*25UL); //本格排水待ち25秒
digitalWrite(pumppin,LOW); //ポンプoff
}
else{ //時間外 水流なし ポンプOFFの場合
digitalWrite(Vpin,LOW); //センサー休止
digitalWrite(pumppin,LOW); //ポンプoff
delay(1000UL*60UL*30UL); //待機30分
}
delay(1000);
}
9/13追記
※時間外の動作がおかしかったが原因判明
if文の else if(tm.Hour <= 7 && tm.Hour >= 16
7以下で且つ16以上なんて数字はあり得なかった
以下のように修正する
else if((tm.Hour <= 7 || tm.Hour >= 16) && data2==1){ //時間外且つポンプ稼働中
else if((tm.Hour <= 7 || tm.Hour >= 16) && data==0){ //時間外且つ水流あり
by ainame60
| 2022-03-07 16:07
| DIY・電子工作
|
Comments(0)

