NNN40 run a HTTP server with RPC using Soft AP mode

Dependencies:   WIFI_API_32kRAM mbed

Fork of HTTP-Server by Francois Berder

The sample code will run as a WiFi Soft AP mode with given AP configuration setting including SSID name and password. IP address (fixed to 192.168.2.1 for the current version of WIFI_API)of AP router will be print out once Soft AP mode is operating.

User can open their web browser and go to http://192.168.2.1/. and have a try on switch on a led. Firstly, we need to create an object to control a led

/media/uploads/wgd8700/http_server2.png

Then, led can be switch on using RPC command /media/uploads/wgd8700/http_server3.png

More information cab be found from the links below

https://developer.mbed.org/users/feb11/code/HTTP-Server/

https://developer.mbed.org/cookbook/Interfacing-Using-RPC

Committer:
wgd8700
Date:
Wed Sep 16 02:43:42 2015 +0000
Revision:
11:f57e9de44f6f
Parent:
9:a9bf63017854
First commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 0:9e4bcb10b3e3 1 #include "mbed.h"
feb11 0:9e4bcb10b3e3 2 #include "EthernetInterface.h"
feb11 0:9e4bcb10b3e3 3 #include "mbed_rpc.h"
feb11 0:9e4bcb10b3e3 4 #include "RPCCommand.h"
feb11 0:9e4bcb10b3e3 5 #include "HTTPServer.h"
feb11 0:9e4bcb10b3e3 6 #include "Formatter.h"
feb11 0:9e4bcb10b3e3 7 #include "RequestHandler.h"
feb11 0:9e4bcb10b3e3 8 #include "RPCType.h"
feb11 0:9e4bcb10b3e3 9
wgd8700 11:f57e9de44f6f 10 #include "WIFIDevice.h"
wgd8700 11:f57e9de44f6f 11
feb11 0:9e4bcb10b3e3 12 #define SERVER_PORT 80
feb11 0:9e4bcb10b3e3 13
wgd8700 11:f57e9de44f6f 14 WIFIDevice wifi;
wgd8700 11:f57e9de44f6f 15
feb11 0:9e4bcb10b3e3 16 HTTPServer create_simple_server()
feb11 0:9e4bcb10b3e3 17 {
feb11 0:9e4bcb10b3e3 18 HTTPServer srv;
feb11 0:9e4bcb10b3e3 19 srv.add_request_handler("DELETE", new DeleteRequestHandler());
feb11 0:9e4bcb10b3e3 20 srv.add_request_handler("GET", new GetRequestHandler());
feb11 0:9e4bcb10b3e3 21 srv.add_request_handler("PUT", new PutRequestHandler());
feb11 0:9e4bcb10b3e3 22 return srv;
feb11 0:9e4bcb10b3e3 23 }
feb11 0:9e4bcb10b3e3 24
feb11 0:9e4bcb10b3e3 25 HTTPServer create_interactive_server()
feb11 0:9e4bcb10b3e3 26 {
feb11 0:9e4bcb10b3e3 27 HTTPServer srv(new InteractiveHTMLFormatter());
feb11 0:9e4bcb10b3e3 28 srv.add_request_handler("GET", new ComplexRequestHandler());
feb11 0:9e4bcb10b3e3 29 return srv;
feb11 0:9e4bcb10b3e3 30 }
feb11 0:9e4bcb10b3e3 31
feb11 0:9e4bcb10b3e3 32 int main(void)
feb11 0:9e4bcb10b3e3 33 {
feb11 0:9e4bcb10b3e3 34 RPCType::instance().register_types();
feb11 0:9e4bcb10b3e3 35
feb11 0:9e4bcb10b3e3 36 EthernetInterface eth;
wgd8700 11:f57e9de44f6f 37 //wifi.setNetwork("GainSpan_JS", "Delta9999", 0);
wgd8700 11:f57e9de44f6f 38 //wifi.setNetwork("TP-LINK_2.4G_TTWU", "0972753720", 0);
wgd8700 11:f57e9de44f6f 39 wifi.setAccessPoint("NNN40_TTWU", "0123456789", SECURITY_WPA2_TKIP_PSK, 2);
feb11 9:a9bf63017854 40 if(eth.init())
feb11 9:a9bf63017854 41 {
feb11 9:a9bf63017854 42 printf("Error while initializing the ethernet interface.\n");
feb11 9:a9bf63017854 43 return -1;
feb11 9:a9bf63017854 44 }
wgd8700 11:f57e9de44f6f 45 if(eth.connect(60000))
feb11 9:a9bf63017854 46 {
feb11 9:a9bf63017854 47 printf("Error while starting the ethernet interface.\n");
feb11 9:a9bf63017854 48 return -1;
feb11 9:a9bf63017854 49 }
feb11 9:a9bf63017854 50
feb11 0:9e4bcb10b3e3 51 printf("IP Address is %s\n", eth.getIPAddress());
feb11 0:9e4bcb10b3e3 52
feb11 3:fb0a778f2480 53 HTTPServer srv = create_interactive_server();
feb11 0:9e4bcb10b3e3 54
feb11 0:9e4bcb10b3e3 55 if(!srv.init(SERVER_PORT))
feb11 0:9e4bcb10b3e3 56 {
feb11 0:9e4bcb10b3e3 57 eth.disconnect();
feb11 0:9e4bcb10b3e3 58 return -1;
feb11 0:9e4bcb10b3e3 59 }
feb11 0:9e4bcb10b3e3 60
feb11 0:9e4bcb10b3e3 61 srv.run();
feb11 0:9e4bcb10b3e3 62
feb11 0:9e4bcb10b3e3 63 return 0;
feb11 0:9e4bcb10b3e3 64 }
feb11 0:9e4bcb10b3e3 65