Device 1 for Iot group project.
Dependencies: C12832 FXOS8700Q LM75B MMA7660 mbed
Diff: device1.cpp
- 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; + } + + + } + + } + }