M1DK Skywire Demo
Dependencies: SHT30-DIS-B mbed
Fork of M1DK_Skywire_Demo by
Diff: main.cpp
- Revision:
- 0:3095958bc639
- Child:
- 2:b57e24a42b6f
diff -r 000000000000 -r 3095958bc639 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jan 05 22:46:18 2015 +0000 @@ -0,0 +1,95 @@ + + +#include "mbed.h" +#include "LPS331.h" +#include "LIS3DH.h" +#include "LM75B.h" + +/* --CHANGE THIS FOR YOUR SETUP" -- */ +#define DeviceID "mbedskywire" //Freeboard DweetIO unique ID + +DigitalOut myled(LED1); +DigitalOut skywire_en(PA_6); +DigitalOut skywire_rts(PA_7); + +Serial skywire(PA_9,PA_10); +Serial debug_pc(USBTX, USBRX); + +I2C i2c(PB_9,PB_8); +char msg[3]; + +LPS331 pressure(i2c); +LM75B LM75_temp(PB_9,PB_8); +LIS3DH accel(i2c, LIS3DH_V_CHIP_ADDR, LIS3DH_DR_NR_LP_100HZ, LIS3DH_FS_2G); + + +char str[512]; +char str2[512]; +float latitude; +float longitude; +int number; + +int main() +{ + float axis[3]; + float press; + float temp; + + + debug_pc.baud(115200); + skywire.baud(115200); + skywire_rts=0; + myled=0; + debug_pc.printf("Starting Demo...\n"); + debug_pc.printf("Waiting for Skywire to Boot...\n"); + //Enable Skywire + skywire_en=0; + wait(2); + skywire_en=1; + wait(2); + skywire_en=0; + + myled=1; + wait(5); + + LM75_temp.open(); + + debug_pc.printf("Connecting to Network...\n"); + // get IP address + skywire.printf("AT#SGACT=1,1\r\n"); + wait_ms(500); + skywire.gets(str, 255); + skywire.gets(str, 255); + debug_pc.printf("Skywire says: %s\n", str); + + // connect to dweet.io + skywire.printf("AT#HTTPCFG=1,\"dweet.io\",80,0\r\n"); + skywire.gets(str, 255); + skywire.gets(str, 255); + debug_pc.printf("Skywire says: %s\n", str); + + //get location approximation from cell tower information + skywire.printf("AT#AGPSSND\r\n"); + skywire.gets(str, 255); + skywire.gets(str, 255); + skywire.gets(str, 255); + skywire.gets(str, 255); + debug_pc.printf("Skywire says: %s\n", str); + sscanf(str, "%s %d,%f,%f,", str2, &number, &latitude, &longitude); + debug_pc.printf("Location: Latt:%f, Long:%f\n", latitude, longitude); + + while(1) { + temp = (float)LM75_temp; + debug_pc.printf("Temp = %.3f\n", temp); + press=(float)pressure.value() / 4096; + debug_pc.printf("Pressure = %.3f\n", press); + accel.read_data(axis); + debug_pc.printf("Accel = %.3f, %.3f, %.3f\n", axis[0], axis[1], axis[2]); + + //Report Sensor Data to dweet.io + skywire.printf("AT#HTTPQRY=1,0,\"/dweet/for/%s?temperature=%.3f&pressure=%.3f&X=%.3f&Y=%.3f&Z=%.3f&Latitude=%f&Longitude=%f\"\r\n", DeviceID, temp, press, axis[0], axis[1], axis[2], latitude, longitude); + skywire.printf("AT#HTTPRCV=1\r\n"); + wait(5); + } + +}