ESP8266 web sockets

Dependencies:   ESP8266Interface WebSocketClient mbed

Fork of ESP8266_Test 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 websockets. It will connect and send a message to this web socket server location: 192.168.1.20 : 8888.

You can find the python server code here.

ESP8266_WebSockets_HelloWorld

  1. Initiliaze ESP8266 with DHCP enabled
  2. Create a socketed connection with the above server
  3. It will send this message "n WebSocket Hello World over wifi", where n is the number of times it has sent.
  4. Websocket server echoes the string sent (backwards)

You can view the debug messages of this program by using a serial terminal set to 115200 baud.

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);
        }
    }
}