Websocket demo for app board by C. Styles with updated libraries. DHCP service and a network cable is required.

Dependencies:   C12832 EthernetInterface HTTPServer LM75B MMA7660 WebSocketClient mbed-rtos mbed

Fork of app-board-Ethernet-Websocket by jim hamblen

Committer:
geekymartian
Date:
Thu May 22 14:51:50 2014 +0000
Revision:
4:bcc028e40b63
Parent:
3:26f41c921c2d
First publish

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 2:1fae595547d5 1 #include "mbed.h"
samux 2:1fae595547d5 2 #include "EthernetInterface.h"
geekymartian 4:bcc028e40b63 3 #include "C12832.h"
samux 2:1fae595547d5 4 #include "Websocket.h"
samux 2:1fae595547d5 5 #include "MMA7660.h"
samux 2:1fae595547d5 6 #include "LM75B.h"
samux 2:1fae595547d5 7
samux 2:1fae595547d5 8 // accelerometer
samux 2:1fae595547d5 9 MMA7660 acc(p28, p27);
samux 2:1fae595547d5 10
samux 2:1fae595547d5 11 // temperature sensor
samux 2:1fae595547d5 12 LM75B tmp(p28,p27);
samux 2:1fae595547d5 13
geekymartian 4:bcc028e40b63 14 // rgb led
geekymartian 4:bcc028e40b63 15 PwmOut r (p23);
geekymartian 4:bcc028e40b63 16 PwmOut g (p24);
geekymartian 4:bcc028e40b63 17 PwmOut b (p25);
geekymartian 4:bcc028e40b63 18
geekymartian 4:bcc028e40b63 19 // lcd
geekymartian 4:bcc028e40b63 20 C12832 lcd(p5, p7, p6, p8, p11);
geekymartian 4:bcc028e40b63 21
geekymartian 4:bcc028e40b63 22 // speaker
geekymartian 4:bcc028e40b63 23 DigitalIn fire(p14);
geekymartian 4:bcc028e40b63 24 PwmOut spkr(p26);
geekymartian 4:bcc028e40b63 25
geekymartian 4:bcc028e40b63 26 // led
samux 2:1fae595547d5 27 DigitalOut l1(LED1);
samux 2:1fae595547d5 28
samux 2:1fae595547d5 29 int main() {
samux 2:1fae595547d5 30 char json_str[100];
samux 2:1fae595547d5 31
geekymartian 4:bcc028e40b63 32 for(float i = 0.0; i < 1.0 ; i += 0.001) {
geekymartian 4:bcc028e40b63 33 float p = 3 * i;
geekymartian 4:bcc028e40b63 34 r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0);
geekymartian 4:bcc028e40b63 35 g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p);
geekymartian 4:bcc028e40b63 36 b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0); ;
geekymartian 4:bcc028e40b63 37 wait (0.01);
geekymartian 4:bcc028e40b63 38 }
geekymartian 4:bcc028e40b63 39
samux 2:1fae595547d5 40 if (acc.testConnection())
samux 2:1fae595547d5 41 l1 = 1;
samux 2:1fae595547d5 42
samux 2:1fae595547d5 43 EthernetInterface eth;
samux 2:1fae595547d5 44 eth.init(); //Use DHCP
4180_1 3:26f41c921c2d 45 wait(2);
4180_1 3:26f41c921c2d 46 eth.connect(60000);
samux 2:1fae595547d5 47 printf("IP Address is %s\n\r", eth.getIPAddress());
samux 2:1fae595547d5 48
samux 2:1fae595547d5 49 // See the output on http://sockets.mbed.org/app-board/viewer
geekymartian 4:bcc028e40b63 50 // you need to specify a channel! otherwise this shit won't work!
geekymartian 4:bcc028e40b63 51 // "the /ws is important!"
geekymartian 4:bcc028e40b63 52 Websocket ws("ws://192.168.0.101:8001/ws");
samux 2:1fae595547d5 53 ws.connect();
geekymartian 4:bcc028e40b63 54 char recv[50];
geekymartian 4:bcc028e40b63 55 lcd.printf("SF1 Dev Week, here we go!");
geekymartian 4:bcc028e40b63 56 ws.send(json_str);
samux 2:1fae595547d5 57 while (1) {
samux 2:1fae595547d5 58 // create json string with acc/tmp data
geekymartian 4:bcc028e40b63 59 //sprintf(json_str, "{\"id\":\"geekymartianboard\",\"ax\":%d,\"ay\":%d,\"az\":%d, \"tmp\":%d}", (int)(acc.x()*360), (int)(acc.y()*360), (int)(acc.z()*360), (int)tmp.read());
samux 2:1fae595547d5 60
samux 2:1fae595547d5 61 // send str
geekymartian 4:bcc028e40b63 62 //ws.send(json_str);
geekymartian 4:bcc028e40b63 63
geekymartian 4:bcc028e40b63 64 wait(5.0);
samux 2:1fae595547d5 65
geekymartian 4:bcc028e40b63 66 if(ws.read(recv)) {
geekymartian 4:bcc028e40b63 67 printf(recv);
geekymartian 4:bcc028e40b63 68 lcd.printf("Received a message:\n");
geekymartian 4:bcc028e40b63 69 lcd.printf(recv);
geekymartian 4:bcc028e40b63 70
geekymartian 4:bcc028e40b63 71 for (float i=2000.0; i<10000.0; i+=100) {
geekymartian 4:bcc028e40b63 72 spkr.period(1.0/i);
geekymartian 4:bcc028e40b63 73 spkr=0.5;
geekymartian 4:bcc028e40b63 74 wait(0.1);
geekymartian 4:bcc028e40b63 75 }
geekymartian 4:bcc028e40b63 76 spkr=0.0;
geekymartian 4:bcc028e40b63 77 while(!fire) {}
geekymartian 4:bcc028e40b63 78
geekymartian 4:bcc028e40b63 79 }
samux 2:1fae595547d5 80 }
samux 0:11bb5faeb547 81 }