mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-30 21:51:40 +01:00 
			
		
		
		
	
		
			
	
	
		
			101 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
|   | /**
 | ||
|  |  * StreamHTTPClient.ino | ||
|  |  * | ||
|  |  *  Created on: 24.05.2015 | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | #include <Arduino.h>
 | ||
|  | 
 | ||
|  | #include <WiFi.h>
 | ||
|  | #include <WiFiMulti.h>
 | ||
|  | 
 | ||
|  | #include <HTTPClient.h>
 | ||
|  | 
 | ||
|  | #define USE_SERIAL Serial
 | ||
|  | 
 | ||
|  | WiFiMulti wifiMulti; | ||
|  | 
 | ||
|  | void setup() { | ||
|  | 
 | ||
|  |     USE_SERIAL.begin(115200); | ||
|  | 
 | ||
|  |     USE_SERIAL.println(); | ||
|  |     USE_SERIAL.println(); | ||
|  |     USE_SERIAL.println(); | ||
|  | 
 | ||
|  |     for(uint8_t t = 4; t > 0; t--) { | ||
|  |         USE_SERIAL.printf("[SETUP] WAIT %d...\n", t); | ||
|  |         USE_SERIAL.flush(); | ||
|  |         delay(1000); | ||
|  |     } | ||
|  | 
 | ||
|  |     wifiMulti.addAP("SSID", "PASSWORD"); | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | void loop() { | ||
|  |     // wait for WiFi connection
 | ||
|  |     if((wifiMulti.run() == WL_CONNECTED)) { | ||
|  | 
 | ||
|  |         HTTPClient http; | ||
|  | 
 | ||
|  |         USE_SERIAL.print("[HTTP] begin...\n"); | ||
|  | 
 | ||
|  |         // configure server and url
 | ||
|  |         http.begin("http://192.168.1.12/test.html"); | ||
|  |         //http.begin("192.168.1.12", 80, "/test.html");
 | ||
|  | 
 | ||
|  |         USE_SERIAL.print("[HTTP] GET...\n"); | ||
|  |         // start connection and send HTTP header
 | ||
|  |         int httpCode = http.GET(); | ||
|  |         if(httpCode > 0) { | ||
|  |             // HTTP header has been send and Server response header has been handled
 | ||
|  |             USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode); | ||
|  | 
 | ||
|  |             // file found at server
 | ||
|  |             if(httpCode == HTTP_CODE_OK) { | ||
|  | 
 | ||
|  |                 // get lenght of document (is -1 when Server sends no Content-Length header)
 | ||
|  |                 int len = http.getSize(); | ||
|  | 
 | ||
|  |                 // create buffer for read
 | ||
|  |                 uint8_t buff[128] = { 0 }; | ||
|  | 
 | ||
|  |                 // get tcp stream
 | ||
|  |                 WiFiClient * stream = http.getStreamPtr(); | ||
|  | 
 | ||
|  |                 // read all data from server
 | ||
|  |                 while(http.connected() && (len > 0 || len == -1)) { | ||
|  |                     // get available data size
 | ||
|  |                     size_t size = stream->available(); | ||
|  | 
 | ||
|  |                     if(size) { | ||
|  |                         // read up to 128 byte
 | ||
|  |                         int c = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size)); | ||
|  | 
 | ||
|  |                         // write it to Serial
 | ||
|  |                         USE_SERIAL.write(buff, c); | ||
|  | 
 | ||
|  |                         if(len > 0) { | ||
|  |                             len -= c; | ||
|  |                         } | ||
|  |                     } | ||
|  |                     delay(1); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 USE_SERIAL.println(); | ||
|  |                 USE_SERIAL.print("[HTTP] connection closed or file end.\n"); | ||
|  | 
 | ||
|  |             } | ||
|  |         } else { | ||
|  |             USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
|  |         } | ||
|  | 
 | ||
|  |         http.end(); | ||
|  |     } | ||
|  | 
 | ||
|  |     delay(10000); | ||
|  | } | ||
|  | 
 |