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:

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.

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)
 {