Websocket Hello World over a wifi network

Dependencies:   EthernetNetIf mbed DNSResolver

Committer:
samux
Date:
Fri Aug 26 13:23:52 2011 +0000
Revision:
0:e10d21debdaa
Child:
2:e7fba3d516b5

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 0:e10d21debdaa 1 #include "mbed.h"
samux 0:e10d21debdaa 2 #include "Wifly.h"
samux 0:e10d21debdaa 3 #include "Websocket.h"
samux 0:e10d21debdaa 4 #include "ADXL345.h"
samux 0:e10d21debdaa 5
samux 0:e10d21debdaa 6 Serial pc(USBTX, USBRX);
samux 0:e10d21debdaa 7
samux 0:e10d21debdaa 8 ADXL345 accelerometer(p5, p6, p7, p8);
samux 0:e10d21debdaa 9
samux 0:e10d21debdaa 10 //Here, we create an instance, with pins 9 and 10 connecting to the
samux 0:e10d21debdaa 11 //WiFly's TX and RX pins, and pin 21 to RESET. We are connecting to the
samux 0:e10d21debdaa 12 //NETGEAR network, password bananna2, and we are using WPA.
samux 0:e10d21debdaa 13 Wifly wifly(p9, p10, p21, "mbed", "mbedapm2011", true);
samux 0:e10d21debdaa 14
samux 0:e10d21debdaa 15 //Here, we create a Websocket instance in 'w' (write) mode
samux 0:e10d21debdaa 16 //on the 'samux' channel
samux 0:e10d21debdaa 17 Websocket ws("ws://sockets.mbed.org:444/mbed_demo/w/samux", &wifly);
samux 0:e10d21debdaa 18
samux 0:e10d21debdaa 19 int main() {
samux 0:e10d21debdaa 20 char json_str[100];
samux 0:e10d21debdaa 21
samux 0:e10d21debdaa 22 int readings[3] = {0, 0, 0};
samux 0:e10d21debdaa 23
samux 0:e10d21debdaa 24 pc.printf("Starting ADXL345 test...\r\n");
samux 0:e10d21debdaa 25 pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDevId());
samux 0:e10d21debdaa 26
samux 0:e10d21debdaa 27 //Go into standby mode to configure the device.
samux 0:e10d21debdaa 28 accelerometer.setPowerControl(0x00);
samux 0:e10d21debdaa 29
samux 0:e10d21debdaa 30 //Full resolution, +/-16g, 4mg/LSB.
samux 0:e10d21debdaa 31 accelerometer.setDataFormatControl(0x0B);
samux 0:e10d21debdaa 32
samux 0:e10d21debdaa 33 //3.2kHz data rate.
samux 0:e10d21debdaa 34 accelerometer.setDataRate(ADXL345_3200HZ);
samux 0:e10d21debdaa 35
samux 0:e10d21debdaa 36 //Measurement mode.
samux 0:e10d21debdaa 37 accelerometer.setPowerControl(0x08);
samux 0:e10d21debdaa 38
samux 0:e10d21debdaa 39
samux 0:e10d21debdaa 40 while (1) {
samux 0:e10d21debdaa 41 while (1) {
samux 0:e10d21debdaa 42
samux 0:e10d21debdaa 43 while (!wifly.Join()) //we connect to the network
samux 0:e10d21debdaa 44 wifly.reset();
samux 0:e10d21debdaa 45
samux 0:e10d21debdaa 46 if (!ws.connect()) //we connect to the server
samux 0:e10d21debdaa 47 wifly.reset();
samux 0:e10d21debdaa 48 else
samux 0:e10d21debdaa 49 break;
samux 0:e10d21debdaa 50 }
samux 0:e10d21debdaa 51
samux 0:e10d21debdaa 52 while (1) {
samux 0:e10d21debdaa 53 wait(0.1);
samux 0:e10d21debdaa 54
samux 0:e10d21debdaa 55 //we read accelerometers values
samux 0:e10d21debdaa 56 accelerometer.getOutput(readings);
samux 0:e10d21debdaa 57
samux 0:e10d21debdaa 58 //Here, we format the string we will be sending to the server
samux 0:e10d21debdaa 59 //the format we are sending in is JSON
samux 0:e10d21debdaa 60 sprintf(json_str, "{\"id\":\"wifly_acc\",\"ax\":\"%d\",\"ay\":\"%d\",\"az\":\"%d\"}", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);
samux 0:e10d21debdaa 61 ws.Send(json_str); //And we send the string
samux 0:e10d21debdaa 62 }
samux 0:e10d21debdaa 63 }
samux 0:e10d21debdaa 64 }