see: http://mbed.org/users/okini3939/notebook/wifi_webcam/
Dependencies: GSwifiInterface_ap_webcam USBHost mbed
main.cpp@0:8558bdecb0fa, 2014-06-06 (annotated)
- Committer:
- okini3939
- Date:
- Fri Jun 06 00:44:06 2014 +0000
- Revision:
- 0:8558bdecb0fa
1st build
Who changed what in which revision?
User | Revision | Line number | New 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 | } |