arduinoとパソコン側のソフトウェアを無線通信で接続しています。
パソコン側のソフトウェアはvb.netを用いてます。
arduinoからソフトウェアにデータは送受信できているのですが、
ソフトウェア側からarduinoにデートを送受信するプログラムが
いまいちできません。
どのように書けばよいですか。
下記はvb.netの受送信を行いたいプログラムです。
arduino側はまだできてないです。
Private Sub Connect1_Click(sender As Object, e As EventArgs) Handles Connect1.Click
RELAY_OFF1.Enabled = True If flgExit = True Then flgExit = False End If Try If client Is Nothing Then Dim port As Integer = Integer.Parse(Port1.Text) client = New TestClient(IPAddress1.Text, port) End If Do Until (flgExit = True) Dim Water(0, 0) As Byte Dim QUAKE(0, 0) As Byte Dim pNetStream As Sockets.NetworkStream = pTcpClient.GetStream() ' ファイルを 1 行ずつ読み込む 'lblResult1にフォーカスを当てる lblResult1.SelectionStart = lblResult1.Text.Length lblResult1.Focus() lblResult1.ScrollToCaret() lblResult1.Text = lblResult1.Text + client.ReceiveText() 'lblResult1がstring型のためbytedata(Byte型)に変換 Dim bytedata() As Byte = Encoding.GetEncoding("shift_jis").GetBytes(a) objStm.Write(bytedata, 0, bytedata.GetLength(0)) Loop Catch ex As Exception MessageBox.Show(ex.Message, "Fatal Error") RELAY_OFF1.Enabled = False End Try End Sub
arduino側
void loop() {
boolean gRes=false;
digitalRead(EARTHQUAKE_INPUT);
digitalRead(WATER_INPUT);
//// 送信////
if (digitalRead(EARTHQUAKE_INPUT)== HIGH && digitalRead(WATER_INPUT)== HIGH)
{
EARTHQUAKE_count = 0;
WATER_count = 0;
digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON
}else if(digitalRead(EARTHQUAKE_INPUT)== LOW){ EARTHQUAKE_count = 0; EARTHQUAKE_count=EARTHQUAKE_count+1; digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON }else if(digitalRead(WATER_INPUT)== LOW){ WATER_count = 0; WATER_count=WATER_count+1; digitalWrite(RELAY_OUTPUT,HIGH); //Relay ON
}else{
EARTHQUAKE_count = 0;
WATER_count = 0;
}
/////受信///
if(gRes)//TCPサーバとの接続判定
{//TCPサーバと接続済みの場合
while(client.available())
{
String line = client.readStringUntil('\n');
Serial.println(line);
client.print(line + "OK\r\n");
int ii=line.indexOf('E'); if(line[ii]=='E' && line[ii+1]=='N' && line[ii+2]=='D' ) {gRes=false;delay(5000);}//ENDコマンド受信の場合 }
}
else
{//TCPサーバと接続していない場合
}
}
送受信するときに0 or 1を送って
1ならarduino側のリレーをOFFにしたいです。
まだ、arduino側が想像つかない状態なので
教えていただきたいです。
あなたの回答
tips
プレビュー