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:
77:b74ac6641a3e
Parent:
54:b9963ccc0c2d
Child:
80:5b1786cc3ca4
diff -r f2a57e114ab5 -r b74ac6641a3e Jenkinsfile
--- a/Jenkinsfile	Tue Aug 28 11:15:03 2018 +0100
+++ b/Jenkinsfile	Fri Aug 31 12:15:03 2018 +0100
@@ -13,11 +13,10 @@
 
 // List of targets with supported RF shields to compile
 def targets = [
-  "UBLOX_EVK_ODIN_W2": ["builtin"],
-  "REALTEK_RTL8195AM": ["builtin"],
-  "K64F": ["WIFI_ESP8266"],
-  "NUCLEO_F401RE": ["WIFI_IDW0XX1"],
-  "NUCLEO_F429ZI": ["WIFI_ESP8266"]
+  "UBLOX_EVK_ODIN_W2": ["internal"],
+  "REALTEK_RTL8195AM": ["internal"],
+  "K64F": ["esp8266-driver"],
+  "NUCLEO_F429ZI": ["esp8266-driver"]
   ]
 
 // Map toolchains to compilers
@@ -29,9 +28,8 @@
 
 // Supported RF shields
 def radioshields = [
-  "builtin",
-  "WIFI_IDW0XX1",
-  "WIFI_ESP8266"
+  "internal",
+  "esp8266-driver"
   ]
 
 def stepsForParallel = [:]
@@ -67,11 +65,6 @@
           checkout scm
           def config_file = "mbed_app.json"
 
-          if ("${radioShield}" != "internal") {
-            // Replace default rf shield
-            execute("sed -i 's/\"value\": \"internal\"/\"value\": \"${radioShield}\"/' ${config_file}")
-          }
-
           // Set mbed-os to revision received as parameter
           execute ("mbed deploy --protocol ssh")
           if (params.mbed_os_revision != '') {
@@ -85,6 +78,12 @@
             }
           }
           execute("mbed new .")
+
+          if ("${radioShield}" != "internal") {
+            // Replace default rf shield
+            execute("mbed add ${radioShield}")
+          }
+
           execute ("mbed compile --build out/${target}_${toolchain}_${radioShield}/ -m ${target} -t ${toolchain} -c --app-config ${config_file}")
         }
         stash name: "${target}_${toolchain}_${radioShield}", includes: '**/mbed-os-example-wifi.bin'