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: Jenkinsfile
- Revision:
- 77:b74ac6641a3e
- Parent:
- 54:b9963ccc0c2d
- Child:
- 80:5b1786cc3ca4
--- 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'