Motion Detected Pictures On a Server

Dependencies:   EthernetNetIf mbed HTTPServer Camera_LS_Y201

Files at this revision

API Documentation at this revision

Comitter:
Shruti
Date:
Mon Feb 28 20:53:01 2011 +0000
Commit message:

Changed in this revision

Camera_LS_Y201.lib Show annotated file Show diff for this revision Revisions of this file
EthernetNetIf.lib Show annotated file Show diff for this revision Revisions of this file
HTTPServer.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r f7337de6da7d Camera_LS_Y201.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Camera_LS_Y201.lib	Mon Feb 28 20:53:01 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/shintamainjp/code/Camera_LS_Y201/#f71232252dcf
diff -r 000000000000 -r f7337de6da7d EthernetNetIf.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetNetIf.lib	Mon Feb 28 20:53:01 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mamezu/code/EthernetNetIf/#0f6c82fcde82
diff -r 000000000000 -r f7337de6da7d HTTPServer.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPServer.lib	Mon Feb 28 20:53:01 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/HTTPServer/#d753966e4d97
diff -r 000000000000 -r f7337de6da7d main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Feb 28 20:53:01 2011 +0000
@@ -0,0 +1,132 @@
+#include "mbed.h"
+#include "Camera_LS_Y201.h"
+#include "EthernetNetIf.h"
+#include "HTTPServer.h"
+
+Camera_LS_Y201 cam(p13, p14);
+DigitalOut led1(LED1, "led1");
+DigitalOut led2(LED2, "led2");
+DigitalOut led3(LED3, "led3");
+DigitalOut led4(LED4, "led4");
+AnalogIn sensor(p20);           /*input from analog phidget motion sensor*/
+
+LocalFileSystem fs("webfs");    /*local filesystem*/
+
+EthernetNetIf eth;
+HTTPServer svr;
+
+FILE *fp;
+int count =0;
+
+void callback_func(uint8_t *buf, size_t siz) {
+    fwrite(buf, siz, 1, fp);
+}
+
+int main(void) {
+
+    float level1 , level2 = 1.0;
+
+    Base::add_rpc_class<DigitalOut>();
+
+    printf("Setting up...\n");
+    EthernetErr ethErr = eth.setup();
+    if (ethErr) {
+        printf("Error %d in setup.\n", ethErr);
+        return -1;
+    }
+    printf("Setup OK\n");
+
+    char test[64];
+
+    wait(1);
+
+    printf("reset=%d\n", cam.reset());
+    wait(1);
+
+#if 0
+    printf("setImageSize=%d\n", cam.setImageSize(LS_Y201::ImageSize640x480));
+    wait(1);
+#endif
+
+
+    while (count <5) {                                                  /*loop to catch five consecutive motions in the form of pictures*/
+        level1 = sensor.read();
+        level2 = (level2 * .8 + level1 * .2);                           /* running average filter*/
+        printf("value of sensor = %f and value of level2 is = %f \n\r", level1, level2);
+
+        if ((level2) < 0.67) {
+            
+            printf("reset=%d\n", cam.reset());                          /*reset after each picture*/
+            wait(1);
+
+            char format[] = "/webfs/test%d.jpg";
+            char filename[sizeof(format)+100];
+            sprintf(filename,format,count);
+            printf("file name is %s\n", filename);
+            fp = fopen(filename,"wb");
+
+
+
+            if (fp == NULL) {
+                error("Failure to open a destination file.");
+            }
+            wait(1);
+            
+            printf("takePicture=%d\n", cam.takePicture());              /*clicking the picture*/
+            wait(1);
+
+            int fs;
+            printf("readJpegFileSize=%d\n", cam.readJpegFileSize(&fs));
+            printf("\tFile size = %d\n", fs);
+            wait(1);
+
+            printf("readJpegFileContent=%d\n", cam.readJpegFileContent(callback_func));
+            wait(1);
+
+            fclose(fp);
+
+            FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
+            FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
+            svr.addHandler<SimpleHandler>("/hello");
+            svr.addHandler<RPCHandler>("/rpc");
+            svr.addHandler<FSHandler>("/files");
+            svr.addHandler<FSHandler>("/"); //Default handler
+            //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
+
+            svr.bind(80);
+            count++;
+        } else {
+            printf("no motion");
+        }
+    }
+
+
+    printf("Listening...\n");
+
+    Timer tm;
+    tm.start();
+    //Listen indefinitely
+    while (true) {
+        Net::poll();
+        if (tm.read()>.5) {
+            led1=!led1; //Show that we are alive
+            tm.start();
+        }
+    }
+
+
+    return 0;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r f7337de6da7d mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Feb 28 20:53:01 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e