Flotsam / Full-Project

Dependencies:   GPSLibrary GSM mbed-modifed Storage_Library Temp_Library Wakeup pH_Sensor

main.cpp

Committer:
ptcrews
Date:
2015-11-06
Revision:
3:6afcf4f3b2aa
Parent:
2:8de680cf7a19
Child:
5:e180c73f4f70

File content as of revision 3:6afcf4f3b2aa:

#include "Adafruit_FONA.h"
#include "WakeUp.h"
#include "mbed.h"

#define FONA_TX D8
#define FONA_RX D2
#define FONA_RST D3
#define FONA_RI D4
#define FONA_KEY D5

Adafruit_FONA fona(FONA_TX, FONA_RX, FONA_RST, FONA_RI);
Serial pcSerial(USBTX, USBRX);
DigitalOut key(FONA_KEY);

void setupGSM()
{
    printf("Starting FONA\n");
    while(!fona.begin(9600)) {
        printf("Cannot find FONA\n");
        wait(1);
    }
    fona.begin(9600);
    fona.setGPRSNetworkSettings("pwg", "", "");
    bool enable = false;
    while(enable != true) {
        fona.enableGPRS(true);
        fona.enableGPRS(false);
        enable = fona.enableGPRS(true);
    }
}

void changeGSMPowerState()
{
    key.write(0);
    wait(2);
    key.write(1);
}

void enterSleep(int msec)
{
    if(msec > 0) WakeUp::set_ms(msec);
    deepsleep();
}

bool sendDataOverHTTP(const char* url, const char* data)
{
    uint16_t statuscode;
    int16_t length;
    if (!fona.HTTP_POST_start(url, "text/plain", (uint8_t *) data, strlen(data), &statuscode, (uint16_t *)&length)) {
        pcSerial.printf("Failed!\r\n");
        return false;
    }
    while (length > 0) {
        while (fona.readable()) {
            char c = fona.getc();
            pcSerial.putc(c);
            length--;
            if (! length) break;
        }
    }
    pcSerial.printf("\r\n****\r\n");
    fona.HTTP_POST_end();
    return true;
}

int main()
{

    pcSerial.baud(9600);
    changeGSMPowerState();
    setupGSM();
    //sendDataOverHTTP("http://requestb.in/10pbl2i1", "testing");
    
    changeGSMPowerState();

    return 0;
}