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-06-08
Revision:
14:4ee468971ae0
Parent:
13:5f2bb0dc134b

File content as of revision 14:4ee468971ae0:

#include "mbed.h"
#include "ESP8266Interface.h"
#include "TCPSocketConnection.h"
#include "TCPSocketServer.h"
#include "Websocket.h"



ESP8266Interface wifi(D1,D0,D10,"demossid","password",115200); // TX,RX,Reset,SSID,Password,Baud
 
int main() {
    wifi.init(); //Reset
    wifi.connect(); //Use DHCP
    printf("IP Address is %s\n", wifi.getIPAddress());
    
    Websocket ws("ws://192.168.1.20:8888/ws");
    
    //Check for successful socket connection
    if(!ws.connect())
        ws.close();
    else{
        char str[100];
        
        for(int i=0; i<0x7fffffff; ++i) {
            // string with a message
            sprintf(str, "%d WebSocket Hello World over wifi", i);
            printf("send: %s\n",str);
            ws.send(str);
        
            // clear the buffer and wait a sec...
            memset(str, 0, 100);
            wait(0.5f);
        
            // websocket server should echo whatever we sent it
            if (ws.read(str)) {
                printf("rcv'd: %s\n", str);
            }
        }
    }
    ws.close();
    
    while(true) {}
}