A Nucleo program using a CC3000 wifi chip to ping

Dependencies:   NVIC_set_all_priorities TextLCD cc3000_hostdriver_mbedsocket mbed

Committer:
MarcoAmerena
Date:
Thu Jul 10 12:26:06 2014 +0000
Revision:
0:2aa37889f076
NucleoWifi 1.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarcoAmerena 0:2aa37889f076 1 #include "mbed.h"
MarcoAmerena 0:2aa37889f076 2 #include "TextLCD.h"
MarcoAmerena 0:2aa37889f076 3 #include "cc3000.h"
MarcoAmerena 0:2aa37889f076 4 #include "main.h"
MarcoAmerena 0:2aa37889f076 5
MarcoAmerena 0:2aa37889f076 6
MarcoAmerena 0:2aa37889f076 7 using namespace mbed_cc3000;
MarcoAmerena 0:2aa37889f076 8
MarcoAmerena 0:2aa37889f076 9 #if (MY_BOARD == WIFI_SHEILD_ADAFRUIT)
MarcoAmerena 0:2aa37889f076 10 cc3000 wifi(PB_3, PB_4, PB_6, SPI(PA_7, PA_6, PA_5), "SSID", "PASSWORD", WPA, false); //irq, en, cs, spi, irq-port
MarcoAmerena 0:2aa37889f076 11 Serial pc(USBTX, USBRX); // tx, rx
MarcoAmerena 0:2aa37889f076 12 #endif
MarcoAmerena 0:2aa37889f076 13
MarcoAmerena 0:2aa37889f076 14 TextLCD lcd(PC_8, PC_6, PC_5, PB_15, PB_14, PB_12); // rs, e, d4-d7
MarcoAmerena 0:2aa37889f076 15 DigitalOut led(PC_10);
MarcoAmerena 0:2aa37889f076 16
MarcoAmerena 0:2aa37889f076 17 int main()
MarcoAmerena 0:2aa37889f076 18 {
MarcoAmerena 0:2aa37889f076 19 lcd.cls();
MarcoAmerena 0:2aa37889f076 20 lcd.printf("CC3000 Ping");
MarcoAmerena 0:2aa37889f076 21
MarcoAmerena 0:2aa37889f076 22 led = 0;
MarcoAmerena 0:2aa37889f076 23 wifi.init();
MarcoAmerena 0:2aa37889f076 24
MarcoAmerena 0:2aa37889f076 25 if (wifi.connect(5000) == false)
MarcoAmerena 0:2aa37889f076 26 {
MarcoAmerena 0:2aa37889f076 27 lcd.locate(0, 0);
MarcoAmerena 0:2aa37889f076 28 lcd.printf("Return 1");
MarcoAmerena 0:2aa37889f076 29 }
MarcoAmerena 0:2aa37889f076 30 else
MarcoAmerena 0:2aa37889f076 31 {
MarcoAmerena 0:2aa37889f076 32 lcd.cls();
MarcoAmerena 0:2aa37889f076 33 lcd.locate(0, 0);
MarcoAmerena 0:2aa37889f076 34 lcd.printf("IP address:");
MarcoAmerena 0:2aa37889f076 35 lcd.locate(0, 1);
MarcoAmerena 0:2aa37889f076 36 lcd.printf("%s",wifi.getIPAddress());
MarcoAmerena 0:2aa37889f076 37 }
MarcoAmerena 0:2aa37889f076 38
MarcoAmerena 0:2aa37889f076 39 wait(5);
MarcoAmerena 0:2aa37889f076 40
MarcoAmerena 0:2aa37889f076 41 uint32_t ip;
MarcoAmerena 0:2aa37889f076 42 uint8_t *site = (uint8_t *)"google.com";
MarcoAmerena 0:2aa37889f076 43
MarcoAmerena 0:2aa37889f076 44 printf("IP of %s ",site);
MarcoAmerena 0:2aa37889f076 45 if (wifi._socket.gethostbyname(site,strlen((const char *)site), &ip))
MarcoAmerena 0:2aa37889f076 46 {
MarcoAmerena 0:2aa37889f076 47 uint8_t add0 = (ip >> 24);
MarcoAmerena 0:2aa37889f076 48 uint8_t add1 = (ip >> 16);
MarcoAmerena 0:2aa37889f076 49 uint8_t add2 = (ip >> 8);
MarcoAmerena 0:2aa37889f076 50 uint8_t add3 = (ip >> 0);
MarcoAmerena 0:2aa37889f076 51 printf("IP address of %s: %d:%d:%d:%d \r\n", site, add0, add1, add2, add3);
MarcoAmerena 0:2aa37889f076 52 led = 1;
MarcoAmerena 0:2aa37889f076 53 }
MarcoAmerena 0:2aa37889f076 54 else
MarcoAmerena 0:2aa37889f076 55 {
MarcoAmerena 0:2aa37889f076 56 lcd.locate(0, 0);
MarcoAmerena 0:2aa37889f076 57 lcd.printf("Return 2");
MarcoAmerena 0:2aa37889f076 58 }
MarcoAmerena 0:2aa37889f076 59 wait(3);
MarcoAmerena 0:2aa37889f076 60
MarcoAmerena 0:2aa37889f076 61 printf("Starting sending ping. \r\n");
MarcoAmerena 0:2aa37889f076 62 uint32_t reply_count = wifi.ping(ip, 5, 500, 32);
MarcoAmerena 0:2aa37889f076 63 lcd.cls();
MarcoAmerena 0:2aa37889f076 64 lcd.locate(0, 0);
MarcoAmerena 0:2aa37889f076 65 lcd.printf("Recieved:");
MarcoAmerena 0:2aa37889f076 66 lcd.locate(0, 1);
MarcoAmerena 0:2aa37889f076 67 lcd.printf("%d", reply_count);
MarcoAmerena 0:2aa37889f076 68 printf("Ping demo completed. \r\n");
MarcoAmerena 0:2aa37889f076 69 wifi.disconnect();
MarcoAmerena 0:2aa37889f076 70 }