Hi all,
I have a problem to show data in arduino to vb.net. I already make the code but I only get random value number in my vb(different from serial monitor). Anyone know what’s the problem?
I really appreciate any help.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0xA3, 0x12 };
IPAddress ip(192,168,1,8);
byte subnet[] = { 255, 255, 252, 0 };
EthernetServer server(12);
String buffer="";
void setup() {
Serial.begin(9600);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip, subnet);
server.begin();
}
void loop() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available())
{
char c=client.read();
Serial.write(c);
client.print(c);
buffer+=c;
if (c=='G')
{
int value1 = analogRead (A0);
int value2 = analogRead (A1);
int value3 = analogRead (A2);
int value4 = analogRead (A3);
int value5= analogRead (A4);
int value6= analogRead (A5);
int value7= digitalRead (3);
int value8= digitalRead (4);
int value9= digitalRead (5);
//Kirim Frame Data ke Master
Serial.print('*'); // Start Header
client.print('*');
Serial.print(value1, DEC);
client.print(value1,DEC);
Serial.print(",");
client.print(",");
Serial.print(value2, DEC);
client.print(value2,DEC);
Serial.print(",");
client.print(",");
Serial.print(value3, DEC);
client.print(value3,DEC);
Serial.print(",");
client.print(",");
Serial.print(value4, DEC);
client.print(value4,DEC);
Serial.print(",");
client.print(",");
Serial.print(value5,DEC);
client.print(value5,DEC);
Serial.print(",");
client.print(",");
Serial.print(value6,DEC);
client.print(value6,DEC);
Serial.print(",");
client.print(",");
Serial.print(value7, DEC);
client.print(value7,DEC);
Serial.print(",");
client.print(",");
Serial.print(value8, DEC);
client.print(value8,DEC);
Serial.print(",");
client.print(",");
Serial.print(value9,DEC);
client.print(value9,DEC);
Serial.print(",");
client.print(",");
Serial.print('#');
client.print('#' );// End Of Data
Serial.println();
client.println(); // send a cr/lf
delay(100);
}
}
}
}
}
and vb code are like this
Imports System.IO
Imports System.Threading
Imports System.Text
Public Class Form3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Winsock1.Connect("192.168.1.8", 12)
If Winsock1.CtlState = MSWinsockLib.StateConstants.sckConnected Then
Label1.Text = "connected"
End If
End Sub
Private Sub Winsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival
Dim x As Object
Dim str As String
Winsock1.GetData(x)
str = BytesToString(x)
txtip.Text = str
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Winsock1.SendData("G")
End Sub
Public Function BytesToString(ByVal Input As Byte()) As String
Dim Result As New System.Text.StringBuilder(Input.Length * 2)
Dim Part As String
For Each b As Byte In Input
Part = Conversion.Str(b)
If Part.Length = 1 Then Part = "0" & Part
Result.Append(Part)
Next
Return Result.ToString()
End Function
End Class