I use esp8266 receive package from Hercules software
I send message from Hercules with UDP protocol to esp8266 only one message but Esp8266 recieve more than one message.
i try to catch the message with the wireshark on network and i saw only one.
this is my code
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
int status = WL_IDLE_STATUS;
const char* ssid = "URU-Wifi"; // your network SSID (name)
const char* pass = ""; // your network password
unsigned int localPort = 12345; // local port to listen for UDP packets
byte packetBuffer[512]; //buffer to hold incoming and outgoing packets
// A UDP instance to let us send and receive packets over UDP
WiFiUDP Udp;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// setting up Station AP
WiFi.begin(ssid);
// Wait for connect to AP
Serial.print("[Connecting]");
Serial.print(ssid);
int tries=0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
tries++;
if (tries > 30){
break;
}
}
Serial.println();
printWifiStatus();
Serial.println("Connected to wifi");
Serial.print("Udp server started at port ");
Serial.println(localPort);
Udp.begin(localPort);
}
int lo1 = 0;
void loop()
{
int noBytes = Udp.parsePacket();
String received_command = "";
if ( noBytes ) {
lo1++;
Serial.println(lo1);
Serial.print(millis() / 1000);
Serial.print(":Packet of ");
Serial.print(noBytes);
Serial.print(" received from ");
Serial.print(Udp.remoteIP());
Serial.print(":");
Serial.println(Udp.remotePort());
// We've received a packet, read the data from it
Udp.read(packetBuffer,noBytes); // read the packet into the buffer
// display the packet contents in HEX
for (int i=1;i<=noBytes;i++)
{
Serial.print(packetBuffer[i-1],HEX);
received_command = received_command + char(packetBuffer[i - 1]);
if (i % 32 == 0)
{
Serial.println();
}
else Serial.print(' ');
} // end for
Serial.println();
Serial.println(received_command);
// Acknowlege package
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write("Answer from ESP8266 ChipID#");
Udp.print(system_get_chip_id());
Udp.write("#IP of ESP8266#");
Udp.println(WiFi.localIP());
Udp.endPacket();
} // end if
delay(10);
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
}
another question
my ESP is unstable some time it response very longtime. what's happen ?
I use ESP07 model
Please help me.
ps. sorry about my grammar.