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.

Committer:
mbed_official
Date:
Mon Jul 24 15:15:03 2017 +0100
Revision:
27:b3c6dba3b6e9
Parent:
22:887649aaedcb
Child:
32:bca3f5f442b3
Update based on Amanda's feedback
.
Commit copied from https://github.com/ARMmbed/mbed-os-example-wifi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:857719181846 1 # mbed-os-example-wifi #
mbed_official 0:857719181846 2
mbed_official 0:857719181846 3 WiFi example for mbed OS
mbed_official 0:857719181846 4
mbed_official 0:857719181846 5 ## Getting started with the WiFi API ##
mbed_official 0:857719181846 6
mbed_official 0:857719181846 7 This is a quick example of a simple WiFi application using the WiFi and network-socket APIs that is provided as a part of [mbed-os](github.com/armmbed/mbed-os).
mbed_official 0:857719181846 8
mbed_official 0:857719181846 9 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.
mbed_official 0:857719181846 10
mbed_official 0:857719181846 11 ### Supported hardware ###
mbed_official 0:857719181846 12
mbed_official 22:887649aaedcb 13 * [UBLOX Odin board](https://developer.mbed.org/platforms/ublox-EVK-ODIN-W2/) built-in WiFi module
mbed_official 22:887649aaedcb 14 * [REALTEK_RTL8195AM](https://developer.mbed.org/platforms/REALTEK-RTL8195AM/) built-in WiFi module
mbed_official 10:5b5beb106156 15 * [NUCLEO_F429ZI](https://developer.mbed.org/platforms/ST-Nucleo-F429ZI/) with ESP8266-01 module using pins D1 D0
mbed_official 10:5b5beb106156 16 * [NUCLEO_L476RG](https://developer.mbed.org/platforms/ST-Nucleo-L476RG/) with ESP8266-01 module using pins D8 D2
mbed_official 0:857719181846 17 * Other mbed target with ESP2866 module (Board it's connected to shouldn't have other network interface eg. Ethernet)
mbed_official 0:857719181846 18
mbed_official 0:857719181846 19 ESP2866 is a fallback option and will be used if the build is for unsupported platform.
mbed_official 0:857719181846 20
mbed_official 6:9944c5308062 21 #### Connecting the ESP2866 ####
mbed_official 6:9944c5308062 22
mbed_official 27:b3c6dba3b6e9 23 To connect the ESP8266 module to your development board, look at the [ESP8266 Cookbook page](https://developer.mbed.org/users/4180_1/notebook/using-the-esp8266-with-the-mbed-lpc1768/). In general, this means hooking up the ESP8266 TX pin to `D0` and the ESP8266 RX pin to `D1` on your development board.
mbed_official 6:9944c5308062 24
mbed_official 27:b3c6dba3b6e9 25 **Note on NUCLEO boards:** On the NUCLEO boards, pins `D0` and `D1` are used for serial communication with the computer. Use pins `D8` (to ESP8266 TX) and `D2` (to ESP8266 RX) instead.
mbed_official 6:9944c5308062 26
mbed_official 0:857719181846 27 ## Getting started
mbed_official 0:857719181846 28
mbed_official 0:857719181846 29 1. Import the example
mbed_official 0:857719181846 30
mbed_official 0:857719181846 31 ```
mbed_official 0:857719181846 32 mbed import mbed-os-example-wifi
mbed_official 0:857719181846 33 cd mbed-os-example-wifi
mbed_official 0:857719181846 34 ```
mbed_official 0:857719181846 35 2. Configure the WiFi credentials
mbed_official 0:857719181846 36
mbed_official 0:857719181846 37 Edit ```mbed_app.json``` to include correct SSID and Password:
mbed_official 0:857719181846 38
mbed_official 0:857719181846 39 ```
mbed_official 0:857719181846 40 "config": {
mbed_official 0:857719181846 41 "wifi-ssid": {
mbed_official 0:857719181846 42 "help": "WiFi SSID",
mbed_official 0:857719181846 43 "value": "\"SSID\""
mbed_official 0:857719181846 44 },
mbed_official 0:857719181846 45 "wifi-password": {
mbed_official 0:857719181846 46 "help": "WiFi Password",
mbed_official 0:857719181846 47 "value": "\"Password\""
mbed_official 0:857719181846 48 }
mbed_official 0:857719181846 49 },
mbed_official 0:857719181846 50 ```
mbed_official 0:857719181846 51
mbed_official 0:857719181846 52 3. Compile and generate binary
mbed_official 0:857719181846 53
mbed_official 0:857719181846 54 For example, for `GCC`:
mbed_official 0:857719181846 55
mbed_official 0:857719181846 56 ```
mbed_official 0:857719181846 57 mbed compile -t GCC_ARM -m UBLOX_EVK_ODIN_W2
mbed_official 0:857719181846 58 ```
mbed_official 0:857719181846 59
mbed_official 0:857719181846 60 ## Documentation ##
mbed_official 0:857719181846 61
mbed_official 0:857719181846 62 More information on the network-socket API can be found in the [mbed handbook](https://docs.mbed.com/docs/mbed-os-api-reference/en/5.2/APIs/communication/network_sockets/).