A quick example of a simple WiFi application using the WiFi and network-socket APIs that is provided as a part of mbed-os.
Fork of mbed-os-example-mbed5-wifi by
README.md@36:aa0b6789bbd2, 2017-09-27 (annotated)
- 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?
User | Revision | Line number | New 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/). |