Motion Detected Pictures On a Server
Dependencies: EthernetNetIf mbed HTTPServer Camera_LS_Y201
Revision 0:f7337de6da7d, committed 2011-02-28
- Comitter:
- Shruti
- Date:
- Mon Feb 28 20:53:01 2011 +0000
- Commit message:
Changed in this revision
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