A quick example of a simple WiFi application using the WiFi and network-socket APIs that is provided as a part of mbed-os.
The program brings up the WiFi and the underlying network interface, and uses it to scans available networks, connects to a network, prints interface and connection details and performs simple HTTP operation.
Supported hardware:
- UBLOX Odin board built-in WiFi module
- REALTEK_RTL8195AM built-in WiFi module
- NUCLEO_F401RE with X-NUCLEO-IDW01M1 WiFi expansion board using pins D8 D2
- NUCLEO_F429ZI with ESP8266-01 module using pins D1 D0
- NUCLEO_L476RG with ESP8266-01 module using pins D8 D2
- Other mbed targets with ESP8266 module or X-NUCLEO-IDW01M1 expansion board
Not that the mbed target board the WiFi shield gets connected to shouldn't have any other network interface e.g. Ethernet.
ESP8266 is a fallback option and will be used if the build is for unsupported platform.
Diff: main.cpp
- Revision:
- 32:bca3f5f442b3
- Parent:
- 24:323569a565ec
- Child:
- 33:12f0df4d51d7
--- a/main.cpp Thu Aug 31 15:45:04 2017 +0100 +++ b/main.cpp Fri Sep 08 10:15:04 2017 +0100 @@ -17,6 +17,9 @@ #include "mbed.h" #include "TCPSocket.h" +#define WIFI_ESP8266 1 +#define WIFI_IDW01M1 2 + #if TARGET_UBLOX_EVK_ODIN_W2 #include "OdinWiFiInterface.h" OdinWiFiInterface wifi; @@ -26,14 +29,25 @@ RTWInterface wifi; #else +#if MBED_CONF_APP_WIFI_SHIELD == WIFI_ESP8266 +#if !TARGET_FF_MORPHO +#error [NOT_SUPPORTED] Only Morpho form factor devices are supported for this shield at this time +#endif // !TARGET_FF_MORPHO +#else #if !TARGET_FF_ARDUINO -#error [NOT_SUPPORTED] Only Arduino form factor devices are supported at this time -#endif +#error [NOT_SUPPORTED] Only Arduino form factor devices are supported for this shield at this time +#endif // !TARGET_FF_ARDUINO +#endif // MBED_CONF_APP_WIFI_SHIELD != WIFI_ESP8266 +#if MBED_CONF_APP_WIFI_SHIELD == WIFI_ESP8266 #include "ESP8266Interface.h" ESP8266Interface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX); +#elif MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW01M1 +#include "SpwfSAInterface.h" +SpwfSAInterface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX); +#endif // MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW01M1 -#endif +#endif // TARGET_UBLOX_EVK_ODIN_W2 const char *sec2str(nsapi_security_t sec) {