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.
Revision 82:122bb3ae6de5, committed 2018-10-12
- 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
--- 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"]