see: http://mbed.org/users/okini3939/notebook/wifi_webcam/

Dependencies:   GSwifiInterface_ap_webcam USBHost mbed

Committer:
okini3939
Date:
Fri Jun 06 00:44:06 2014 +0000
Revision:
0:8558bdecb0fa
1st build

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:8558bdecb0fa 1 /*
okini3939 0:8558bdecb0fa 2 * see: http://mbed.org/users/okini3939/notebook/wifi_webcam/
okini3939 0:8558bdecb0fa 3 *
okini3939 0:8558bdecb0fa 4 * using: http://mbed.org/users/va009039/code/USBHostC270_example/
okini3939 0:8558bdecb0fa 5 * using: http://mbed.org/users/gsfan/code/GSwifiInterface/
okini3939 0:8558bdecb0fa 6 */
okini3939 0:8558bdecb0fa 7
okini3939 0:8558bdecb0fa 8 #include "mbed.h"
okini3939 0:8558bdecb0fa 9 #include "GSwifiInterface.h"
okini3939 0:8558bdecb0fa 10 #include "USBHostC270.h"
okini3939 0:8558bdecb0fa 11
okini3939 0:8558bdecb0fa 12 #define SEC GSwifi::SEC_OPEN
okini3939 0:8558bdecb0fa 13 #define SSID "MBED"
okini3939 0:8558bdecb0fa 14 #define PASS "1234567890"
okini3939 0:8558bdecb0fa 15 #define MODE GSwifi::WM_LIMITEDAP
okini3939 0:8558bdecb0fa 16
okini3939 0:8558bdecb0fa 17 DigitalOut led1(LED1), led2(LED2), led3(LED3);
okini3939 0:8558bdecb0fa 18 Serial pc(USBTX, USBRX);
okini3939 0:8558bdecb0fa 19 LocalFileSystem local("local");
okini3939 0:8558bdecb0fa 20 GSwifiInterface *gs;
okini3939 0:8558bdecb0fa 21
okini3939 0:8558bdecb0fa 22 int main() {
okini3939 0:8558bdecb0fa 23 Timer t;
okini3939 0:8558bdecb0fa 24
okini3939 0:8558bdecb0fa 25 pc.baud(115200);
okini3939 0:8558bdecb0fa 26 pc.printf("GSwifi_ap_webcam\r\n");
okini3939 0:8558bdecb0fa 27
okini3939 0:8558bdecb0fa 28 gs = new GSwifiInterface(p13, p14, p12, P0_22, p20, NC, 115200);
okini3939 0:8558bdecb0fa 29 wait_ms(300);
okini3939 0:8558bdecb0fa 30 // gs->init(); //Use DHCP
okini3939 0:8558bdecb0fa 31 gs->init("192.168.1.1", "255.255.255.0", "192.168.1.1", "192.168.1.1", "www.mbed");
okini3939 0:8558bdecb0fa 32 if (gs->connect(SEC, SSID, PASS, MODE)) return -1; // join the network
okini3939 0:8558bdecb0fa 33 NVIC_SetPriority(UART1_IRQn, 1);
okini3939 0:8558bdecb0fa 34 printf("IP Address is %s\r\n", gs->getIPAddress());
okini3939 0:8558bdecb0fa 35
okini3939 0:8558bdecb0fa 36 gs->httpd();
okini3939 0:8558bdecb0fa 37 gs->httpdAttach("/", "/local/");
okini3939 0:8558bdecb0fa 38
okini3939 0:8558bdecb0fa 39 USBHostC270* cam = new USBHostC270(C270_MJPEG, C270_160x120, _10FPS); // Logitech C270
okini3939 0:8558bdecb0fa 40 // USBHostC270* cam = new USBHostC270(C270_MJPEG, C270_320x240, _5FPS); // Logitech C270
okini3939 0:8558bdecb0fa 41
okini3939 0:8558bdecb0fa 42 t.start();
okini3939 0:8558bdecb0fa 43 led1 = 1;
okini3939 0:8558bdecb0fa 44 for (;;) {
okini3939 0:8558bdecb0fa 45 gs->poll();
okini3939 0:8558bdecb0fa 46
okini3939 0:8558bdecb0fa 47 if (!cam->connected()) {
okini3939 0:8558bdecb0fa 48 led2 = 1;
okini3939 0:8558bdecb0fa 49 if (t.read() > 0.5) {
okini3939 0:8558bdecb0fa 50 cam->connect();
okini3939 0:8558bdecb0fa 51 if (cam->connected()) printf("webcam has detected\r\n");
okini3939 0:8558bdecb0fa 52 t.reset();
okini3939 0:8558bdecb0fa 53 }
okini3939 0:8558bdecb0fa 54 } else {
okini3939 0:8558bdecb0fa 55 led2 = 0;
okini3939 0:8558bdecb0fa 56 cam->poll();
okini3939 0:8558bdecb0fa 57 if (t.read() > 10) {
okini3939 0:8558bdecb0fa 58 led3 = 1;
okini3939 0:8558bdecb0fa 59 uint8_t buf[1024*8];
okini3939 0:8558bdecb0fa 60 int r = cam->readJPEG(buf, sizeof(buf));
okini3939 0:8558bdecb0fa 61 if (r) {
okini3939 0:8558bdecb0fa 62 FILE* fp = fopen("/local/photo.jpg", "wb");
okini3939 0:8558bdecb0fa 63 if (fp) {
okini3939 0:8558bdecb0fa 64 fwrite(buf, r, 1, fp);
okini3939 0:8558bdecb0fa 65 fclose(fp);
okini3939 0:8558bdecb0fa 66 }
okini3939 0:8558bdecb0fa 67 printf("took a picture\r\n");
okini3939 0:8558bdecb0fa 68 }
okini3939 0:8558bdecb0fa 69 t.reset();
okini3939 0:8558bdecb0fa 70 led3 = 0;
okini3939 0:8558bdecb0fa 71 }
okini3939 0:8558bdecb0fa 72 }
okini3939 0:8558bdecb0fa 73 }
okini3939 0:8558bdecb0fa 74 }