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:
Tue Apr 28 20:18:04 2015 +0000
Revision:
3:5175e53017e4
Parent:
1:f61c1001ee60
Child:
4:d02fdd139307
IP Function Works

Who changed what in which revision?

UserRevisionLine numberNew contents of line
michaeljkoster 0:6a891da014a3 1 #include "mbed.h"
mbedAustin 3:5175e53017e4 2 #define DEBUG 1
michaeljkoster 0:6a891da014a3 3 #include "ESP8266Interface.h"
michaeljkoster 0:6a891da014a3 4 #include "UDPSocket.h"
michaeljkoster 0:6a891da014a3 5 #include "Endpoint.h"
michaeljkoster 0:6a891da014a3 6
mbedAustin 3:5175e53017e4 7 RawSerial pc(USBTX, USBRX); // tx, rx
mbedAustin 3:5175e53017e4 8 ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password
michaeljkoster 0:6a891da014a3 9
michaeljkoster 0:6a891da014a3 10 UDPSocket server;
michaeljkoster 0:6a891da014a3 11 bool UDP_blocking = false;
michaeljkoster 0:6a891da014a3 12 unsigned int UDP_timeout = 100;
michaeljkoster 0:6a891da014a3 13
michaeljkoster 0:6a891da014a3 14 uint8_t macbytes[6] = {0};
michaeljkoster 1:f61c1001ee60 15 char MAC[20] = "665544332211";
michaeljkoster 0:6a891da014a3 16
michaeljkoster 0:6a891da014a3 17 int main()
michaeljkoster 0:6a891da014a3 18 {
mbedAustin 3:5175e53017e4 19 pc.baud(115200);
mbedAustin 3:5175e53017e4 20 int check = 0;
mbedAustin 3:5175e53017e4 21 pc.printf("\n\rSystemCoreClock=: %d", SystemCoreClock / 1000000) ;
mbedAustin 3:5175e53017e4 22
mbedAustin 3:5175e53017e4 23 // Init ESP8266
mbedAustin 3:5175e53017e4 24 pc.printf("\r\nwifi.init: ");
mbedAustin 3:5175e53017e4 25 check = wifi.init(); // initialize the interface, reset the module
mbedAustin 3:5175e53017e4 26 pc.printf("%d",check);
mbedAustin 3:5175e53017e4 27
mbedAustin 3:5175e53017e4 28 // Initialize Socket
mbedAustin 3:5175e53017e4 29 pc.printf("\r\nwifi.connect: ");
mbedAustin 3:5175e53017e4 30 check = wifi.connect(); // join AP and get DHCP settings
mbedAustin 3:5175e53017e4 31 pc.printf("%d",check);
mbedAustin 3:5175e53017e4 32
mbedAustin 3:5175e53017e4 33 // printf("\r\nsocket init: ");
mbedAustin 3:5175e53017e4 34 // check = server.init();
mbedAustin 3:5175e53017e4 35 // printf("%d",check);
mbedAustin 3:5175e53017e4 36 //
mbedAustin 3:5175e53017e4 37 // printf("\r\nsocket bind: ");
mbedAustin 3:5175e53017e4 38 // check = server.bind(0);
mbedAustin 3:5175e53017e4 39 // printf("%d",check);
mbedAustin 3:5175e53017e4 40 //
mbedAustin 3:5175e53017e4 41 // printf("\r\nset blocking option");
mbedAustin 3:5175e53017e4 42 // server.set_blocking(UDP_blocking, UDP_timeout);
mbedAustin 3:5175e53017e4 43 wifi.sendCommand("AT+CWJAP?", NULL, NULL, 1000);
mbedAustin 3:5175e53017e4 44
mbedAustin 3:5175e53017e4 45 check = wifi.is_connected();
mbedAustin 3:5175e53017e4 46 pc.printf("\r\nwifi connected: %d,\r\n",check);
mbedAustin 3:5175e53017e4 47
mbedAustin 3:5175e53017e4 48 char * ip = NULL;
mbedAustin 3:5175e53017e4 49 ip = wifi.getIPAddress();
mbedAustin 3:5175e53017e4 50 pc.printf("\n\rIP = %s \n\r",ip);
mbedAustin 3:5175e53017e4 51
mbedAustin 3:5175e53017e4 52 pc.printf("\r\nStarting while1 loop\r\n");
mbedAustin 3:5175e53017e4 53 while(1) {
mbedAustin 3:5175e53017e4 54 if(pc.readable()) {
mbedAustin 3:5175e53017e4 55 char c = pc.getc();
mbedAustin 3:5175e53017e4 56 //pc.putc(c); // echo character back to computer for sanity
mbedAustin 3:5175e53017e4 57 wifi.putc(c);
mbedAustin 3:5175e53017e4 58 }
mbedAustin 3:5175e53017e4 59 if(wifi.readable()) {
mbedAustin 3:5175e53017e4 60 char c = wifi.getc();
mbedAustin 3:5175e53017e4 61 pc.putc(c);
mbedAustin 3:5175e53017e4 62 }
mbedAustin 3:5175e53017e4 63 }
michaeljkoster 0:6a891da014a3 64 }