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.

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Fri Oct 12 11:45:02 2018 +0100
Parent:
81:b620d7cac9a2
Child:
83:f35193a8d7c0
Commit message:
Fix example configurations for external WiFi shields.

.
Commit copied from https://github.com/ARMmbed/mbed-os-example-wifi

Changed in this revision

README.md Show annotated file Show diff for this revision Revisions of this file
mbed_app_esp8266.json Show annotated file Show diff for this revision Revisions of this file
mbed_app_idw01m1.json Show annotated file Show diff for this revision Revisions of this file
--- 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`:
--- a/mbed_app_esp8266.json	Wed Oct 10 14:15:03 2018 +0100
+++ b/mbed_app_esp8266.json	Fri Oct 12 11:45:02 2018 +0100
@@ -1,9 +1,5 @@
 {
     "config": {
-	"wifi-shield": {
-            "help": "Options are internal, WIFI_ESP8266, WIFI_IDW0XX1",
-            "value": "WIFI_ESP8266"
-	},
         "wifi-ssid": {
             "help": "WiFi SSID",
             "value": "\"SSID\""
@@ -23,7 +19,8 @@
     },
     "target_overrides": {
         "*": {
-            "platform.stdio-convert-newlines": true
+            "platform.stdio-convert-newlines": true,
+            "esp8266.provide-default" : true
         },
         "UBLOX_EVK_ODIN_W2": {
             "target.device_has": ["EMAC"]
--- a/mbed_app_idw01m1.json	Wed Oct 10 14:15:03 2018 +0100
+++ b/mbed_app_idw01m1.json	Fri Oct 12 11:45:02 2018 +0100
@@ -1,9 +1,5 @@
 {
     "config": {
-	"wifi-shield": {
-            "help": "Options are internal, WIFI_ESP8266, WIFI_IDW0XX1",
-            "value": "WIFI_IDW0XX1"
-	},
         "wifi-ssid": {
             "help": "WiFi SSID",
             "value": "\"SSID\""
@@ -25,8 +21,9 @@
         "*": {
             "platform.stdio-convert-newlines": true,
             "idw0xx1.expansion-board": "IDW01M1",
-	    "drivers.uart-serial-txbuf-size": 730,
-	    "drivers.uart-serial-rxbuf-size": 730
+            "idw0xx1.provide-default": true,
+            "drivers.uart-serial-txbuf-size": 730,
+            "drivers.uart-serial-rxbuf-size": 730
         },
         "UBLOX_EVK_ODIN_W2": {
             "target.device_has": ["EMAC"]