A quick example of a simple WiFi application using the WiFi and network-socket APIs that is provided as a part of mbed-os.

Dependencies:   C12832

Committer:
mbed_official
Date:
Wed Sep 27 11:15:04 2017 +0100
Revision:
36:aa0b6789bbd2
Parent:
33:12f0df4d51d7
Child:
44:63be19b7a3db
Update README to include info on successful connection (#62)

* Updated documentation README.MD

I updated the documentation to include instructions on how to see a successful WiFi connection for verification.

* Minor copy edits

Fixed typos and markdown.

.
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 32:bca3f5f442b3 15 * [NUCLEO_F401RE](https://developer.mbed.org/platforms/ST-Nucleo-F401RE/) with [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) WiFi expansion board using pins D8 D2
mbed_official 10:5b5beb106156 16 * [NUCLEO_F429ZI](https://developer.mbed.org/platforms/ST-Nucleo-F429ZI/) with ESP8266-01 module using pins D1 D0
mbed_official 10:5b5beb106156 17 * [NUCLEO_L476RG](https://developer.mbed.org/platforms/ST-Nucleo-L476RG/) with ESP8266-01 module using pins D8 D2
mbed_official 32:bca3f5f442b3 18 * Other mbed targets with ESP8266 module or [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board
mbed_official 32:bca3f5f442b3 19 *(the mbed target board the WiFi shield gets connected to shouldn't have any other network interface e.g. Ethernet)*
mbed_official 0:857719181846 20
mbed_official 32:bca3f5f442b3 21 ESP8266 is a fallback option and will be used if the build is for unsupported platform.
mbed_official 0:857719181846 22
mbed_official 32:bca3f5f442b3 23 #### Connecting the ESP8266 ####
mbed_official 27:b3c6dba3b6e9 24 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 25
mbed_official 32:bca3f5f442b3 26 **Note:** on NUCLEO development 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 32:bca3f5f442b3 27
mbed_official 32:bca3f5f442b3 28 #### Connecting the X-NUCLEO-IDW01M1 ####
mbed_official 32:bca3f5f442b3 29 To connect the [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board to your NUCLEO development board, just plug the expansion board on top of the NUCLEO board using the Morpho connector.
mbed_official 6:9944c5308062 30
mbed_official 0:857719181846 31 ## Getting started
mbed_official 0:857719181846 32
mbed_official 0:857719181846 33 1. Import the example
mbed_official 0:857719181846 34
mbed_official 32:bca3f5f442b3 35 ```
mbed_official 32:bca3f5f442b3 36 mbed import mbed-os-example-wifi
mbed_official 32:bca3f5f442b3 37 cd mbed-os-example-wifi
mbed_official 32:bca3f5f442b3 38 ```
mbed_official 32:bca3f5f442b3 39 2. Configure the WiFi shield to use
mbed_official 0:857719181846 40
mbed_official 32:bca3f5f442b3 41 Edit ```mbed_app.json``` to include correct WiFi shield, SSID and Password:
mbed_official 0:857719181846 42
mbed_official 32:bca3f5f442b3 43 ```
mbed_official 33:12f0df4d51d7 44 "config": {
mbed_official 32:bca3f5f442b3 45 "wifi-shield": {
mbed_official 32:bca3f5f442b3 46 "help": "Options are WIFI_ESP8266, WIFI_IDW01M1",
mbed_official 32:bca3f5f442b3 47 "value": "WIFI_IDW01M1"
mbed_official 32:bca3f5f442b3 48 },
mbed_official 32:bca3f5f442b3 49 "wifi-ssid": {
mbed_official 32:bca3f5f442b3 50 "help": "WiFi SSID",
mbed_official 32:bca3f5f442b3 51 "value": "\"SSID\""
mbed_official 32:bca3f5f442b3 52 },
mbed_official 32:bca3f5f442b3 53 "wifi-password": {
mbed_official 32:bca3f5f442b3 54 "help": "WiFi Password",
mbed_official 32:bca3f5f442b3 55 "value": "\"Password\""
mbed_official 32:bca3f5f442b3 56 }
mbed_official 32:bca3f5f442b3 57 },
mbed_official 32:bca3f5f442b3 58 ```
mbed_official 0:857719181846 59
mbed_official 33:12f0df4d51d7 60 For built-in WiFi, ignore the value of `wifi-shield`
mbed_official 33:12f0df4d51d7 61
mbed_official 32:bca3f5f442b3 62 3. Copy the respective _ignore_ file to `.mbedignore`
mbed_official 32:bca3f5f442b3 63 * Copy `esp8266-mbedignore` when using ESP8266 module.
mbed_official 32:bca3f5f442b3 64 * Copy `idw01m1-mbedignore` when using [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board.
mbed_official 33:12f0df4d51d7 65 * For built-in WiFi, keep the default `.mbedignore`
mbed_official 33:12f0df4d51d7 66
mbed_official 32:bca3f5f442b3 67 4. Compile and generate binary
mbed_official 0:857719181846 68
mbed_official 32:bca3f5f442b3 69 For example, for `GCC`:
mbed_official 32:bca3f5f442b3 70
mbed_official 32:bca3f5f442b3 71 ```
mbed_official 32:bca3f5f442b3 72 mbed compile -t GCC_ARM -m UBLOX_EVK_ODIN_W2
mbed_official 32:bca3f5f442b3 73 ```
mbed_official 36:aa0b6789bbd2 74
mbed_official 36:aa0b6789bbd2 75 5. Open a serial console session with the target platform using the following parameters:
mbed_official 36:aa0b6789bbd2 76 * **Baud rate:** 9600
mbed_official 36:aa0b6789bbd2 77 * **Data bits:** 8
mbed_official 36:aa0b6789bbd2 78 * **Stop bits:** 1
mbed_official 36:aa0b6789bbd2 79 * **Parity:** None
mbed_official 36:aa0b6789bbd2 80
mbed_official 36:aa0b6789bbd2 81 6. Copy or drag the application `mbed-os-example-wifi.bin` in the folder `mbed-os-example-wifi/BUILD/<TARGET NAME>/<PLATFORM NAME>` onto the target board.
mbed_official 36:aa0b6789bbd2 82
mbed_official 36:aa0b6789bbd2 83 7. The serial console should display a similar output to below, indicating a successful WiFi connection:
mbed_official 36:aa0b6789bbd2 84 ```
mbed_official 36:aa0b6789bbd2 85 WiFi example
mbed_official 36:aa0b6789bbd2 86
mbed_official 36:aa0b6789bbd2 87 Scan:
mbed_official 36:aa0b6789bbd2 88 Network: Dave Hot Spot secured: Unknown BSSID: 00:01:02:03:04:05 RSSI: -58 Ch: 1
mbed_official 36:aa0b6789bbd2 89 1 network available.
mbed_official 36:aa0b6789bbd2 90
mbed_official 36:aa0b6789bbd2 91 Connecting...
mbed_official 36:aa0b6789bbd2 92 Success
mbed_official 36:aa0b6789bbd2 93
mbed_official 36:aa0b6789bbd2 94 MAC: 00:01:02:03:04:05
mbed_official 36:aa0b6789bbd2 95 IP: 192.168.0.5
mbed_official 36:aa0b6789bbd2 96 Netmask: 255.255.255.0
mbed_official 36:aa0b6789bbd2 97 Gateway: 192.168.0.1
mbed_official 36:aa0b6789bbd2 98 RSSI: -27
mbed_official 36:aa0b6789bbd2 99
mbed_official 36:aa0b6789bbd2 100 Sending HTTP request to www.arm.com...
mbed_official 36:aa0b6789bbd2 101 sent 38 [GET / HTTP/1.1]
mbed_official 36:aa0b6789bbd2 102 recv 64 [HTTP/1.1 301 Moved Permanently]
mbed_official 36:aa0b6789bbd2 103
mbed_official 36:aa0b6789bbd2 104 Done
mbed_official 36:aa0b6789bbd2 105 ```
mbed_official 0:857719181846 106
mbed_official 0:857719181846 107 ## Documentation ##
mbed_official 0:857719181846 108
mbed_official 0:857719181846 109 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/).