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

main.cpp

Committer:
mbedAustin
Date:
2015-04-28
Revision:
3:5175e53017e4
Parent:
1:f61c1001ee60
Child:
4:d02fdd139307

File content as of revision 3:5175e53017e4:

#include "mbed.h"
#define DEBUG 1
#include "ESP8266Interface.h"
#include "UDPSocket.h"
#include "Endpoint.h"

RawSerial pc(USBTX, USBRX); // tx, rx
ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password

UDPSocket server;
bool UDP_blocking = false;
unsigned int UDP_timeout = 100;

uint8_t macbytes[6] = {0};
char MAC[20] = "665544332211";

int main()
{
    pc.baud(115200);
    int check = 0;
    pc.printf("\n\rSystemCoreClock=: %d", SystemCoreClock / 1000000) ;

    // Init ESP8266
    pc.printf("\r\nwifi.init: ");
    check = wifi.init(); // initialize the interface, reset the module
    pc.printf("%d",check);

    // Initialize Socket
    pc.printf("\r\nwifi.connect: ");
    check = wifi.connect(); // join AP and get DHCP settings
    pc.printf("%d",check);

//    printf("\r\nsocket init: ");
//    check = server.init();
//    printf("%d",check);
//
//    printf("\r\nsocket bind: ");
//    check = server.bind(0);
//    printf("%d",check);
//
//    printf("\r\nset blocking option");
//    server.set_blocking(UDP_blocking, UDP_timeout);
    wifi.sendCommand("AT+CWJAP?", NULL, NULL, 1000);

    check = wifi.is_connected();
    pc.printf("\r\nwifi connected: %d,\r\n",check);

    char * ip = NULL;
    ip = wifi.getIPAddress();
    pc.printf("\n\rIP = %s \n\r",ip);

    pc.printf("\r\nStarting while1 loop\r\n");
    while(1) {
        if(pc.readable()) {
            char c = pc.getc();
            //pc.putc(c); // echo character back to computer for sanity
            wifi.putc(c);
        }
        if(wifi.readable()) {
            char c = wifi.getc();
            pc.putc(c);
        }
    }
}