Device 1 for Iot group project.

Dependencies:   C12832 FXOS8700Q LM75B MMA7660 mbed

Revision:
0:41a47fd5d1cb
Child:
1:9a7edbd937fd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/device1.cpp	Sun Jan 24 14:02:54 2016 +0000
@@ -0,0 +1,98 @@
+#include "mbed.h"
+#include "LM75B.h"     /* On sheild Temp sensor */
+#include "MMA7660.h"   /* On sheild Accelerometer */
+#include "C12832.h"    /* On sheild LCD */
+#include "FXOS8700Q.h"
+
+//I2C i2c (PTE25, PTE24);
+DigitalOut gpo (D0);
+DigitalOut led (LED_RED);
+PwmOut speaker (D6);
+Serial host    (USBTX, USBRX);
+LM75B temp     (D14, D15);
+C12832 lcd     (D11, D13, D12, D7, D10);
+Serial xbee    (D1, D0);
+
+FXOS8700Q_mag mag( PTE25, PTE24, FXOS8700CQ_SLAVE_ADDR1);
+
+char input;
+char alert = 'A'; // degree
+char warn  = 'W'; // temp
+char dang  = 'D'; // degree + temp alert 
+
+float x,y,z,tp, degree;
+
+/* On board magnometer */
+void onbmag (void)
+{
+        MotionSensorDataCounts mag_raw;
+        mag.getAxis(mag_raw);               /* reads raw Magnetometer data */
+        float magx = mag_raw.x;
+        float magy = mag_raw.y;
+        float degree = abs(atan2(magx,magy)*180*7/22);
+    
+}
+
+int main()
+{
+    host.baud(38400);
+    void onbmag();
+    float anti = abs(degree); 
+    for(;;)
+    {
+        
+  
+    
+        void onbmag();
+        tp = temp.read ();
+        lcd.cls();
+        lcd.locate(0,1);
+        lcd.printf ("Temp: %.3f F", tp);
+        lcd.locate(10,1);
+        lcd.printf ("Mag: %.0f", degree); 
+        xbee.putc((float)(degree));
+        xbee.putc((float)(tp));
+        
+        // If the door moves, Send alert 
+        if (abs(anti-degree) > 45 )
+        {
+            // sends the char 
+            xbee.putc((char)(alert));
+            
+        }
+        if (tp < 0 || tp > 45)
+        {  
+            xbee.putc((char)(warn));
+        }
+        //Receiving char response 
+        if(xbee.readable())
+        {
+        input = xbee.getc();
+        switch(input)
+        {
+            case 'y':
+            speaker.period(1.0/500.0);
+            speaker=0.5;
+            break;
+            
+            case 'Y':
+            speaker.period(1.0/500.0);
+            speaker=0.5;
+            break;
+            
+            case 'n':
+            speaker.period(5.0/500.0);
+            speaker=2.5;
+            break;
+            
+            case 'N':
+            speaker.period(5.0/500.0);
+            speaker=2.5;
+            break;
+        }
+      
+  
+    }
+    
+    }
+    }