質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Q&A

0回答

884閲覧

arduinoとVB.netのTCP/IP受送信

matatatata

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

0グッド

0クリップ

投稿2021/01/13 09:00

編集2021/01/13 09:12

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側が想像つかない状態なので
教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/01/13 09:04

Arduino側もできてなければそもそもデータ転送できないです
dodox86

2021/01/13 09:33

通信をやったことが無いのであれば、最初から全ての機能を盛り込むのではなく、まず簡単なデータの通信だけをするプログラムを作って確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問