teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

arduino側のプログラムの更新

2021/01/13 09:12

投稿

matatatata
matatatata

スコア0

title CHANGED
File without changes
body CHANGED
@@ -51,4 +51,57 @@
51
51
  MessageBox.Show(ex.Message, "Fatal Error")
52
52
  RELAY_OFF1.Enabled = False
53
53
  End Try
54
- End Sub
54
+ End Sub
55
+
56
+
57
+ arduino側
58
+ void loop() {
59
+ boolean gRes=false;
60
+ digitalRead(EARTHQUAKE_INPUT);
61
+ digitalRead(WATER_INPUT);
62
+ //// 送信////
63
+ if (digitalRead(EARTHQUAKE_INPUT)== HIGH && digitalRead(WATER_INPUT)== HIGH)
64
+ {
65
+ EARTHQUAKE_count = 0;
66
+ WATER_count = 0;
67
+ digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON
68
+
69
+ }else if(digitalRead(EARTHQUAKE_INPUT)== LOW){
70
+ EARTHQUAKE_count = 0;
71
+ EARTHQUAKE_count=EARTHQUAKE_count+1;
72
+ digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON
73
+
74
+ }else if(digitalRead(WATER_INPUT)== LOW){
75
+ WATER_count = 0;
76
+ WATER_count=WATER_count+1;
77
+ digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON
78
+
79
+ }else{
80
+ EARTHQUAKE_count = 0;
81
+ WATER_count = 0;
82
+ }
83
+
84
+ /////受信///
85
+ if(gRes)//TCPサーバとの接続判定
86
+ {//TCPサーバと接続済みの場合
87
+ while(client.available())
88
+ {
89
+ String line = client.readStringUntil('\n');
90
+ Serial.println(line);
91
+ client.print(line + "OK\r\n");
92
+
93
+ int ii=line.indexOf('E');
94
+ if(line[ii]=='E' && line[ii+1]=='N' && line[ii+2]=='D' )
95
+ {gRes=false;delay(5000);}//ENDコマンド受信の場合
96
+ }
97
+ }
98
+ else
99
+ {//TCPサーバと接続していない場合
100
+
101
+ }
102
+ }
103
+
104
+ 送受信するときに0 or 1を送って
105
+ 1ならarduino側のリレーをOFFにしたいです。
106
+ まだ、arduino側が想像つかない状態なので
107
+ 教えていただきたいです。