Webserver example for mbed OS 5 - HTTP 1.1 and multi-threaded

Dependencies:   mbed-http

mbed-os-example-http-server

This application demonstrates how to run an HTTP server on an mbed OS 5 device.

Request parsing is done through nodejs/http-parser.

To build

  1. Open mbed_app.json and change the network-interface option to your connectivity method (more info).
  2. Build the project in the online compiler or using mbed CLI.
  3. Flash the project to your development board.
  4. Attach a serial monitor to your board to see the debug messages.

Tested on

  • K64F with Ethernet.
  • NUCLEO_F411RE with ESP8266.

But every networking stack that supports the mbed OS 5 NetworkInterface API should work.

mbed_app.json

Committer:
Jan Jongboom
Date:
2017-07-31
Revision:
1:fe3df398bdf5
Parent:
0:41f820ea137a

File content as of revision 1:fe3df398bdf5:

{
    "config": {
        "network-interface": {
            "help": "options are ETHERNET, WIFI_ESP8266, WIFI_ODIN, WIFI_RTW, MESH_LOWPAN_ND, MESH_THREAD",
            "value": "ETHERNET"
        },
        "mesh_radio_type": {
        	"help": "options are ATMEL, MCR20, SPIRIT1, EFR32",
        	"value": "ATMEL"
        },
        "esp8266-tx": {
            "help": "Pin used as TX (connects to ESP8266 RX)",
            "value": "D1"
        },
        "esp8266-rx": {
            "help": "Pin used as RX (connects to ESP8266 TX)",
            "value": "D0"
        },
        "esp8266-debug": {
            "value": true
        },
        "wifi-ssid": {
            "value": "\"SSID\""
        },
        "wifi-password": {
            "value": "\"Password\""
        }
    },
    "target_overrides": {
        "*": {
            "target.features_add": ["NANOSTACK", "LOWPAN_ROUTER", "COMMON_PAL"],
            "mbed-mesh-api.6lowpan-nd-channel-page": 0,
            "mbed-mesh-api.6lowpan-nd-channel": 12,
            "mbed-trace.enable": 0,
            "mbed-http.http-buffer-size": 2048
        },
        "HEXIWEAR": {
            "esp8266-tx": "PTD3",
            "esp8266-rx": "PTD2"
        },
        "NUCLEO_F401RE": {
            "esp8266-tx": "D8",
            "esp8266-rx": "D2"
        },
        "NUCLEO_F411RE": {
            "esp8266-tx": "D8",
            "esp8266-rx": "D2"
        }
    }
}