HTTP Client with ESP8266 working example

Dependencies:   ESP8266Interface HTTPClient-SSL WebSocketClient mbed-rtos mbed

Fork of ESP8266_WebSockets_HelloWorld by ESP8266

This repository has been superceded

This project has moved to https://developer.mbed.org/teams/ESP8266/code/mbed-os-example-esp8266/

Introduction

This is a basic Hello World program for interfacing the ESP8266 chip with HTTP. It will execute a GET on httpbin.org/get, and a POST to httpbin.org/post.

ESP8266_HTTP_HelloWorld

  1. change ssid and passphrase to match your wifi connection
  2. Initialize ESP8266 with DHCP enabled
  3. Get mbed.org
    1. Print the information retrieved
  4. Post to httbin.org
    1. Print the information retrieved

You can view the information retrieved through a serial terminal set to 9600 baud.

Successful Execution

you should see something like the following on the terminal if the program successfully executes. /media/uploads/mbedAustin/httpclient.png

Committer:
mbedAustin
Date:
Fri May 01 17:54:08 2015 +0000
Revision:
9:91fe783e1dd4
Parent:
8:af3b0b5438ad
Child:
12:978788c2156c
Working with TCP, not working with UDP yet.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
michaeljkoster 0:6a891da014a3 1 #include "mbed.h"
michaeljkoster 0:6a891da014a3 2 #include "ESP8266Interface.h"
mbedAustin 9:91fe783e1dd4 3 #include "TCPSocketConnection.h"
mbedAustin 7:d2c97b20d237 4
mbedAustin 7:d2c97b20d237 5 const char* ECHO_SERVER_ADDRESS = "192.168.2.4";
mbedAustin 7:d2c97b20d237 6 const int ECHO_SERVER_PORT = 8080;
mbedAustin 3:5175e53017e4 7 ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password
mbedAustin 7:d2c97b20d237 8 RawSerial pc(USBTX, USBRX); // tx, rx
mbedAustin 9:91fe783e1dd4 9
mbedAustin 7:d2c97b20d237 10 int main() {
mbedAustin 3:5175e53017e4 11 pc.baud(115200);
mbedAustin 7:d2c97b20d237 12 wifi.init(); //Use DHCP
mbedAustin 7:d2c97b20d237 13 wifi.connect();
mbedAustin 9:91fe783e1dd4 14 pc.printf("IP Address is %s\n", wifi.getIPAddress());
mbedAustin 7:d2c97b20d237 15
mbedAustin 9:91fe783e1dd4 16 TCPSocketConnection socket;
mbedAustin 9:91fe783e1dd4 17 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
mbedAustin 9:91fe783e1dd4 18 pc.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
mbedAustin 9:91fe783e1dd4 19 wait(1);
mbedAustin 9:91fe783e1dd4 20 }
mbedAustin 7:d2c97b20d237 21
mbedAustin 9:91fe783e1dd4 22 char hello[] = "Hello World\n";
mbedAustin 9:91fe783e1dd4 23 socket.send_all(hello, sizeof(hello) - 1);
mbedAustin 7:d2c97b20d237 24
mbedAustin 9:91fe783e1dd4 25 char buf[256];
mbedAustin 9:91fe783e1dd4 26 int n = socket.receive(buf, 256);
mbedAustin 9:91fe783e1dd4 27 buf[n] = '\0';
mbedAustin 9:91fe783e1dd4 28 pc.printf("%s", buf);
mbedAustin 7:d2c97b20d237 29
mbedAustin 9:91fe783e1dd4 30 socket.close();
mbedAustin 8:af3b0b5438ad 31 wifi.disconnect();
mbedAustin 9:91fe783e1dd4 32
mbedAustin 9:91fe783e1dd4 33 while(true) {}
mbedAustin 9:91fe783e1dd4 34 }
mbedAustin 9:91fe783e1dd4 35