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
- Open
mbed_app.json
and change thenetwork-interface
option to your connectivity method (more info). - Build the project in the online compiler or using mbed CLI.
- Flash the project to your development board.
- Attach a serial monitor to your board to see the debug messages.
Tested on
- K64F with Ethernet.
- NUCLEO_F411RE with ESP8266.
- For ESP8266, you need this patch.
But every networking stack that supports the mbed OS 5 NetworkInterface API should work.
Diff: mbed_app.json
- Revision:
- 0:41f820ea137a
- Child:
- 1:fe3df398bdf5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed_app.json Mon Jul 31 15:41:22 2017 +0200 @@ -0,0 +1,50 @@ +{ + "config": { + "network-interface": { + "help": "options are ETHERNET, WIFI_ESP8266, WIFI_ODIN, WIFI_RTW, MESH_LOWPAN_ND, MESH_THREAD", + "value": "WIFI_ESP8266" + }, + "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" + } + } +}