Work with nodejs server: https://github.com/bjo3rn/idd-examples/tree/ben-node-demo/web/nodeServerHTTPSocket

Dependencies:   HTTPClient WebSocketClient cc3000_hostdriver_mbedsocket mbed

Fork of CC3000_demo by Ben Zhang

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?

UserRevisionLine numberNew 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 }