HttpGet
HTTPGET
描述 本示例会实现一个HTTP请求和接收的例子
所用方法
实例 #include <ESP8266.h>
#ifdef ESP32
#error "This code is not recommended to run on the ESP32 platform! Please check your Tools->Board setting."
#endif
/**
**CoreUSB UART Port: [Serial1] [D0,D1]
**Core+ UART Port: [Serial1] [D2,D3]
**/
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1284P__) || defined (__AVR_ATmega644P__) || defined(__AVR_ATmega128RFA1__)
#define EspSerial Serial1
#define UARTSPEED 115200
#endif
/**
**Core UART Port: [SoftSerial] [D2,D3]
**/
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__)
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); /* RX:D2, TX:D3 */
#define EspSerial mySerial
#define UARTSPEED 9600
#endif
#define SSID F("Makermodule")
#define PASSWORD F("microduino")
#define HOST_NAME F("www.adafruit.com")
#define HOST_PORT (80)
static const byte GETDATA[] PROGMEM = {
"GET /testwifi/index.html HTTP/1.0\r\nHost: www.adafruit.com\r\nConnection: close\r\n\r\n"
};
ESP8266 wifi(&EspSerial);
void setup(void)
{
Serial.begin(115200);
while (!Serial); // wait for Leonardo enumeration, others continue immediately
Serial.print(F("setup begin\r\n"));
delay(100);
WifiInit(EspSerial, UARTSPEED);
Serial.print(F("FW Version:"));
Serial.println(wifi.getVersion().c_str());
if (wifi.setOprToStationSoftAP()) {
Serial.print(F("to station + softap ok\r\n"));
} else {
Serial.print(F("to station + softap err\r\n"));
}
if (wifi.joinAP(SSID, PASSWORD)) {
Serial.print(F("Join AP success\r\n"));
Serial.print(F("IP:"));
Serial.println( wifi.getLocalIP().c_str());
} else {
Serial.print(F("Join AP failure\r\n"));
}
if (wifi.disableMUX()) {
Serial.print(F("single ok\r\n"));
} else {
Serial.print(F("single err\r\n"));
}
Serial.print(F("setup end\r\n"));
}
void loop(void)
{
if (wifi.createTCP(HOST_NAME, HOST_PORT)) {
Serial.print(F("create tcp ok\r\n"));
} else {
Serial.print(F("create tcp err\r\n"));
}
//char *hello = "GET /testwifi/index.html HTTP/1.0\r\nHost: www.adafruit.com\r\nConnection: close\r\n\r\n";
//wifi.send((const uint8_t*)hello, strlen(hello)); //直接发送
wifi.sendFromFlash(GETDATA, sizeof(GETDATA)); //从Flash读取发送内容,节约内存
uint8_t buffer[512] = {0};
uint32_t len = wifi.recv(buffer, sizeof(buffer), 20000);
if (len > 0) {
Serial.print(F("Received:["));
for (uint32_t i = 0; i < len; i++) {
Serial.print((char)buffer[i]);
}
Serial.print(F("]\r\n"));
}
if (wifi.releaseTCP()) {
Serial.print(F("release tcp ok\r\n"));
} else {
Serial.print(F("release tcp err\r\n"));
}
//while (1);
delay(5000);
}
|