Hello everybody.
Something very strange happens in my code and I really need your help.
So, my setup is an arduino uno with an ethernet shield and a vb net application. What app does is to give some data to the arduino in a local net . It works but there is an issue. Sometimes i v got rapidly response from the arduino some others with a delay which is max approx 4 sec. I cant find why is that happen.
When i try the same procedure through the web browser or my mobile it works without any delay.
What I have tried:
Here is my codes.
arduino code :
<pre lang="c#"><pre>
#include <SPI.h>
#include <Ethernet.h>
#define HC12 Serial
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 102 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(84);
String readString;
void setup(){
pinMode(5, OUTPUT);
Ethernet.begin(mac, ip, gateway, gateway, subnet);
server.begin();
Serial.begin(9600);
HC12.begin(9600);
Serial.println("server LED test 1.0");
}
void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 200) {
readString += c;
}
if (c == '\n') {
String stringOne = readString;
String stringTwo = stringOne;
stringTwo.replace("HTTP/1.1", "");
String stringThree = stringTwo;
stringThree.replace("%20", " ");
HC12.println(stringThree);
if(readString.indexOf('?') >=0) {
client.println("HTTP/1.1 ");
client.println();
client.println();
}
else {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino GET test page</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H1>Zoomkat's simple Arduino button</H1>");
client.println("<a href=\"/?on1\" target=\"inlineframe\">ON</a>");
client.println("<a href=\"/?off\" target=\"inlineframe\">OFF</a>");
client.println("<IFRAME name=inlineframe style=\"display:none\" >");
client.println("</IFRAME>");
client.println("</BODY>");
client.println("</HTML>");
}
delay(1);
client.stop();
if(readString.indexOf("on1") >0)
{
digitalWrite(5, HIGH);
Serial.println("Led On");
}
if(readString.indexOf("off") >0)
{
digitalWrite(5, LOW);
Serial.println("Led Off");
}
readString="";
}
}
}
}
}
and the vb code :
<pre lang="vb"><pre>
Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("m")
End If
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "m"
WebBrowser1.Navigate(TextBox10.Text)
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "c" & Label10.Text
WebBrowser1.Navigate(TextBox10.Text)
' Threading.Thread.Sleep(20)
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "a" & Label11.Text
WebBrowser1.Navigate(TextBox10.Text)
' Threading.Thread.Sleep(20)
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "k"
WebBrowser1.Navigate(TextBox10.Text)
' Threading.Thread.Sleep(20)
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Label8.Text = TrackBar1.Value
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("z" & Val(Label8.Text))
End If
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "z" & Val(Label8.Text)
WebBrowser1.Navigate(TextBox10.Text)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label5.Text = "ΕΞΕΛΙΞΗ"
Label10.Text = TextBox1.Text * 3600 + TextBox2.Text * 60
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "c" & Label10.Text
WebBrowser1.Navigate(TextBox10.Text)
If Label10.Text > 0 Then
Timer2.Start()
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Label15.Text = "ΕΞΕΛΙΞΗ"
Label11.Text = TextBox3.Text * 3600 + TextBox4.Text * 60
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "a" & Label11.Text
WebBrowser1.Navigate(TextBox10.Text)
'Label11.Text = Label11.Text + 1
If Label11.Text > 0 Then
Timer3.Start()
End If
End Sub
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
TextBox10.Text = TextBox11.Text
TextBox10.Text = TextBox10.Text & "s" & RichTextBox1.Text
WebBrowser1.Navigate(TextBox10.Text)
End Sub
End Class