---
title: "ESP8266_AT_WebServer"
url: "https://maker.wiznet.io/mayuri/projects/esp8266-at-webserver/"
markdown_url: "https://maker.wiznet.io/mayuri/projects/esp8266-at-webserver/md"
type: "UCC: User Created Content"
author: "khoih prog"
author_url: "https://github.com/khoih-prog/ESP8266_AT_WebServer"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "khoih prog"
original_url: "https://github.com/khoih-prog/ESP8266_AT_WebServer"
published: "2023-01-19"
language: "en"
hardware: ["WIZnet WizFi360-EVB-Pico"]
likes: 17
views: 536
comments: 2
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ESP8266_AT_WebServer

> ESP8266_AT_WebServer.

Original author: khoih prog (source: https://github.com/khoih-prog/ESP8266_AT_WebServer)

## Components

- **WIZnet WizFi360-EVB-Pico** x 1

## Article

#### Features

This [ESP8266_AT_WebServer library](https://github.com/khoih-prog/ESP8266_AT_WebServer) is a simple yet complete WebServer library for **AVR, Teensy, SAM DUE, Arduino SAMD21, Adafruit SAMD21/SAMD51, Adafruit nRF52, STM32F/L/H/G/WB/MP1, etc. boards, using ESP8266/ESP32 AT-command WiFi modules/shields.**

The functions are similar and compatible to those of [`ESP32 WebServer`](https://github.com/espressif/arduino-esp32/tree/master/libraries/WebServer) and [`ESP8266WebServer`](https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer) libraries to make life much easier to port sketches from ESP8266/ESP32.

The library provides supports to:

1. WiFi Client, STA and AP mode

2. TCP Server and Client

3. UDP Server and Client

4. HTTP Server and Client

5. HTTP GET and POST requests, provides argument parsing, handles one client at a time.

6. UDP Multicast and Broadcast.

It is based on and modified from:

1. [Ivan Grokhotkov's ESP8266WebServer](https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer)

2. [bportaluri's WiFiEsp library](https://github.com/bportaluri/WiFiEsp)

The ESP8266_AT_Web_Server class found in `ESP8266_AT_Web_Server.h` header, is a simple web server that knows how to handle HTTP requests such as GET and POST and can only support one simultaneous client.

#### Currently Supported Boards

**nRF52 boards**, such as **AdaFruit Feather nRF52832, nRF52840 Express, BlueFruit Sense, Itsy-Bitsy nRF52840 Express, Metro nRF52840 Express, NINA_B302_ublox, NINA_B112_ublox, etc.SAM DUESAMD21**

- Arduino SAMD21: ZERO, MKRs, NANO_33_IOT, etc.

- Adafruit SAMD21 (M0): ItsyBitsy M0, Feather M0, Feather M0 Express, Metro M0 Express, Circuit Playground Express, Trinket M0, PIRkey, Hallowing M0, Crickit M0, etc.

- Seeeduino: LoRaWAN, Zero, Femto M0, XIAO M0, Wio GPS Board, etc.

1. **SAMD51**

- Adafruit SAMD51 (M4): Metro M4, Grand Central M4, ItsyBitsy M4, Feather M4 Express, Trellis M4, Metro M4 AirLift Lite, MONSTER M4SK Express, Hallowing M4, etc.

- Seeeduino: Wio Terminal, Grove UI Wireless

**Teensy (4.1, 4.0, 3.6, 3.5, 3,2, 3.1, 3.0, LC)STM32F/L/H/G/WB/MP1 boards (with 64+K Flash)**

- Nucleo-144

- Nucleo-64

- Discovery

- Generic STM32F0, STM32F1, STM32F2, STM32F3, STM32F4, STM32F7 (with 64+K Flash): x8 and up

- STM32L0, STM32L1, STM32L4, **STM32L5**

- STM32G0, STM32G4

- STM32H7

- STM32WB

- STM32MP1

- LoRa boards

- 3-D printer boards

- Generic Flight Controllers

- Midatronics boards

**SIPEED_MAIX_DUINO** boards

RP2040-based boards, such as **Nano RP2040 Connect**, using [**Arduino mbed OS for Nano boards**](https://github.com/arduino/ArduinoCore-mbed).

RP2040-based boards, such as **RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040**, using [**Arduino-mbed RP2040** core](https://github.com/arduino/ArduinoCore-mbed) or [**Earle Philhower's arduino-pico** core](https://github.com/earlephilhower/arduino-pico).

**WIZNET_WIZFI360_EVB_PICO** using [**Earle Philhower's arduino-pico** core](https://github.com/earlephilhower/arduino-pico)

#### WIZNET_WIZFI360_EVB_PICO

[![](https://github.com/khoih-prog/ESP8266_AT_WebServer/raw/master/pics/WIZNET_WIZFI360_EVB_PICO.png)](https://github.com/khoih-prog/ESP8266_AT_WebServer/raw/master/pics/WIZNET_WIZFI360_EVB_PICO.png)

---

#### Currently Supported AT-command shields

1. `ESP8266-AT-command` shield

2. `ESP32-AT-command` shield

3. `W600` and `WIS600-01S` AT-command shield

4. `WizFi360` AT-command shield

#### WIZFI360

[![](https://github.com/khoih-prog/ESP8266_AT_WebServer/raw/master/pics/wizfi360-pa.png)](https://github.com/khoih-prog/ESP8266_AT_WebServer/raw/master/pics/wizfi360-pa.png)

---

---

## Prerequisites

1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [![GitHub release](https://maker.wiznet.io/upload/mirror/body/381331e50972fdafe470.png)](https://github.com/arduino/Arduino/releases/latest)

2. [`Arduino AVR core 1.8.6+`](https://github.com/arduino/ArduinoCore-avr) for Arduino (Use Arduino Board Manager) for AVR boards. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/b253b6fc6e99dd8b4ff9.png)](https://github.com/arduino/ArduinoCore-avr/releases/latest)

3. [`Teensy core v1.57+`](https://github.com/PaulStoffregen/cores) for Teensy 4.1. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/66af5c6eaa833c8ee429.png)](https://github.com/PaulStoffregen/cores/releases/latest)

4. [`Arduino SAM DUE core v1.6.12+`](https://github.com/arduino/ArduinoCore-sam) for SAM DUE ARM Cortex-M3 boards.

5. [`Arduino SAMD core 1.8.13+`](https://github.com/arduino/ArduinoCore-samd) for SAMD ARM Cortex-M0+ boards. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/46460c1a08f9d5934c89.png)](https://github.com/arduino/ArduinoCore-samd/releases/latest)

6. [`Adafruit SAMD core 1.7.11+`](https://github.com/adafruit/ArduinoCore-samd) for SAMD ARM Cortex-M0+ and M4 boards (Nano 33 IoT, etc.). [![GitHub release](https://maker.wiznet.io/upload/mirror/body/bdf112219b134f539f5a.png)](https://github.com/adafruit/ArduinoCore-samd/releases/latest)

7. [`Seeeduino SAMD core 1.8.3+`](https://github.com/Seeed-Studio/ArduinoCore-samd) for SAMD21/SAMD51 boards (XIAO M0, Wio Terminal, etc.). [![Latest release](https://maker.wiznet.io/upload/mirror/body/b6d5988db36bd51dfa4e.png)](https://github.com/Seeed-Studio/ArduinoCore-samd/releases/latest/)

8. [`Adafruit nRF52 v1.3.0+`](https://www.adafruit.com/) for nRF52 boards such as Adafruit NRF52840_FEATHER, NRF52832_FEATHER, NRF52840_FEATHER_SENSE, NRF52840_ITSYBITSY, NRF52840_CIRCUITPLAY, NRF52840_CLUE, NRF52840_METRO, NRF52840_PCA10056, PARTICLE_XENON, **NINA_B302_ublox**, etc. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/636c69263e87cc065aa1.png)](https://github.com/adafruit/Adafruit_nRF52_Arduino/releases/latest). Please remember to use latest [`Packages_Patches`](https://github.com/khoih-prog/WiFiWebServer/tree/master/Packages_Patches) or getting compiler errors.

9. [`Arduino Core for STM32 v2.4.0+`](https://github.com/stm32duino/Arduino_Core_STM32) for STM32F/L/H/G/WB/MP1 boards. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/2e1f3d1dbd694753d4c6.png)](https://github.com/stm32duino/Arduino_Core_STM32/releases/latest)

10. [`Arduino mbed_rp2040 core 3.5.4+`](https://github.com/arduino/ArduinoCore-mbed) for Arduino (Use Arduino Board Manager) RP2040-based boards, such as **Arduino Nano RP2040 Connect, RASPBERRY_PI_PICO, etc.**. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/d784fce75074b89ea975.png)](https://github.com/arduino/ArduinoCore-mbed/releases/latest)

11. [`Earle Philhower's arduino-pico core v2.7.1+`](https://github.com/earlephilhower/arduino-pico) for RP2040-based boards such as **RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040**, etc. [![GitHub release](https://maker.wiznet.io/upload/mirror/body/2da2dab6f16cbd3239e6.png)](https://github.com/earlephilhower/arduino-pico/releases/latest)

12. [`Sipeed Maixduino core v0.3.11+`](https://github.com/sipeed/Maixduino) for K210-RISC-V-based boards such as **Maixduino AI Development Kit K210 RISC-V AI + IoT ESP32, Sipeed Maix Go, Sipeed Maix Bit**, etc. [![GitHub release](https://img.shields.io/github/release/sipeed/Maixduino.svg)](https://github.com/sipeed/Maixduino/releases/latest)

13. [`Functional-Vlpp library v1.0.2+`](https://github.com/khoih-prog/functional-vlpp) to use server's lambda function. To install. check [![arduino-library-badge](https://www.ardu-badge.com/badge/Functional-Vlpp.svg?)](https://www.ardu-badge.com/Functional-Vlpp)

14. [`Ai-Thinker AT Firmware v1.5.4`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/At_firmware_bin1.54.zip) or [`AT Firmware v1.7.4.0`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/AT_Firmware_bin_1.7.4.0.zip) for ESP8266-AT shields.

15. [`AT version_2.1.0.0_dev`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/AT_version_2.1.0.0_dev.zip) for ESP32-AT shields.

16. `AT version_1.1.4` for `WIS600-01S` and `W600-AT` WiFi shields

17. `AT version 3.2.0` for `WizFi360` WiFi shields

---

---

### Important Notes about AT Firmwares

#### 1. Tested OK with ESP8266-AT shields

[`Ai-Thinker AT Firmware v1.5.4`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/At_firmware_bin1.54.zip)

```
AT version:1.1.0.0(May 11 2016 18:09:56)
SDK version:1.5.4(baaeaebb)
Ai-Thinker Technology Co. Ltd.
Jun 13 2016 11:29:20
```

[`AT Firmware v1.7.4.0`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/AT_Firmware_bin_1.7.4.0.zip)

```
AT version:1.7.4.0(May 11 2020 19:13:04)
SDK version:3.0.4(9532ceb)
compile time:May 27 2020 10:12:17
Bin version(Wroom 02):1.7.4
```

[`WIS600-01S`](https://www.aliexpress.com/item/32956707239.html) and [`W600`](https://www.seeedstudio.com/w600.html) using either ESP8266 or ESP32-AT commands and stock firmware

```
AT version:1.1.4(Dec 05 2018 11:06:45)
SDK version:3.0.0
Dec 05 2018 11:06:45
```

#### 2. Tested OK with ESP32-AT shields

[`AT version_2.1.0.0_dev`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/AT_version_2.1.0.0_dev.zip)

```
AT version:2.1.0.0-dev(4f6b92c - Jun 10 2020 10:36:54)
SDK version:v4.0.1-193-ge7ac221b4
compile time(b85a8df):Jun 18 2020 14:00:59
Bin version:2.0.0(WROOM-32)
```

See instructions at [AT Command Core](https://github.com/espressif/esp-at) and [ESP_AT_Get_Started](https://github.com/espressif/esp-at/blob/master/docs/en/get-started/ESP_AT_Get_Started.md)

#### 3. Where to upload AT-Firmware

Upload [`AT Firmware v1.7.4.0`](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/AT_Firmwares/AT_Firmware_bin_1.7.4.0.zip) bin files to correct locations as follows:

```
# BOOT MODE

### Flash size 8Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0xfc000
    blank.bin                   0x7e000 & 0xfe000


### Flash size 16Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin              0x00000
    user1.2048.new.5.bin        0x01000
    esp_init_data_default.bin   0x1fc000
    blank.bin                   0xfe000 & 0x1fe000
```

#### 4. Important Notes

Test before using different AT-Firmware Version at your own risks. Just use any simple example to verify if the AT-firmware is OK.

Compatible AT-Firmare version will be updated. Check for all supported AT Firmwares and download them from [AT_Firmwares](https://github.com/khoih-prog/ESP8266_AT_WebServer/tree/master/AT_Firmwares).

Support to ESP32-AT-command shields has been added to permit using new library [ESP_AT_Lib](https://github.com/khoih-prog/ESP_AT_Lib) to replace [Blynk's BlynkESP8266_Lib](https://github.com/blynkkk/blynk-library/releases/Blynk_Release_v0.6.1.zip). The same [ESP_AT_Lib](https://github.com/khoih-prog/ESP_AT_Lib) can also be use for ESP8266-AT shields.

---

---

## Installation

### Use Arduino Library Manager

The best and easiest way is to use `Arduino Library Manager`. Search for `ESP8266_AT_Web_Server`, then select / install the latest version. You can also use this link [![arduino-library-badge](https://www.ardu-badge.com/badge/ESP8266_AT_WebServer.svg?)](https://www.ardu-badge.com/ESP8266_AT_WebServer) for more detailed instructions.

### Manual Install

1. Navigate to [ESP8266_AT_WebServer](https://github.com/khoih-prog/ESP8266_AT_WebServer) page.

2. Download the latest release `ESP8266_AT_WebServer-master.zip`.

3. Extract the zip file to `ESP8266_AT_WebServer-master` directory

4. Copy whole

- `ESP8266_AT_WebServer-master` folder to Arduino libraries' directory such as `~/Arduino/libraries/`.

### VS Code & PlatformIO:

1. Install [VS Code](https://code.visualstudio.com/)

2. Install [PlatformIO](https://platformio.org/platformio-ide)

3. Install [**ESP8266_AT_WebServer** library](https://registry.platformio.org/libraries/khoih-prog/ESP8266_AT_WebServer) by using [Library Manager](https://registry.platformio.org/libraries/khoih-prog/ESP8266_AT_WebServer/installation). Search for **ESP8266_AT_WebServer** in [Platform.io Author's Libraries](https://platformio.org/lib/search?query=author:%22Khoi%20Hoang%22)

4. Use included [platformio.ini](https://github.com/khoih-prog/ESP8266_AT_WebServer/blob/master/platformio/platformio.ini) file from examples to ensure that all dependent libraries will installed automatically. Please visit documentation for the other options and examples at [Project Configuration File](https://docs.platformio.org/page/projectconf.html)

---

---

Source: https://maker.wiznet.io/mayuri/projects/esp8266-at-webserver/
