Use to WIZwiki-W7500, Sensing to CDS and PIR, Control to LED

Dependencies:   WIZnetInterface mbed

Committer:
nanjsk
Date:
Mon Jun 29 13:00:43 2015 +0000
Revision:
0:bc66d31a6df1
1st

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nanjsk 0:bc66d31a6df1 1 #include "mbed.h"
nanjsk 0:bc66d31a6df1 2 #include "EthernetInterface.h"
nanjsk 0:bc66d31a6df1 3
nanjsk 0:bc66d31a6df1 4 #define USE_DHCP 0
nanjsk 0:bc66d31a6df1 5
nanjsk 0:bc66d31a6df1 6 #define PORT 5000
nanjsk 0:bc66d31a6df1 7
nanjsk 0:bc66d31a6df1 8 const char * IP_Addr = "192.168.11.194";
nanjsk 0:bc66d31a6df1 9 const char * IP_Subnet = "255.255.255.0";
nanjsk 0:bc66d31a6df1 10 const char * IP_Gateway = "192.168.11.1";
nanjsk 0:bc66d31a6df1 11 const char * Target_IP = "192.168.11.227";
nanjsk 0:bc66d31a6df1 12 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
nanjsk 0:bc66d31a6df1 13
nanjsk 0:bc66d31a6df1 14
nanjsk 0:bc66d31a6df1 15 Serial pc(USBTX, USBRX);
nanjsk 0:bc66d31a6df1 16
nanjsk 0:bc66d31a6df1 17 DigitalOut ledR0(LED_RED);
nanjsk 0:bc66d31a6df1 18 DigitalOut ledG0(LED_GREEN);
nanjsk 0:bc66d31a6df1 19 //DigitalOut ledB0(LED_BLUE);
nanjsk 0:bc66d31a6df1 20
nanjsk 0:bc66d31a6df1 21 DigitalOut led0(D5);
nanjsk 0:bc66d31a6df1 22 DigitalOut led1(D6);
nanjsk 0:bc66d31a6df1 23
nanjsk 0:bc66d31a6df1 24 DigitalIn PIR(D8);
nanjsk 0:bc66d31a6df1 25 AnalogIn CDS(A0);
nanjsk 0:bc66d31a6df1 26
nanjsk 0:bc66d31a6df1 27 #define PLED_ON led0 = led1 = 1
nanjsk 0:bc66d31a6df1 28 #define PLED_OFF led0 = led1 = 0
nanjsk 0:bc66d31a6df1 29
nanjsk 0:bc66d31a6df1 30 int CDS_data;
nanjsk 0:bc66d31a6df1 31 int PIR_sensor;
nanjsk 0:bc66d31a6df1 32
nanjsk 0:bc66d31a6df1 33 int CDS_check()
nanjsk 0:bc66d31a6df1 34 {
nanjsk 0:bc66d31a6df1 35 CDS_data = CDS.read()*1000;
nanjsk 0:bc66d31a6df1 36 return CDS_data;
nanjsk 0:bc66d31a6df1 37 }
nanjsk 0:bc66d31a6df1 38
nanjsk 0:bc66d31a6df1 39 int PIR_check()
nanjsk 0:bc66d31a6df1 40 {
nanjsk 0:bc66d31a6df1 41 PIR_sensor = PIR;
nanjsk 0:bc66d31a6df1 42 return PIR_sensor;
nanjsk 0:bc66d31a6df1 43 }
nanjsk 0:bc66d31a6df1 44
nanjsk 0:bc66d31a6df1 45 int main() {
nanjsk 0:bc66d31a6df1 46 ledR0 = ledG0 = 1;
nanjsk 0:bc66d31a6df1 47 PLED_OFF;
nanjsk 0:bc66d31a6df1 48
nanjsk 0:bc66d31a6df1 49 unsigned char flag = 1;
nanjsk 0:bc66d31a6df1 50 int csd_int = 2;
nanjsk 0:bc66d31a6df1 51 int pir_int0 = 2;
nanjsk 0:bc66d31a6df1 52 int pir_int1 = 2;
nanjsk 0:bc66d31a6df1 53 int pir_status = 0;
nanjsk 0:bc66d31a6df1 54
nanjsk 0:bc66d31a6df1 55 pc.baud(115200);
nanjsk 0:bc66d31a6df1 56 wait(0.5f);
nanjsk 0:bc66d31a6df1 57 pc.printf("Hello WIZwiki-W7500!\n\r");
nanjsk 0:bc66d31a6df1 58 pc.printf("===========================================\n\r");
nanjsk 0:bc66d31a6df1 59
nanjsk 0:bc66d31a6df1 60 EthernetInterface eth;
nanjsk 0:bc66d31a6df1 61 #if USE_DHCP
nanjsk 0:bc66d31a6df1 62 int ret = eth.init(MAC_Addr);
nanjsk 0:bc66d31a6df1 63 #else
nanjsk 0:bc66d31a6df1 64 int ret = eth.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
nanjsk 0:bc66d31a6df1 65 #endif
nanjsk 0:bc66d31a6df1 66 TCPSocketConnection client;
nanjsk 0:bc66d31a6df1 67
nanjsk 0:bc66d31a6df1 68 //eth.link(3000);
nanjsk 0:bc66d31a6df1 69 wait(5);
nanjsk 0:bc66d31a6df1 70 pc.printf("Connecting......wait 5sec \r\n");
nanjsk 0:bc66d31a6df1 71 if (!ret) {
nanjsk 0:bc66d31a6df1 72 pc.printf("Initialized, \r\nMAC: %s\r\n", eth.getMACAddress());
nanjsk 0:bc66d31a6df1 73 ret = eth.connect();
nanjsk 0:bc66d31a6df1 74 if (!ret) {
nanjsk 0:bc66d31a6df1 75 pc.printf("IP: %s \r\nMASK: %s \r\nGW: %s\r\n",
nanjsk 0:bc66d31a6df1 76 eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
nanjsk 0:bc66d31a6df1 77 } else {
nanjsk 0:bc66d31a6df1 78 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
nanjsk 0:bc66d31a6df1 79 exit(0);
nanjsk 0:bc66d31a6df1 80 }
nanjsk 0:bc66d31a6df1 81 } else {
nanjsk 0:bc66d31a6df1 82 pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
nanjsk 0:bc66d31a6df1 83 exit(0);
nanjsk 0:bc66d31a6df1 84 }
nanjsk 0:bc66d31a6df1 85
nanjsk 0:bc66d31a6df1 86 client.connect(Target_IP,5000);
nanjsk 0:bc66d31a6df1 87
nanjsk 0:bc66d31a6df1 88 if(client.is_connected() == 1){
nanjsk 0:bc66d31a6df1 89 pc.printf("Connected success : %s\r\n", client.get_address());
nanjsk 0:bc66d31a6df1 90 client.send("Hello server!\r\n", 15);
nanjsk 0:bc66d31a6df1 91 PLED_ON;
nanjsk 0:bc66d31a6df1 92 wait(0.2f);
nanjsk 0:bc66d31a6df1 93 PLED_OFF;
nanjsk 0:bc66d31a6df1 94 wait(0.2f);
nanjsk 0:bc66d31a6df1 95 PLED_ON;
nanjsk 0:bc66d31a6df1 96 wait(0.2f);
nanjsk 0:bc66d31a6df1 97 PLED_OFF;
nanjsk 0:bc66d31a6df1 98 }
nanjsk 0:bc66d31a6df1 99 else {
nanjsk 0:bc66d31a6df1 100 pc.printf("Connected fail : %s\r\n", client.get_address());
nanjsk 0:bc66d31a6df1 101 PLED_ON;
nanjsk 0:bc66d31a6df1 102 wait(0.4f);
nanjsk 0:bc66d31a6df1 103 PLED_OFF;
nanjsk 0:bc66d31a6df1 104 }
nanjsk 0:bc66d31a6df1 105
nanjsk 0:bc66d31a6df1 106 while (1) {
nanjsk 0:bc66d31a6df1 107 Timer t;
nanjsk 0:bc66d31a6df1 108 if(CDS_check() > 600){
nanjsk 0:bc66d31a6df1 109 if(csd_int != 0){
nanjsk 0:bc66d31a6df1 110 pc.printf("Now is dark.\r\n");
nanjsk 0:bc66d31a6df1 111 client.send("Now is dark.\r\n", 14);
nanjsk 0:bc66d31a6df1 112 csd_int = 0;
nanjsk 0:bc66d31a6df1 113 }
nanjsk 0:bc66d31a6df1 114 ledG0 = 0;
nanjsk 0:bc66d31a6df1 115 flag = 1;
nanjsk 0:bc66d31a6df1 116 while(flag){
nanjsk 0:bc66d31a6df1 117 if(PIR_check()){
nanjsk 0:bc66d31a6df1 118 if(pir_int0 != 0){
nanjsk 0:bc66d31a6df1 119 pc.printf("The movement is detected.\r\n");
nanjsk 0:bc66d31a6df1 120 pc.printf("Power LED is turned on.\r\n");
nanjsk 0:bc66d31a6df1 121 client.send("The movement is detected.\r\n", 27);
nanjsk 0:bc66d31a6df1 122 client.send("Power LED is turned on.\r\n", 25);
nanjsk 0:bc66d31a6df1 123 pir_int0 = 0;
nanjsk 0:bc66d31a6df1 124 }
nanjsk 0:bc66d31a6df1 125 t.stop();
nanjsk 0:bc66d31a6df1 126 t.reset();
nanjsk 0:bc66d31a6df1 127 t.start();
nanjsk 0:bc66d31a6df1 128 pir_status = 1;
nanjsk 0:bc66d31a6df1 129 ledR0 = 0;
nanjsk 0:bc66d31a6df1 130 PLED_ON;
nanjsk 0:bc66d31a6df1 131 }
nanjsk 0:bc66d31a6df1 132 if(pir_status == 0) {
nanjsk 0:bc66d31a6df1 133 flag = 0;
nanjsk 0:bc66d31a6df1 134 }
nanjsk 0:bc66d31a6df1 135 if(t.read_ms() > 5000 && pir_status == 1){
nanjsk 0:bc66d31a6df1 136 if(pir_int0 != 1){
nanjsk 0:bc66d31a6df1 137 pc.printf("The movement is not detected.\r\n");
nanjsk 0:bc66d31a6df1 138 pc.printf("Power LED is turned off.\r\n");
nanjsk 0:bc66d31a6df1 139 client.send("The movement is not detected.\r\n", 31);
nanjsk 0:bc66d31a6df1 140 client.send("Power LED is turned off.\r\n", 26);
nanjsk 0:bc66d31a6df1 141 pir_int0 = 1;
nanjsk 0:bc66d31a6df1 142 }
nanjsk 0:bc66d31a6df1 143 t.stop();
nanjsk 0:bc66d31a6df1 144 t.reset();
nanjsk 0:bc66d31a6df1 145 pir_status = 0;
nanjsk 0:bc66d31a6df1 146 ledR0 = 1;
nanjsk 0:bc66d31a6df1 147 PLED_OFF;
nanjsk 0:bc66d31a6df1 148 flag = 0;
nanjsk 0:bc66d31a6df1 149 wait(0.1f);
nanjsk 0:bc66d31a6df1 150 }
nanjsk 0:bc66d31a6df1 151 }
nanjsk 0:bc66d31a6df1 152 }
nanjsk 0:bc66d31a6df1 153 else{
nanjsk 0:bc66d31a6df1 154 if(csd_int != 1){
nanjsk 0:bc66d31a6df1 155 pc.printf("Now is brighter.\r\n");
nanjsk 0:bc66d31a6df1 156 client.send("Now is brighter.\r\n", 18);
nanjsk 0:bc66d31a6df1 157 csd_int = 1;
nanjsk 0:bc66d31a6df1 158 }
nanjsk 0:bc66d31a6df1 159
nanjsk 0:bc66d31a6df1 160 ledG0 = 1;
nanjsk 0:bc66d31a6df1 161 if(PIR_check()){
nanjsk 0:bc66d31a6df1 162 if(pir_int1 != 0){
nanjsk 0:bc66d31a6df1 163 pc.printf("The movement is detected.\r\n");
nanjsk 0:bc66d31a6df1 164 client.send("The movement is detected.\r\n", 27);
nanjsk 0:bc66d31a6df1 165 pir_int1 = 0;
nanjsk 0:bc66d31a6df1 166 }
nanjsk 0:bc66d31a6df1 167 ledR0 = 0;
nanjsk 0:bc66d31a6df1 168 }
nanjsk 0:bc66d31a6df1 169 else{
nanjsk 0:bc66d31a6df1 170 if(pir_int1 != 1){
nanjsk 0:bc66d31a6df1 171 pc.printf("The movement is not detected.\r\n");
nanjsk 0:bc66d31a6df1 172 client.send("The movement is not detected.\r\n", 31);
nanjsk 0:bc66d31a6df1 173 pir_int1 = 1;
nanjsk 0:bc66d31a6df1 174 }
nanjsk 0:bc66d31a6df1 175 ledR0 = 1;
nanjsk 0:bc66d31a6df1 176 }
nanjsk 0:bc66d31a6df1 177 }
nanjsk 0:bc66d31a6df1 178 }
nanjsk 0:bc66d31a6df1 179 }