mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-30 04:26:50 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|   Repeating Web client
 | |
| 
 | |
|  This sketch connects to a a web server and makes a request
 | |
|  using a Wiznet Ethernet shield. You can use the Arduino Ethernet shield, or
 | |
|  the Adafruit Ethernet shield, either one will work, as long as it's got
 | |
|  a Wiznet Ethernet module on board.
 | |
| 
 | |
|  This example uses DNS, by assigning the Ethernet client with a MAC address,
 | |
|  IP address, and DNS address.
 | |
| 
 | |
|  Circuit:
 | |
|  * Ethernet shield attached to pins 10, 11, 12, 13
 | |
| 
 | |
|  created 19 Apr 2012
 | |
|  by Tom Igoe
 | |
|  modified 21 Jan 2014
 | |
|  by Federico Vanzati
 | |
| 
 | |
|  http://www.arduino.cc/en/Tutorial/WebClientRepeating
 | |
|  This code is in the public domain.
 | |
| 
 | |
|  */
 | |
| 
 | |
| #include <SPI.h>
 | |
| #include <Ethernet.h>
 | |
| 
 | |
| // assign a MAC address for the ethernet controller.
 | |
| // fill in your address here:
 | |
| byte mac[] = {
 | |
|   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
 | |
| };
 | |
| // fill in an available IP address on your network here,
 | |
| // for manual configuration:
 | |
| IPAddress ip(192, 168, 1, 177);
 | |
| 
 | |
| // fill in your Domain Name Server address here:
 | |
| IPAddress myDns(1, 1, 1, 1);
 | |
| 
 | |
| // initialize the library instance:
 | |
| EthernetClient client;
 | |
| 
 | |
| char server[] = "www.arduino.cc";
 | |
| //IPAddress server(64,131,82,241);
 | |
| 
 | |
| unsigned long lastConnectionTime = 0;             // last time you connected to the server, in milliseconds
 | |
| const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds
 | |
| // the "L" is needed to use long type numbers
 | |
| 
 | |
| void setup() {
 | |
|   // start serial port:
 | |
|   Serial.begin(9600);
 | |
|   while (!Serial) {
 | |
|     ; // wait for serial port to connect. Needed for Leonardo only
 | |
|   }
 | |
| 
 | |
|   // give the ethernet module time to boot up:
 | |
|   delay(1000);
 | |
|   // start the Ethernet connection using a fixed IP address and DNS server:
 | |
|   Ethernet.begin(mac, ip, myDns);
 | |
|   // print the Ethernet board/shield's IP address:
 | |
|   Serial.print("My IP address: ");
 | |
|   Serial.println(Ethernet.localIP());
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
|   // if there's incoming data from the net connection.
 | |
|   // send it out the serial port.  This is for debugging
 | |
|   // purposes only:
 | |
|   if (client.available()) {
 | |
|     char c = client.read();
 | |
|     Serial.write(c);
 | |
|   }
 | |
| 
 | |
|   // if ten seconds have passed since your last connection,
 | |
|   // then connect again and send data:
 | |
|   if (millis() - lastConnectionTime > postingInterval) {
 | |
|     httpRequest();
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| // this method makes a HTTP connection to the server:
 | |
| void httpRequest() {
 | |
|   // close any connection before send a new request.
 | |
|   // This will free the socket on the WiFi shield
 | |
|   client.stop();
 | |
| 
 | |
|   // if there's a successful connection:
 | |
|   if (client.connect(server, 80)) {
 | |
|     Serial.println("connecting...");
 | |
|     // send the HTTP PUT request:
 | |
|     client.println("GET /latest.txt HTTP/1.1");
 | |
|     client.println("Host: www.arduino.cc");
 | |
|     client.println("User-Agent: arduino-ethernet");
 | |
|     client.println("Connection: close");
 | |
|     client.println();
 | |
| 
 | |
|     // note the time that the connection was made:
 | |
|     lastConnectionTime = millis();
 | |
|   }
 | |
|   else {
 | |
|     // if you couldn't make a connection:
 | |
|     Serial.println("connection failed");
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 |