Simple Demo that gets a webpage

Dependencies:   HTTPClient cc3000_hostdriver_mbedsocket mbed

Fork of EECS149_email_notifier by Antonio Iannopollo

main.cpp

Committer:
nebgnahz
Date:
2014-10-19
Revision:
13:26905142e97b
Parent:
12:9e383f611c45
Child:
14:efd42910791b

File content as of revision 13:26905142e97b:

/**
*  \brief CS294-84 demo
*  \author Ben Zhang, Antonio Iannopollo
*
* This sampel code illustrates how to connect the mbed KL25Z platform to internet
* thorugh the CC3000 wifi breakout board (http://www.adafruit.com/product/1469).
* Connections between the KL25Z and the CC3000 are made according to the
* guide at https://learn.adafruit.com/adafruit-cc3000-wifi -- KL25Z and arduino
* UNO are pin to pin compatible --
*
* This application uses the following libraries:
* - cc3000_hostdriver_mbedsocket
*   (http://developer.mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/)
* - HTTPClient (http://developer.mbed.org/users/donatien/code/HTTPClient/)
*/

#include "mbed.h"
#include "cc3000.h"
#include "HTTPClient.h"

// KL25Z wifi connection
// we need to define connection pins for:
// - IRQ      => (pin D3)
// - Enable   => (pin D5)
// - SPI CS   => (pin D10)
// - SPI MOSI => (pin D11)
// - SPI MISO => (pin D12)
// - SPI CLK  => (pin D13)
// plus wifi network SSID, password, security level and smart-configuration flag.
mbed_cc3000::cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13), "SSID", "PASSWORD", WPA2, false);

// create an http instance
HTTPClient http;

// str is used to hold the response data
char str[512];

// setup the serial connection, and LEDs
Serial pc(USBTX, USBRX);
DigitalOut led_red(LED_RED);
DigitalOut led_green(LED_GREEN);

int main()
{
    // by default, it's red
    led_red = 0;
    led_green = 1;

    // print message to indicate the program has started
    pc.printf("CC3000 Sample Program\r\n");
    wifi.init();

    while(1) {
        // continuosly check connection status
        if(wifi.is_connected() == false) {
            // try to connect
            if (wifi.connect() == -1) {
                printf("Failed to connect. Please verify connection details and try again. \r\n");
            } else {
                printf("IP address: %s \r\n", wifi.getIPAddress());

                //once connected, turn green LED on and red LED off
                led_red = 1;
                led_green = 0;
            }
        } else {
            int ret = http.get("http://www.eecs.berkeley.edu/~benzh/hello.txt", str, 128);
            if (!ret) {
                printf("Page fetched successfully - read %d characters\r\n", strlen(str));
                printf("Result: %s\r\n", str);
            } else {
                printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
            }
        }
        // repeat after waiting for 1 sec
        wait(1.0);
    }
}