demo1
Dependencies: SHT30-DIS-B WakeUp mbed
Fork of M1DK_Skywire_Demo by
main.cpp@0:3095958bc639, 2015-01-05 (annotated)
- Committer:
- kholland
- Date:
- Mon Jan 05 22:46:18 2015 +0000
- Revision:
- 0:3095958bc639
- Child:
- 2:b57e24a42b6f
Initial Demo commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kholland | 0:3095958bc639 | 1 | |
kholland | 0:3095958bc639 | 2 | |
kholland | 0:3095958bc639 | 3 | #include "mbed.h" |
kholland | 0:3095958bc639 | 4 | #include "LPS331.h" |
kholland | 0:3095958bc639 | 5 | #include "LIS3DH.h" |
kholland | 0:3095958bc639 | 6 | #include "LM75B.h" |
kholland | 0:3095958bc639 | 7 | |
kholland | 0:3095958bc639 | 8 | /* --CHANGE THIS FOR YOUR SETUP" -- */ |
kholland | 0:3095958bc639 | 9 | #define DeviceID "mbedskywire" //Freeboard DweetIO unique ID |
kholland | 0:3095958bc639 | 10 | |
kholland | 0:3095958bc639 | 11 | DigitalOut myled(LED1); |
kholland | 0:3095958bc639 | 12 | DigitalOut skywire_en(PA_6); |
kholland | 0:3095958bc639 | 13 | DigitalOut skywire_rts(PA_7); |
kholland | 0:3095958bc639 | 14 | |
kholland | 0:3095958bc639 | 15 | Serial skywire(PA_9,PA_10); |
kholland | 0:3095958bc639 | 16 | Serial debug_pc(USBTX, USBRX); |
kholland | 0:3095958bc639 | 17 | |
kholland | 0:3095958bc639 | 18 | I2C i2c(PB_9,PB_8); |
kholland | 0:3095958bc639 | 19 | char msg[3]; |
kholland | 0:3095958bc639 | 20 | |
kholland | 0:3095958bc639 | 21 | LPS331 pressure(i2c); |
kholland | 0:3095958bc639 | 22 | LM75B LM75_temp(PB_9,PB_8); |
kholland | 0:3095958bc639 | 23 | LIS3DH accel(i2c, LIS3DH_V_CHIP_ADDR, LIS3DH_DR_NR_LP_100HZ, LIS3DH_FS_2G); |
kholland | 0:3095958bc639 | 24 | |
kholland | 0:3095958bc639 | 25 | |
kholland | 0:3095958bc639 | 26 | char str[512]; |
kholland | 0:3095958bc639 | 27 | char str2[512]; |
kholland | 0:3095958bc639 | 28 | float latitude; |
kholland | 0:3095958bc639 | 29 | float longitude; |
kholland | 0:3095958bc639 | 30 | int number; |
kholland | 0:3095958bc639 | 31 | |
kholland | 0:3095958bc639 | 32 | int main() |
kholland | 0:3095958bc639 | 33 | { |
kholland | 0:3095958bc639 | 34 | float axis[3]; |
kholland | 0:3095958bc639 | 35 | float press; |
kholland | 0:3095958bc639 | 36 | float temp; |
kholland | 0:3095958bc639 | 37 | |
kholland | 0:3095958bc639 | 38 | |
kholland | 0:3095958bc639 | 39 | debug_pc.baud(115200); |
kholland | 0:3095958bc639 | 40 | skywire.baud(115200); |
kholland | 0:3095958bc639 | 41 | skywire_rts=0; |
kholland | 0:3095958bc639 | 42 | myled=0; |
kholland | 0:3095958bc639 | 43 | debug_pc.printf("Starting Demo...\n"); |
kholland | 0:3095958bc639 | 44 | debug_pc.printf("Waiting for Skywire to Boot...\n"); |
kholland | 0:3095958bc639 | 45 | //Enable Skywire |
kholland | 0:3095958bc639 | 46 | skywire_en=0; |
kholland | 0:3095958bc639 | 47 | wait(2); |
kholland | 0:3095958bc639 | 48 | skywire_en=1; |
kholland | 0:3095958bc639 | 49 | wait(2); |
kholland | 0:3095958bc639 | 50 | skywire_en=0; |
kholland | 0:3095958bc639 | 51 | |
kholland | 0:3095958bc639 | 52 | myled=1; |
kholland | 0:3095958bc639 | 53 | wait(5); |
kholland | 0:3095958bc639 | 54 | |
kholland | 0:3095958bc639 | 55 | LM75_temp.open(); |
kholland | 0:3095958bc639 | 56 | |
kholland | 0:3095958bc639 | 57 | debug_pc.printf("Connecting to Network...\n"); |
kholland | 0:3095958bc639 | 58 | // get IP address |
kholland | 0:3095958bc639 | 59 | skywire.printf("AT#SGACT=1,1\r\n"); |
kholland | 0:3095958bc639 | 60 | wait_ms(500); |
kholland | 0:3095958bc639 | 61 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 62 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 63 | debug_pc.printf("Skywire says: %s\n", str); |
kholland | 0:3095958bc639 | 64 | |
kholland | 0:3095958bc639 | 65 | // connect to dweet.io |
kholland | 0:3095958bc639 | 66 | skywire.printf("AT#HTTPCFG=1,\"dweet.io\",80,0\r\n"); |
kholland | 0:3095958bc639 | 67 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 68 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 69 | debug_pc.printf("Skywire says: %s\n", str); |
kholland | 0:3095958bc639 | 70 | |
kholland | 0:3095958bc639 | 71 | //get location approximation from cell tower information |
kholland | 0:3095958bc639 | 72 | skywire.printf("AT#AGPSSND\r\n"); |
kholland | 0:3095958bc639 | 73 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 74 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 75 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 76 | skywire.gets(str, 255); |
kholland | 0:3095958bc639 | 77 | debug_pc.printf("Skywire says: %s\n", str); |
kholland | 0:3095958bc639 | 78 | sscanf(str, "%s %d,%f,%f,", str2, &number, &latitude, &longitude); |
kholland | 0:3095958bc639 | 79 | debug_pc.printf("Location: Latt:%f, Long:%f\n", latitude, longitude); |
kholland | 0:3095958bc639 | 80 | |
kholland | 0:3095958bc639 | 81 | while(1) { |
kholland | 0:3095958bc639 | 82 | temp = (float)LM75_temp; |
kholland | 0:3095958bc639 | 83 | debug_pc.printf("Temp = %.3f\n", temp); |
kholland | 0:3095958bc639 | 84 | press=(float)pressure.value() / 4096; |
kholland | 0:3095958bc639 | 85 | debug_pc.printf("Pressure = %.3f\n", press); |
kholland | 0:3095958bc639 | 86 | accel.read_data(axis); |
kholland | 0:3095958bc639 | 87 | debug_pc.printf("Accel = %.3f, %.3f, %.3f\n", axis[0], axis[1], axis[2]); |
kholland | 0:3095958bc639 | 88 | |
kholland | 0:3095958bc639 | 89 | //Report Sensor Data to dweet.io |
kholland | 0:3095958bc639 | 90 | 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); |
kholland | 0:3095958bc639 | 91 | skywire.printf("AT#HTTPRCV=1\r\n"); |
kholland | 0:3095958bc639 | 92 | wait(5); |
kholland | 0:3095958bc639 | 93 | } |
kholland | 0:3095958bc639 | 94 | |
kholland | 0:3095958bc639 | 95 | } |