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:
82:122bb3ae6de5
Parent:
77:b74ac6641a3e
Child:
86:92e4be20dc8b
--- a/README.md	Wed Oct 10 14:15:03 2018 +0100
+++ b/README.md	Fri Oct 12 11:45:02 2018 +0100
@@ -35,7 +35,7 @@
 mbed add <driver>
 ```
 
-For example adding ISM43362 driver `mbed add wifi-ism43362` or ESP8266 `mbed add esp8266-driver`
+For example adding ISM43362 driver `mbed add wifi-ism43362` or ESP8266 `mbed add esp8266-driver` or X-Nucleo-IDW01M1 driver `mbed add wifi-x-nucleo-idw01m1`
 
 Then pin names need to be configured as instructed in the drivers README file.
 
@@ -58,32 +58,37 @@
    cd mbed-os-example-wifi
    ```
 
-1. Configure the Wi-Fi shield to use.
+1. Configure the Wi-Fi shield and settings.
 
    Edit ```mbed_app.json``` to include the correct Wi-Fi shield, SSID and password:
 
    ```
-       "config": {
- 	  "wifi-shield": {
-               "help": "Options are internal, WIFI_ESP8266, WIFI_ISM43362, WIFI_IDW0XX1",
-               "value": "WIFI_ESP8266"
-        	  },
-           "wifi-ssid": {
-               "help": "WiFi SSID",
-               "value": "\"SSID\""
-           },
-           "wifi-password": {
-               "help": "WiFi Password",
-               "value": "\"Password\""
-           }
-       },
+{
+    "config": {
+        "wifi-ssid": {
+            "help": "WiFi SSID",
+            "value": "\"SSID\""
+        },
+        "wifi-password": {
+            "help": "WiFi Password",
+            "value": "\"PASSWORD\""
+        }
+    },
+    "target_overrides": {
+        "*": {
+            "platform.stdio-convert-newlines": true,
+            "esp8266.provide-default" : false
+        }
+    }
+}
+
    ```
 
+   For build-in WiFi, you do not need to set any `provide-default` values. Those are required
+   if you use external WiFi shield.
+
    Sample ```mbed_app.json``` files are provided for ESP8266 (```mbed_app_esp8266.json```), X-NUCLEO-IDW04A1 (```mbed_app_idw04a1.json```) and X-NUCLEO-IDW01M1 (```mbed_app_idw01m1```).
 
-   For WIFI_ISM43362, ignore the value of `wifi-shield` as it is already overrides per supported targets.
-
-   For built-in Wi-Fi, ignore the value of `wifi-shield`.
 
 1. Compile and generate binary.
     For example, for `GCC`: