Arduino Ethernet Shield does not connect to WebServer

I have a problem with my Arduino Ethernet screen communicating with the server, the result on the serial monitor is always:

my arduino code

#include <Ethernet.h> //library for ethernet functions #include <SPI.h> #include <Dns.h> #include <Client.h> //library for client functions #include <DallasTemperature.h> //library for temperature sensors // Ethernet settings byte mac[] = {0x09,0xA2,0xDA,0x00,0x01,0x26}; //Replace with your Ethernet shield MAC byte ip[] = { 192,168,0,54}; //The Arduino device IP address byte subnet[] = { 255,255,255,0}; byte gateway[] = { 192,168,0,1}; IPAddress server(192,168,0,53); // IP-adress of server arduino sends data to EthernetClient client; bool connected = false; void setup(void) { Serial.begin(9600); Serial.println("Initializing Ethernet."); delay(1000); Ethernet.begin(mac, ip , gateway , subnet); } void loop(void) { if(!connected) { Serial.println("Not connected"); if (client.connect(server, 80)) { connected = true; int temp =analogRead(A1); Serial.print("Temp is "); Serial.println(temp); Serial.println(); Serial.println("Sending to Server: "); client.print("GET /formSubmit.php?t0="); Serial.print("GET /formSubmit.php?t0="); client.print(temp); Serial.print(temp); client.println(" HTTP/1.1"); Serial.println(" HTTP/1.1"); client.println("Host: http://localhost/PhpProject1/"); Serial.println("Host: http://localhost/PhpProject1/"); client.println("User-Agent: Arduino"); Serial.println("User-Agent: Arduino"); client.println("Accept: text/html"); Serial.println("Accept: text/html"); //client.println("Connection: close"); //Serial.println("Connection: close"); client.println(); Serial.println(); delay(10000); } else{ Serial.println("Cannot connect to Server"); } } else { delay(1000); while (client.connected() && client.available()) { char c = client.read(); Serial.print(c); } Serial.println(); client.stop(); connected = false; } } 

server is an Apache server running on a PC; the server IP address in code is the IP address of the computer. For testing, I work in the network of my houses, there is no proxy server or firewall, and I also paid attention to the antivirus and firewall on my computer.

the result in the serial monitor is always:

 Not connected Cannot connect to Server 

Any thoughts ??

+4
source share
2 answers

It worked, the problem was in Ethernet.begin(mac, ip , gateway , subnet) , I deleted this line and configured the Ethernet screen using DHCP, Ethernet.begin(mac)

+2
source

Have you confirmed that the MAC address is correct?

If it still does not work, try using

 Client client(server, 80); 

instead

 EthernetClient client 

And change

 if (client.connect(server, 80)) { 

to

 if (client.connect()) { 

Hope this helps

+1
source

Source: https://habr.com/ru/post/1442753/


All Articles