Simple Webserver example for wiznet W5500 (SPI Ethernet chip) mbed OS 5 - HTTP 1.1 and multi-threaded
Dependencies: W5500Interface easy-connect mbed-http
Fork of http-webserver-example by
mbed-os-example-http-server
This application demonstrates how to run an HTTP server on an mbed OS 5 device & WIZnet W5500 Ethernet components.
Request parsing is done through [nodejs/http-parser](https://github.com/nodejs/http-parser).
To build
- Open ``mbed_app.json`` and change the `network-interface` option to your connectivity method ([more info](https://github.com/ARMmbed/easy-connect)).
- 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
- NUCLEO_F411RE with W5500 Ethernet shield.
- For W5500, you need the following libraries.
Import libraryW5500Interface
W5500 driver for mbed OS 5
Import libraryeasy-connect
Modified version of easy-connect for W5500 Ethernet components
But every networking stack that supports the [mbed OS 5 NetworkInterface API](https://docs.mbed.com/docs/mbed-os-api-reference/en/latest/APIs/communication/network_sockets/) should work.
Test Result
Revision 5:ac9aebd61a31, committed 2018-08-10
- Comitter:
- Bongjun
- Date:
- Fri Aug 10 08:52:29 2018 +0000
- Parent:
- 4:e6e2fe67e79a
- Commit message:
- remove some comments
Changed in this revision
--- a/W5500Interface.lib Thu Aug 09 08:43:24 2018 +0000 +++ b/W5500Interface.lib Fri Aug 10 08:52:29 2018 +0000 @@ -1,1 +1,1 @@ -http://os.mbed.com/users/Bongjun/code/W5500Interface/#1877881f3516 +http://os.mbed.com/users/Bongjun/code/W5500Interface/#351e20cf7d05
--- a/easy-connect.lib Thu Aug 09 08:43:24 2018 +0000 +++ b/easy-connect.lib Fri Aug 10 08:52:29 2018 +0000 @@ -1,1 +1,1 @@ -http://os.mbed.com/users/Bongjun/code/easy-connect/#1c6ff32e7b69 +http://os.mbed.com/users/Bongjun/code/easy-connect/#d81e6bc35f60
--- a/source/main.cpp Thu Aug 09 08:43:24 2018 +0000 +++ b/source/main.cpp Fri Aug 10 08:52:29 2018 +0000 @@ -5,6 +5,7 @@ //Serial pc(USBTX, USBRX); //DigitalOut led(D1); +//confict with W5500 SPI CS pin, so D1 pin can't use for this example. // Requests come in here void request_handler(ParsedHttpRequest* request, TCPSocket* socket) { @@ -41,28 +42,6 @@ int main() { // pc.baud(115200); - printf("Easy connect...\n"); - NetworkInterface *network = easy_connect(true); - if (!network) { - printf("Cannot connect to the network, see serial output"); - return 1; - } - - printf("Connected to the network. Opening a socket...\n"); - - HttpServer server(network); - nsapi_error_t res = server.start(8080, &request_handler); - - if (res == NSAPI_ERROR_OK) { - printf("Server is listening at http://%s:8080\n", network->get_ip_address()); - } - else { - printf("Server could not be started... %d\n", res); - } - - wait(osWaitForever); - -/* // Connect to the network (see mbed_app.json for the connectivity method used) NetworkInterface* network = easy_connect(true); if (!network) { @@ -81,5 +60,5 @@ } wait(osWaitForever); -*/ + }