Display analog voltages from mbed board in a browser. Uses smoothie.js called from html page. mbed sends AnalogIn, AnalogOut, and temperature signals.

Dependencies:   C12832_lcd EthernetInterface LM75B MMA7660 WebSocketClient mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
thomas_sullivan
Date:
Mon Jun 09 22:54:42 2014 +0000
Commit message:
Displays analog input data in a browser using smoothie.js. Use similar to an oscilloscope for debugging or data output. Corresponding html and javascript code available.

Changed in this revision

C12832_lcd.lib Show annotated file Show diff for this revision Revisions of this file
EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
LM75B.lib Show annotated file Show diff for this revision Revisions of this file
MMA7660.lib Show annotated file Show diff for this revision Revisions of this file
NTPClient.lib Show annotated file Show diff for this revision Revisions of this file
WebSocketClient.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 5f2b64d6ed81 C12832_lcd.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C12832_lcd.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/atthackathon/code/C12832_lcd/#3e64ca073642
diff -r 000000000000 -r 5f2b64d6ed81 EthernetInterface.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#f6ec7a025939
diff -r 000000000000 -r 5f2b64d6ed81 LM75B.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LM75B.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/neilt6/code/LM75B/#3a44310726fe
diff -r 000000000000 -r 5f2b64d6ed81 MMA7660.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA7660.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/Sissors/code/MMA7660/#a8e20db7901e
diff -r 000000000000 -r 5f2b64d6ed81 NTPClient.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NTPClient.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/WiredHome/code/NTPClient/#dadd90fba4ea
diff -r 000000000000 -r 5f2b64d6ed81 WebSocketClient.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebSocketClient.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/samux/code/WebSocketClient/#466f90b7849a
diff -r 000000000000 -r 5f2b64d6ed81 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,92 @@
+//IOT Class Project.  June 9, 2014.  Tom Sullivan
+
+#include "mbed.h"
+#include "LM75B.h"
+#include "C12832_lcd.h"
+#include "EthernetInterface.h"
+#include "NTPClient.h"
+#include "MMA7660.h"
+#include "Websocket.h"
+
+C12832_LCD lcd;
+DigitalOut led1(LED1);
+MMA7660 MMA(p28, p27);
+AnalogIn pot20(p20);
+AnalogIn pot19(p19);
+AnalogIn ain17(p17);
+AnalogOut aout18(p18);
+BusIn joy(p15,p12,p13,p16); //DigitalIn joyUp(p15), joyDown(p12), joyLeft(p13), joyRight(p16);
+
+Ticker myTicker1;
+EthernetInterface eth;
+NTPClient ntp;
+time_t currentTime;
+char dataOut[128];
+
+//Temperature variables
+LM75B tmp(p28,p27);
+float tempNow, tempHI=80,tempLO=60;
+float coolHyst = 1, heatHyst = 1;
+int Pressing = 0;
+int heatOn = 0, coolOn = 0; //disabled = -1, enabled/Off = 0, enabled/On = 1
+
+//set flag that indicates it is time to output data to the web socket
+void sendData() {
+    led1 = 1; //!led1;
+}
+
+int main()
+{
+    printf("\n\r-----Starting Project-----\n\r");
+    //Connect to ethernet. Use DHCP. **********************
+    eth.init();                    
+    eth.connect();
+    printf("IP Address is %s\n\r", eth.getIPAddress());
+    
+    
+    //Connect to mbed websocket server
+    printf("Connecting to mbed websocket server channel 445\n\r");
+    Websocket ws("ws://sockets.mbed.org/ws/445/rw");
+    //Websocket ws("17.244.173.207");//ws://sockets.mbed.org/ws/445/rw");
+    ws.connect();
+    printf("Done connecting\n\r");
+    
+    //Attach ticker with X second timing
+    printf("Setting ticker\n\r");
+    myTicker1.attach(&sendData, 0.5); //send data out every half second
+    float potOut,senseIn,sigOut;
+    
+    int i=0;
+    while(1) {
+
+        //Print information to LCD
+        //lcd.cls();
+        //lcd.locate(0,3);
+
+        //If the time is right, send data to the websocket server
+        if (led1) {
+            i=i+1;
+            if (i >= 20) {
+                i=0;
+            };
+ 
+            //printf("Sending message\n\r");
+            //accel_z = MMA.z();
+            //sprintf(dataOut,"{\"Temp\":%.1f,\"X\":%.1f,\"Y\":%.1f,\"Z\":%.1f}",tempNow,MMA.x(),MMA.y(),MMA.z());
+            potOut=pot19.read();
+            senseIn = ain17.read() + 0.1;
+            sigOut = ((float)i)/20;
+            //printf("%d, %.2f\n\r",i,sigOut);
+            sprintf(dataOut,"{\"X\":%.2f,\"Y\":%.2f,\"Z\":%.2f}",potOut,senseIn,sigOut);
+            //printf("%s\n\r",dataOut);
+            //lcd.cls();
+            //lcd.locate(0,3);
+            //lcd.printf("Pot19: %.2f\n",potOut);
+            //lcd.printf("Sense: %.2f\n",senseIn);
+            //lcd.printf("SigOut: %.2f\n",sigOut);
+            
+            ws.send(dataOut);// %d",heatOn);
+            led1 = 0;
+        }
+    }
+}
diff -r 000000000000 -r 5f2b64d6ed81 mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#be2573f85b81
diff -r 000000000000 -r 5f2b64d6ed81 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Jun 09 22:54:42 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/8a40adfe8776
\ No newline at end of file