windown

Dependencies:   SDFileSystem WIZnetInterface mbed-src

Committer:
schenk
Date:
Mon Oct 05 06:42:59 2015 +0000
Revision:
0:1501dea8d383
window

Who changed what in which revision?

UserRevisionLine numberNew contents of line
schenk 0:1501dea8d383 1 #include "mbed.h"
schenk 0:1501dea8d383 2 #include "EthernetInterface.h"
schenk 0:1501dea8d383 3 #include "FsHandler.h"
schenk 0:1501dea8d383 4 #include "HTTPServer.h"
schenk 0:1501dea8d383 5 #include "SDFileSystem.h"
schenk 0:1501dea8d383 6 #include "DHT.h"
schenk 0:1501dea8d383 7
schenk 0:1501dea8d383 8 #ifdef TARGET_WIZWIKI_W7500
schenk 0:1501dea8d383 9 //Choose one of file system.
schenk 0:1501dea8d383 10 SDFileSystem local(SD_MOSI, SD_MISO, SD_CLK, SD_SEL, "local");//PB_3, PB_2, PB_1, PB_0
schenk 0:1501dea8d383 11 //LocalFileSystem local("local");
schenk 0:1501dea8d383 12 #endif
schenk 0:1501dea8d383 13
schenk 0:1501dea8d383 14 #ifdef TARGET_WIZWIKI_W7500
schenk 0:1501dea8d383 15 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
schenk 0:1501dea8d383 16 #endif
schenk 0:1501dea8d383 17 DHT sensor(D4, DHT11);
schenk 0:1501dea8d383 18 DigitalIn Rain(D2);
schenk 0:1501dea8d383 19 EthernetInterface eth;
schenk 0:1501dea8d383 20 HTTPServer svr;
schenk 0:1501dea8d383 21 char ip_addr[] = "192.168.1.112";
schenk 0:1501dea8d383 22 char subnet_mask[] = "255.255.255.0";
schenk 0:1501dea8d383 23 char gateway_addr[] = "192.168.1.1";
schenk 0:1501dea8d383 24
schenk 0:1501dea8d383 25 //#define DHCP //If uncomment, W7500 runs DHCP
schenk 0:1501dea8d383 26 int Rain_value=1;
schenk 0:1501dea8d383 27 int mode = 0;
schenk 0:1501dea8d383 28
schenk 0:1501dea8d383 29 int main()
schenk 0:1501dea8d383 30 {
schenk 0:1501dea8d383 31
schenk 0:1501dea8d383 32
schenk 0:1501dea8d383 33 int error = 0;
schenk 0:1501dea8d383 34 int h = 0, c = 0, Rain_value = 1;
schenk 0:1501dea8d383 35 HTTPFsRequestHandler::mount("/local/", "/");
schenk 0:1501dea8d383 36 svr.addHandler<HTTPFsRequestHandler>("/");
schenk 0:1501dea8d383 37
schenk 0:1501dea8d383 38 #ifdef TARGET_WIZWIKI_W7500
schenk 0:1501dea8d383 39
schenk 0:1501dea8d383 40 #ifdef DHCP
schenk 0:1501dea8d383 41 eth.init(mac_addr); //Use DHCP
schenk 0:1501dea8d383 42 #else
schenk 0:1501dea8d383 43 eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr); //Not Use DHCP
schenk 0:1501dea8d383 44 #endif
schenk 0:1501dea8d383 45
schenk 0:1501dea8d383 46 #else
schenk 0:1501dea8d383 47
schenk 0:1501dea8d383 48 #ifdef DHCP
schenk 0:1501dea8d383 49 eth.init(); //Use DHCP
schenk 0:1501dea8d383 50 #else
schenk 0:1501dea8d383 51 eth.init(ip_addr, subnet_mask, gateway_addr); //Not Use DHCP
schenk 0:1501dea8d383 52 #endif
schenk 0:1501dea8d383 53
schenk 0:1501dea8d383 54 #endif
schenk 0:1501dea8d383 55
schenk 0:1501dea8d383 56 printf("Check Ethernet Link\r\n");
schenk 0:1501dea8d383 57 while(1) //Wait link up
schenk 0:1501dea8d383 58 {
schenk 0:1501dea8d383 59 if(eth.link() == true)
schenk 0:1501dea8d383 60 break;
schenk 0:1501dea8d383 61 }
schenk 0:1501dea8d383 62 printf("Link up\r\n");
schenk 0:1501dea8d383 63
schenk 0:1501dea8d383 64 eth.connect();
schenk 0:1501dea8d383 65 printf("Server IP Address is %s\r\n", eth.getIPAddress());
schenk 0:1501dea8d383 66
schenk 0:1501dea8d383 67 if (!svr.start(80, &eth)) {
schenk 0:1501dea8d383 68
schenk 0:1501dea8d383 69 //error("Server not starting !");
schenk 0:1501dea8d383 70 exit(0);
schenk 0:1501dea8d383 71 }
schenk 0:1501dea8d383 72
schenk 0:1501dea8d383 73 while(1) {
schenk 0:1501dea8d383 74 svr.poll();
schenk 0:1501dea8d383 75 Rain_value = Rain.read(); // read the rain value
schenk 0:1501dea8d383 76 wait(0.2);
schenk 0:1501dea8d383 77 error = sensor.readData();
schenk 0:1501dea8d383 78 if (0 == error) {
schenk 0:1501dea8d383 79 c = sensor.ReadTemperature(CELCIUS);
schenk 0:1501dea8d383 80 h = sensor.ReadHumidity();
schenk 0:1501dea8d383 81 printf("===============Smart window================\n\r");
schenk 0:1501dea8d383 82 printf("Temperature in Celcius: %d\n",c);
schenk 0:1501dea8d383 83 printf("Humidity : %d\n", h);
schenk 0:1501dea8d383 84 printf("Rain value : %d\n", Rain_value);
schenk 0:1501dea8d383 85 printf("Mode : %d\n", mode);
schenk 0:1501dea8d383 86 printf("===========================================\n\r");
schenk 0:1501dea8d383 87
schenk 0:1501dea8d383 88 } else {
schenk 0:1501dea8d383 89 printf("Error: %d\n", error);
schenk 0:1501dea8d383 90 }
schenk 0:1501dea8d383 91
schenk 0:1501dea8d383 92
schenk 0:1501dea8d383 93 //////// open the window
schenk 0:1501dea8d383 94 if((c>27 || h>50) && (mode == 0&&Rain_value==1)){
schenk 0:1501dea8d383 95 // ((c>30 or h>50) and closed status)
schenk 0:1501dea8d383 96 DigitalOut(D9,0);
schenk 0:1501dea8d383 97 DigitalOut(D8,1);
schenk 0:1501dea8d383 98 wait(0.87);
schenk 0:1501dea8d383 99 DigitalOut(D9,0);
schenk 0:1501dea8d383 100 DigitalOut(D8,0);
schenk 0:1501dea8d383 101 mode = 1 ; // opened status
schenk 0:1501dea8d383 102
schenk 0:1501dea8d383 103 }
schenk 0:1501dea8d383 104 /////// close the window
schenk 0:1501dea8d383 105 else if((c<20 && h<40) || (mode == 1&&Rain_value==0)){ // ((c<20 and h<40) and opened status)
schenk 0:1501dea8d383 106 DigitalOut(D9,1);
schenk 0:1501dea8d383 107 DigitalOut(D8,0);
schenk 0:1501dea8d383 108 wait(0.8);
schenk 0:1501dea8d383 109 DigitalOut(D9,0);
schenk 0:1501dea8d383 110 DigitalOut(D8,0);
schenk 0:1501dea8d383 111 mode = 0; //closed status
schenk 0:1501dea8d383 112 }
schenk 0:1501dea8d383 113
schenk 0:1501dea8d383 114 wait(1);
schenk 0:1501dea8d383 115 }
schenk 0:1501dea8d383 116 }