Example program for the ESP8266Interface running Espressif Firmware

Dependencies:   ESP8266Interface NetworkSocketAPI mbed

Note

This example code assumes your ESP8266 is running the Espressif Firmware. For instructions on how to update your ESP8266 to use the correct firmware see the Firmware Update Wiki Page.

This program demonstrates how to open, close, send and recv from the ESP8266 using the Network Socket API.

Committer:
Christopher Haster
Date:
Thu Apr 21 06:14:45 2016 -0500
Revision:
54:4b14327faaaf
Parent:
42:d8ea089e5606
Updated to match changes to the NSAPI

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sam_grove 0:1984a177ff56 1 /* NetworkSocketAPI Example Program
sam_grove 0:1984a177ff56 2 * Copyright (c) 2015 ARM Limited
sam_grove 0:1984a177ff56 3 *
sam_grove 0:1984a177ff56 4 * Licensed under the Apache License, Version 2.0 (the "License");
sam_grove 0:1984a177ff56 5 * you may not use this file except in compliance with the License.
sam_grove 0:1984a177ff56 6 * You may obtain a copy of the License at
sam_grove 0:1984a177ff56 7 *
sam_grove 0:1984a177ff56 8 * http://www.apache.org/licenses/LICENSE-2.0
sam_grove 0:1984a177ff56 9 *
sam_grove 0:1984a177ff56 10 * Unless required by applicable law or agreed to in writing, software
sam_grove 0:1984a177ff56 11 * distributed under the License is distributed on an "AS IS" BASIS,
sam_grove 0:1984a177ff56 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
sam_grove 0:1984a177ff56 13 * See the License for the specific language governing permissions and
sam_grove 0:1984a177ff56 14 * limitations under the License.
sam_grove 0:1984a177ff56 15 */
sam_grove 0:1984a177ff56 16
sam_grove 0:1984a177ff56 17 #include "mbed.h"
sarahmarshy 16:bb0a5b830dc5 18 #include "ESP8266Interface.h"
Christopher Haster 30:f80540b6e2db 19 #include "TCPSocket.h"
sam_grove 0:1984a177ff56 20
Christopher Haster 54:4b14327faaaf 21 ESP8266Interface wifi(D1, D0);
sam_grove 0:1984a177ff56 22
Christopher Haster 54:4b14327faaaf 23 DigitalOut led(LED_GREEN);
Christopher Haster 54:4b14327faaaf 24 void blink()
Christopher Haster 54:4b14327faaaf 25 {
Christopher Haster 54:4b14327faaaf 26 led = !led;
Christopher Haster 54:4b14327faaaf 27 }
sam_grove 2:7283ce112304 28
sam_grove 0:1984a177ff56 29 int main()
sam_grove 20:4cb9ef3b0cc9 30 {
Christopher Haster 54:4b14327faaaf 31 Ticker blinky;
Christopher Haster 54:4b14327faaaf 32 blinky.attach(blink, 0.4f);
Christopher Haster 54:4b14327faaaf 33
bridadan 14:c47437f5dae8 34 printf("NetworkSocketAPI Example\r\n");
sam_grove 4:cb8a17dd6746 35
Christopher Haster 54:4b14327faaaf 36 wifi.connect("Sniffer", "Sandcastle");
Christopher Haster 54:4b14327faaaf 37 const char *ip = wifi.get_ip_address();
Christopher Haster 54:4b14327faaaf 38 const char *mac = wifi.get_mac_address();
Christopher Haster 54:4b14327faaaf 39 printf("IP address is: %s\r\n", ip ? ip : "No IP");
Christopher Haster 54:4b14327faaaf 40 printf("MAC address is: %s\r\n", mac ? mac : "No MAC");
bridadan 14:c47437f5dae8 41
Christopher Haster 54:4b14327faaaf 42 SocketAddress addr(&wifi, "mbed.org");
Christopher Haster 54:4b14327faaaf 43 printf("mbed.org resolved to: %s\r\n", addr.get_ip_address());
sarahmarshy 22:1d355289fc18 44
Christopher Haster 54:4b14327faaaf 45 TCPSocket socket(&wifi);
Christopher Haster 54:4b14327faaaf 46 socket.connect("4.ifcfg.me", 23);
sarahmarshy 21:979b1db5d7da 47
Christopher Haster 54:4b14327faaaf 48 char buffer[64];
Christopher Haster 54:4b14327faaaf 49 int count = socket.recv(buffer, sizeof buffer);
Christopher Haster 54:4b14327faaaf 50 printf("public IP address is: %.15s\r\n", &buffer[15]);
Christopher Haster 54:4b14327faaaf 51
Christopher Haster 30:f80540b6e2db 52 socket.close();
sam_grove 2:7283ce112304 53 wifi.disconnect();
Christopher Haster 30:f80540b6e2db 54
Christopher Haster 54:4b14327faaaf 55 printf("Done\r\n");
sam_grove 0:1984a177ff56 56 }