finish ^o^
Dependencies: Air_Quality DHT SDFileSystem Servo WIZnetInterface httpServer mbed-src
Fork of httpServer-WIZwiki-W7500 by
main.cpp
- Committer:
- M_J
- Date:
- 2015-08-19
- Revision:
- 19:e2b03f4e2c7e
- Parent:
- 18:5d96484995cf
- Child:
- 20:3b473e577885
File content as of revision 19:e2b03f4e2c7e:
#include "mbed.h" #include "EthernetInterface.h" #include "FsHandler.h" #include "HTTPServer.h" #include "SDFileSystem.h" #include "DHT.h" #include "Servo.h" int motion_detected = 0; // motion int i=0; // touch extern int lumi_val; extern int cel_val; extern int touch_val; DHT sensor(D4, DHT11); InterruptIn motion(D5); AnalogIn luminance(A1); InterruptIn event(D2); // touch Servo myservo(D14); // touch servo DigitalOut led_R(LED1); DigitalOut led_G(LED2); DigitalOut led_B(LED3); #ifdef TARGET_WIZWIKI_W7500 //Choose one of file system. SDFileSystem local(SD_MOSI, SD_MISO, SD_CLK, SD_SEL, "local");//PB_3, PB_2, PB_1, PB_0 //LocalFileSystem local("local"); #endif #ifdef TARGET_WIZWIKI_W7500 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; #endif EthernetInterface eth; HTTPServer svr; char ip_addr[] = "192.168.1.111"; char subnet_mask[] = "255.255.255.0"; char gateway_addr[] = "192.168.1.1"; //#define DHCP //If uncomment, W7500 runs DHCP // motion void irq_handler() { motion_detected = 1; } // touch void trigger() { if(touch_val == 0) printf("5. Touch : Can't move!\r\n\r\n"); else { printf("5. Touch : move!\r\n\r\n"); if(i==0) myservo = 0; else if (i==1) myservo = 0.3; else if (i==2) myservo = 0.6; else if (i==3) myservo = 0.9; } if (i<3) i++; else i=0; } int main() { int rd_sensor = 0; // when rd_sensor = 0, sensor is ready to read the data. float hum = 0.0f; float cel = 0.0f; HTTPFsRequestHandler::mount("/local/", "/"); svr.addHandler<HTTPFsRequestHandler>("/"); #ifdef TARGET_WIZWIKI_W7500 #ifdef DHCP eth.init(mac_addr); //Use DHCP #else eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr); //Not Use DHCP #endif #else #ifdef DHCP eth.init(); //Use DHCP #else eth.init(ip_addr, subnet_mask, gateway_addr); //Not Use DHCP #endif #endif printf("Check Ethernet Link\r\n"); while(1) //Wait link up { if(eth.link() == true) break; } printf("Link up\r\n"); eth.connect(); printf("Server IP Address is %s\r\n", eth.getIPAddress()); if (!svr.start(80, ð)) { error("Server not starting !"); exit(0); } motion.rise(&irq_handler); event.rise(&trigger); // touch while(1) { svr.poll(); wait(0.3); //DHT sensor rd_sensor = sensor.readData(); if (0 == rd_sensor) { hum = sensor.ReadHumidity(); cel = sensor.ReadTemperature(CELCIUS); cel = cel*cel_val; // control with html printf("1. Humidity : %4.2f\r\n\n", hum); wait(0.3); printf("2. Temperature in Celcius : %2.2f\r\n\n", cel); wait(0.3); } else printf("1,2. Error! : %d\r\n\n", rd_sensor); // motion if(motion_detected) { motion_detected = 0; printf("3. Something move!\r\n\r\n"); wait(0.3); } // luminance printf("4. Luminance: %f\r\n\r\n", luminance.read()); //printf(" + lumi_val = %d\r\n\r\n", lumi_val); if(lumi_val == 0) { led_R=1; led_G=1; led_B=1;} // led off else { if(luminance.read()<=0.1){ led_R=0; led_G=0; led_B=0;} // white LED on else if(0.1<=luminance.read()&&luminance.read()<=0.3){ led_R=0; led_G=0; led_B=1;} // yellow LED on else{ led_R=1; led_G=1; led_B=1;} // led off } wait(1); } }