demo1

Dependencies:   SHT30-DIS-B WakeUp mbed

Fork of M1DK_Skywire_Demo by NimbeLink

main.cpp

Committer:
kholland
Date:
2015-01-05
Revision:
0:3095958bc639
Child:
2:b57e24a42b6f

File content as of revision 0:3095958bc639:



#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);
        }

}