Simple Demo that gets a webpage
Dependencies: HTTPClient cc3000_hostdriver_mbedsocket mbed
Fork of EECS149_email_notifier by
main.cpp@14:efd42910791b, 2014-10-20 (annotated)
- Committer:
- nebgnahz
- Date:
- Mon Oct 20 06:58:24 2014 +0000
- Revision:
- 14:efd42910791b
- Parent:
- 13:26905142e97b
- Child:
- 15:ac15ec676d87
new revision that works with husk server
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nebgnahz | 13:26905142e97b | 1 | /** |
nebgnahz | 14:efd42910791b | 2 | * \brief CS294-84 demo |
nebgnahz | 14:efd42910791b | 3 | * \author Ben Zhang, Antonio Iannopollo |
nebgnahz | 14:efd42910791b | 4 | * |
nebgnahz | 14:efd42910791b | 5 | * This sampel code illustrates how to connect the mbed KL25Z platform to internet |
nebgnahz | 14:efd42910791b | 6 | * thorugh the CC3000 wifi breakout board (http://www.adafruit.com/product/1469). |
nebgnahz | 14:efd42910791b | 7 | * Connections between the KL25Z and the CC3000 are made according to the |
nebgnahz | 14:efd42910791b | 8 | * guide at https://learn.adafruit.com/adafruit-cc3000-wifi -- KL25Z and arduino |
nebgnahz | 14:efd42910791b | 9 | * UNO are pin to pin compatible -- |
nebgnahz | 14:efd42910791b | 10 | * |
nebgnahz | 14:efd42910791b | 11 | * This application uses the following libraries: |
nebgnahz | 14:efd42910791b | 12 | * - cc3000_hostdriver_mbedsocket |
nebgnahz | 14:efd42910791b | 13 | * (http://developer.mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/) |
nebgnahz | 14:efd42910791b | 14 | * - HTTPClient (http://developer.mbed.org/users/donatien/code/HTTPClient/) |
nebgnahz | 14:efd42910791b | 15 | */ |
nebgnahz | 13:26905142e97b | 16 | |
Kojto | 0:fe1445e57b7d | 17 | #include "mbed.h" |
Kojto | 0:fe1445e57b7d | 18 | #include "cc3000.h" |
Kojto | 0:fe1445e57b7d | 19 | #include "HTTPClient.h" |
Kojto | 0:fe1445e57b7d | 20 | |
nebgnahz | 13:26905142e97b | 21 | // KL25Z wifi connection |
nebgnahz | 13:26905142e97b | 22 | // we need to define connection pins for: |
nebgnahz | 13:26905142e97b | 23 | // - IRQ => (pin D3) |
nebgnahz | 13:26905142e97b | 24 | // - Enable => (pin D5) |
nebgnahz | 13:26905142e97b | 25 | // - SPI CS => (pin D10) |
nebgnahz | 13:26905142e97b | 26 | // - SPI MOSI => (pin D11) |
nebgnahz | 13:26905142e97b | 27 | // - SPI MISO => (pin D12) |
nebgnahz | 13:26905142e97b | 28 | // - SPI CLK => (pin D13) |
nebgnahz | 13:26905142e97b | 29 | // plus wifi network SSID, password, security level and smart-configuration flag. |
nebgnahz | 14:efd42910791b | 30 | mbed_cc3000::cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13), |
nebgnahz | 14:efd42910791b | 31 | "EECS-PSK", "Thequickbrown", WPA2, false); |
antoni0 | 10:1804a9dbaee0 | 32 | |
nebgnahz | 13:26905142e97b | 33 | // create an http instance |
nebgnahz | 13:26905142e97b | 34 | HTTPClient http; |
Kojto | 0:fe1445e57b7d | 35 | |
nebgnahz | 13:26905142e97b | 36 | // str is used to hold the response data |
nebgnahz | 13:26905142e97b | 37 | char str[512]; |
nebgnahz | 14:efd42910791b | 38 | char url[80]; |
antoni0 | 7:47cd0d3d5e4d | 39 | |
nebgnahz | 13:26905142e97b | 40 | // setup the serial connection, and LEDs |
nebgnahz | 13:26905142e97b | 41 | Serial pc(USBTX, USBRX); |
antoni0 | 7:47cd0d3d5e4d | 42 | DigitalOut led_red(LED_RED); |
nebgnahz | 13:26905142e97b | 43 | DigitalOut led_green(LED_GREEN); |
antoni0 | 7:47cd0d3d5e4d | 44 | |
nebgnahz | 13:26905142e97b | 45 | int main() |
nebgnahz | 13:26905142e97b | 46 | { |
nebgnahz | 13:26905142e97b | 47 | // by default, it's red |
nebgnahz | 13:26905142e97b | 48 | led_red = 0; |
antoni0 | 8:594cb3bc6f0f | 49 | led_green = 1; |
Kojto | 0:fe1445e57b7d | 50 | |
nebgnahz | 13:26905142e97b | 51 | // print message to indicate the program has started |
nebgnahz | 13:26905142e97b | 52 | pc.printf("CC3000 Sample Program\r\n"); |
Kojto | 4:b61a6b6190be | 53 | wifi.init(); |
nebgnahz | 13:26905142e97b | 54 | |
antoni0 | 7:47cd0d3d5e4d | 55 | while(1) { |
nebgnahz | 13:26905142e97b | 56 | // continuosly check connection status |
antoni0 | 7:47cd0d3d5e4d | 57 | if(wifi.is_connected() == false) { |
nebgnahz | 13:26905142e97b | 58 | // try to connect |
antoni0 | 7:47cd0d3d5e4d | 59 | if (wifi.connect() == -1) { |
nebgnahz | 14:efd42910791b | 60 | pc.printf("Failed to connect." |
nebgnahz | 14:efd42910791b | 61 | "Please verify connection details and try again. \r\n"); |
antoni0 | 7:47cd0d3d5e4d | 62 | } else { |
nebgnahz | 14:efd42910791b | 63 | pc.printf("IP address: %s \r\n", wifi.getIPAddress()); |
nebgnahz | 13:26905142e97b | 64 | |
antoni0 | 10:1804a9dbaee0 | 65 | //once connected, turn green LED on and red LED off |
antoni0 | 8:594cb3bc6f0f | 66 | led_red = 1; |
nebgnahz | 13:26905142e97b | 67 | led_green = 0; |
antoni0 | 7:47cd0d3d5e4d | 68 | } |
antoni0 | 7:47cd0d3d5e4d | 69 | } else { |
nebgnahz | 14:efd42910791b | 70 | // get input url and then return the value |
nebgnahz | 14:efd42910791b | 71 | pc.printf("> "); |
nebgnahz | 14:efd42910791b | 72 | pc.scanf("%s", url); |
nebgnahz | 14:efd42910791b | 73 | |
nebgnahz | 14:efd42910791b | 74 | int ret = http.get(url, str, 128); |
antoni0 | 7:47cd0d3d5e4d | 75 | if (!ret) { |
nebgnahz | 14:efd42910791b | 76 | pc.printf("Requested %s\r\n", url); |
nebgnahz | 14:efd42910791b | 77 | pc.printf("Page fetched successfully - read %d characters\r\n", |
nebgnahz | 14:efd42910791b | 78 | strlen(str)); |
nebgnahz | 14:efd42910791b | 79 | pc.printf("Result: %s\r\n", str); |
antoni0 | 7:47cd0d3d5e4d | 80 | } else { |
nebgnahz | 14:efd42910791b | 81 | pc.printf("Error - ret = %d - HTTP return code = %d\r\n", |
nebgnahz | 14:efd42910791b | 82 | ret, |
nebgnahz | 14:efd42910791b | 83 | http.getHTTPResponseCode()); |
antoni0 | 7:47cd0d3d5e4d | 84 | } |
antoni0 | 7:47cd0d3d5e4d | 85 | } |
Kojto | 0:fe1445e57b7d | 86 | } |
nebgnahz | 14:efd42910791b | 87 | } |