final
Dependencies: KS0108 WIZnet_Library mbed
Fork of bigthingRec by
main.cpp@6:6744a42b8824, 2016-07-27 (annotated)
- Committer:
- rohangala
- Date:
- Wed Jul 27 08:31:49 2016 +0000
- Revision:
- 6:6744a42b8824
- Parent:
- 5:c0f61c21e78c
enjoy
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rohangala | 0:98be6bf27557 | 1 | #include "mbed.h" |
rohangala | 3:0ee289161a2a | 2 | #include "stdio.h" |
rohangala | 3:0ee289161a2a | 3 | #include "WIZnetInterface.h" |
rohangala | 3:0ee289161a2a | 4 | |
rohangala | 3:0ee289161a2a | 5 | unsigned char MAC_Addr[6] = {0x90,0x08,0xDC,0x12,0x07,0x07}; |
rohangala | 5:c0f61c21e78c | 6 | |
rohangala | 3:0ee289161a2a | 7 | char* Update_Key = "L055HRYFCBL1LTM2"; |
rohangala | 3:0ee289161a2a | 8 | char* ServerIP = "api.thingspeak.com"; |
rohangala | 3:0ee289161a2a | 9 | int Count = 15; |
rohangala | 3:0ee289161a2a | 10 | |
rohangala | 3:0ee289161a2a | 11 | SPI spi(PTD2,PTD3,PTD1); |
rohangala | 3:0ee289161a2a | 12 | WIZnetInterface ethernet(&spi,PTD0,PTA1); |
rohangala | 3:0ee289161a2a | 13 | |
rohangala | 0:98be6bf27557 | 14 | Serial pc(USBTX, USBRX); |
rohangala | 2:015a5a76bb82 | 15 | Serial micro(PTE0, PTE1); // tx, rx |
rohangala | 3:0ee289161a2a | 16 | |
rohangala | 0:98be6bf27557 | 17 | char buff[]={'\0'}; |
rohangala | 3:0ee289161a2a | 18 | |
rohangala | 2:015a5a76bb82 | 19 | AnalogIn ax(PTC1); |
rohangala | 4:a4ec8ea99d70 | 20 | AnalogIn ain(PTC2); |
rohangala | 2:015a5a76bb82 | 21 | |
rohangala | 5:c0f61c21e78c | 22 | |
rohangala | 5:c0f61c21e78c | 23 | BusOut SevSeg1(PTD4,PTA12,PTA4,PTA5); |
rohangala | 6:6744a42b8824 | 24 | BusOut SevSeg2(PTC8,PTC9,PTA13,PTD5); |
rohangala | 5:c0f61c21e78c | 25 | |
rohangala | 5:c0f61c21e78c | 26 | //DigitalOut toutb(PTA1); |
rohangala | 5:c0f61c21e78c | 27 | PwmOut ledout(LED1); |
rohangala | 5:c0f61c21e78c | 28 | |
rohangala | 2:015a5a76bb82 | 29 | float luxm(void) |
rohangala | 2:015a5a76bb82 | 30 | { |
rohangala | 5:c0f61c21e78c | 31 | float vr=0; |
rohangala | 5:c0f61c21e78c | 32 | float lr=0; |
rohangala | 5:c0f61c21e78c | 33 | float vol[14]={0,1.1,1.23,1.3,1.45,1.6,1.81,2.06,2.31,2.62,2.81,3.02,3.1,3.3}; |
rohangala | 5:c0f61c21e78c | 34 | float lux[14]={27000,20000,16000,11000,7000,4000,1500,833,578,201,104,40,23,0}; |
rohangala | 2:015a5a76bb82 | 35 | |
rohangala | 5:c0f61c21e78c | 36 | int i; |
rohangala | 5:c0f61c21e78c | 37 | float m=0; |
rohangala | 2:015a5a76bb82 | 38 | |
rohangala | 5:c0f61c21e78c | 39 | vr=ain*3.3; |
rohangala | 4:a4ec8ea99d70 | 40 | |
rohangala | 6:6744a42b8824 | 41 | for(i=0; vr> vol[i];i++); |
rohangala | 6:6744a42b8824 | 42 | m = ((lux[i]-lux[i-1])/(vol[i]-vol[i-1])); |
rohangala | 6:6744a42b8824 | 43 | lr=lux[i-1]+(m*(vr-(vol[i-1]))); |
rohangala | 4:a4ec8ea99d70 | 44 | |
rohangala | 5:c0f61c21e78c | 45 | return lr; |
rohangala | 2:015a5a76bb82 | 46 | } |
rohangala | 2:015a5a76bb82 | 47 | |
rohangala | 6:6744a42b8824 | 48 | |
rohangala | 6:6744a42b8824 | 49 | uint8_t val,val1; |
rohangala | 5:c0f61c21e78c | 50 | |
rohangala | 0:98be6bf27557 | 51 | int main() |
rohangala | 2:015a5a76bb82 | 52 | { |
rohangala | 3:0ee289161a2a | 53 | pc.printf("Start\r\n"); |
rohangala | 5:c0f61c21e78c | 54 | |
rohangala | 5:c0f61c21e78c | 55 | do |
rohangala | 5:c0f61c21e78c | 56 | { |
rohangala | 5:c0f61c21e78c | 57 | int ret = ethernet.init(MAC_Addr); |
rohangala | 3:0ee289161a2a | 58 | |
rohangala | 3:0ee289161a2a | 59 | if (!ret) |
rohangala | 3:0ee289161a2a | 60 | { |
rohangala | 3:0ee289161a2a | 61 | pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); |
rohangala | 3:0ee289161a2a | 62 | ret = ethernet.connect(); |
rohangala | 3:0ee289161a2a | 63 | if (!ret) |
rohangala | 3:0ee289161a2a | 64 | { |
rohangala | 3:0ee289161a2a | 65 | pc.printf("IP: %s, MASK: %s, GW: %s\r\n", |
rohangala | 3:0ee289161a2a | 66 | ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); |
rohangala | 5:c0f61c21e78c | 67 | val=0x00; |
rohangala | 3:0ee289161a2a | 68 | } |
rohangala | 3:0ee289161a2a | 69 | else |
rohangala | 3:0ee289161a2a | 70 | { |
rohangala | 3:0ee289161a2a | 71 | pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); |
rohangala | 3:0ee289161a2a | 72 | val=0xff; |
rohangala | 3:0ee289161a2a | 73 | } |
rohangala | 3:0ee289161a2a | 74 | |
rohangala | 3:0ee289161a2a | 75 | } |
rohangala | 3:0ee289161a2a | 76 | else |
rohangala | 3:0ee289161a2a | 77 | { |
rohangala | 3:0ee289161a2a | 78 | pc.printf("Error ethernet.init() - ret = %d\r\n", ret); |
rohangala | 3:0ee289161a2a | 79 | val=0xff;; |
rohangala | 5:c0f61c21e78c | 80 | } |
rohangala | 5:c0f61c21e78c | 81 | }while(val==0xff); |
rohangala | 5:c0f61c21e78c | 82 | |
rohangala | 5:c0f61c21e78c | 83 | TCPSocketConnection sock; |
rohangala | 5:c0f61c21e78c | 84 | do |
rohangala | 5:c0f61c21e78c | 85 | { |
rohangala | 3:0ee289161a2a | 86 | sock.connect("api.thingspeak.com", 80); |
rohangala | 3:0ee289161a2a | 87 | if(sock.is_connected()) |
rohangala | 5:c0f61c21e78c | 88 | { |
rohangala | 5:c0f61c21e78c | 89 | pc.printf("Socket Connected\n\r"); |
rohangala | 5:c0f61c21e78c | 90 | val=0x00; |
rohangala | 5:c0f61c21e78c | 91 | } |
rohangala | 3:0ee289161a2a | 92 | else |
rohangala | 5:c0f61c21e78c | 93 | { |
rohangala | 5:c0f61c21e78c | 94 | pc.printf("Socket NoT Connected\n\r"); |
rohangala | 5:c0f61c21e78c | 95 | val=0xff; |
rohangala | 5:c0f61c21e78c | 96 | } |
rohangala | 3:0ee289161a2a | 97 | |
rohangala | 5:c0f61c21e78c | 98 | }while(val==0xff); |
rohangala | 5:c0f61c21e78c | 99 | |
rohangala | 5:c0f61c21e78c | 100 | char buffer[300]; |
rohangala | 3:0ee289161a2a | 101 | int ret_t; |
rohangala | 3:0ee289161a2a | 102 | char http_cmd[256]; |
rohangala | 4:a4ec8ea99d70 | 103 | |
rohangala | 5:c0f61c21e78c | 104 | int i; |
rohangala | 5:c0f61c21e78c | 105 | int j=0; |
rohangala | 5:c0f61c21e78c | 106 | while(1) |
rohangala | 5:c0f61c21e78c | 107 | { |
rohangala | 6:6744a42b8824 | 108 | |
rohangala | 4:a4ec8ea99d70 | 109 | |
rohangala | 6:6744a42b8824 | 110 | do |
rohangala | 5:c0f61c21e78c | 111 | { |
rohangala | 6:6744a42b8824 | 112 | for(i=j;i<60;i++) |
rohangala | 5:c0f61c21e78c | 113 | { |
rohangala | 5:c0f61c21e78c | 114 | float l=ain; |
rohangala | 5:c0f61c21e78c | 115 | float t=ax; |
rohangala | 5:c0f61c21e78c | 116 | |
rohangala | 5:c0f61c21e78c | 117 | ledout=1.0-l; |
rohangala | 5:c0f61c21e78c | 118 | |
rohangala | 5:c0f61c21e78c | 119 | if(l>=0 && l<0.25) |
rohangala | 6:6744a42b8824 | 120 | SevSeg1 = 0x00; |
rohangala | 6:6744a42b8824 | 121 | else if (l>=0.25 && l<0.50) |
rohangala | 6:6744a42b8824 | 122 | SevSeg1 = 0x01 ; |
rohangala | 6:6744a42b8824 | 123 | else if (l>=0.50 && l<0.75) |
rohangala | 6:6744a42b8824 | 124 | SevSeg1 = 0x03; |
rohangala | 6:6744a42b8824 | 125 | else if (l>=0.75 && l<=1.0) |
rohangala | 5:c0f61c21e78c | 126 | SevSeg1 = 0x07; |
rohangala | 6:6744a42b8824 | 127 | |
rohangala | 6:6744a42b8824 | 128 | if(t<0.5050) |
rohangala | 6:6744a42b8824 | 129 | SevSeg2 = 0x00; |
rohangala | 6:6744a42b8824 | 130 | else if (t>=0.5050 && t<0.5070) |
rohangala | 6:6744a42b8824 | 131 | SevSeg2 = 0x01 ; |
rohangala | 6:6744a42b8824 | 132 | else if (t>=0.5070) |
rohangala | 6:6744a42b8824 | 133 | SevSeg2 = 0x03; |
rohangala | 6:6744a42b8824 | 134 | |
rohangala | 5:c0f61c21e78c | 135 | |
rohangala | 6:6744a42b8824 | 136 | |
rohangala | 5:c0f61c21e78c | 137 | if(micro.readable()) |
rohangala | 5:c0f61c21e78c | 138 | { |
rohangala | 5:c0f61c21e78c | 139 | val=(micro.getc()); |
rohangala | 5:c0f61c21e78c | 140 | j=i; |
rohangala | 5:c0f61c21e78c | 141 | i=25; |
rohangala | 5:c0f61c21e78c | 142 | } |
rohangala | 5:c0f61c21e78c | 143 | |
rohangala | 5:c0f61c21e78c | 144 | else |
rohangala | 5:c0f61c21e78c | 145 | wait(1); |
rohangala | 5:c0f61c21e78c | 146 | } |
rohangala | 3:0ee289161a2a | 147 | |
rohangala | 6:6744a42b8824 | 148 | TCPSocketConnection sock; |
rohangala | 6:6744a42b8824 | 149 | do |
rohangala | 6:6744a42b8824 | 150 | { |
rohangala | 6:6744a42b8824 | 151 | sock.connect("api.thingspeak.com", 80); |
rohangala | 6:6744a42b8824 | 152 | if(sock.is_connected()) |
rohangala | 6:6744a42b8824 | 153 | { |
rohangala | 6:6744a42b8824 | 154 | pc.printf("Socket Connected\n\r"); |
rohangala | 6:6744a42b8824 | 155 | val1=0x00; |
rohangala | 6:6744a42b8824 | 156 | } |
rohangala | 6:6744a42b8824 | 157 | else |
rohangala | 6:6744a42b8824 | 158 | { |
rohangala | 6:6744a42b8824 | 159 | pc.printf("Socket NoT Connected\n\r"); |
rohangala | 6:6744a42b8824 | 160 | val1=0xff; |
rohangala | 6:6744a42b8824 | 161 | } |
rohangala | 6:6744a42b8824 | 162 | |
rohangala | 6:6744a42b8824 | 163 | }while(val1==0xff); |
rohangala | 6:6744a42b8824 | 164 | |
rohangala | 5:c0f61c21e78c | 165 | if(val == 0x00) |
rohangala | 5:c0f61c21e78c | 166 | { |
rohangala | 5:c0f61c21e78c | 167 | pc.printf("%.2f ",luxm()); |
rohangala | 5:c0f61c21e78c | 168 | |
rohangala | 5:c0f61c21e78c | 169 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field1= %.2f HTTP/1.0\n\n",luxm()); |
rohangala | 5:c0f61c21e78c | 170 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 171 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 172 | |
rohangala | 5:c0f61c21e78c | 173 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 174 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 175 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 0:98be6bf27557 | 176 | |
rohangala | 5:c0f61c21e78c | 177 | |
rohangala | 6:6744a42b8824 | 178 | pc.printf("%.2f ",ax*3.3*17); |
rohangala | 3:0ee289161a2a | 179 | |
rohangala | 6:6744a42b8824 | 180 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field2= %.4f HTTP/1.0\n\n",ax*3.3*17/2); |
rohangala | 5:c0f61c21e78c | 181 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 182 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 183 | |
rohangala | 5:c0f61c21e78c | 184 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 185 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 186 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 187 | val=0x00; |
rohangala | 5:c0f61c21e78c | 188 | j=0; |
rohangala | 5:c0f61c21e78c | 189 | } |
rohangala | 5:c0f61c21e78c | 190 | else if(val == 0x01) |
rohangala | 5:c0f61c21e78c | 191 | { |
rohangala | 5:c0f61c21e78c | 192 | pc.printf("%.2f ",luxm()); |
rohangala | 5:c0f61c21e78c | 193 | |
rohangala | 5:c0f61c21e78c | 194 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field1= %.2f HTTP/1.0\n\n",luxm()); |
rohangala | 5:c0f61c21e78c | 195 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 196 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 3:0ee289161a2a | 197 | |
rohangala | 5:c0f61c21e78c | 198 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 199 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 200 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 201 | val=0x00; |
rohangala | 5:c0f61c21e78c | 202 | } |
rohangala | 5:c0f61c21e78c | 203 | |
rohangala | 5:c0f61c21e78c | 204 | else if(val == 0x02) |
rohangala | 5:c0f61c21e78c | 205 | { |
rohangala | 6:6744a42b8824 | 206 | pc.printf("%.2f ",ax*3.3*17); |
rohangala | 5:c0f61c21e78c | 207 | |
rohangala | 6:6744a42b8824 | 208 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field2= %.4f HTTP/1.0\n\n",ax*3.3*17/2); |
rohangala | 5:c0f61c21e78c | 209 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 210 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 211 | |
rohangala | 5:c0f61c21e78c | 212 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 213 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 214 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 215 | val=0x00; |
rohangala | 5:c0f61c21e78c | 216 | } |
rohangala | 6:6744a42b8824 | 217 | }while(val==0x00); |
rohangala | 5:c0f61c21e78c | 218 | |
rohangala | 5:c0f61c21e78c | 219 | } |
rohangala | 5:c0f61c21e78c | 220 | |
rohangala | 5:c0f61c21e78c | 221 | //sock.close(); |
rohangala | 5:c0f61c21e78c | 222 | |
rohangala | 5:c0f61c21e78c | 223 | //ethernet.disconnect(); |
rohangala | 5:c0f61c21e78c | 224 | //printf("Socket Closed"); |
rohangala | 5:c0f61c21e78c | 225 | } |
rohangala | 0:98be6bf27557 | 226 | |
rohangala | 5:c0f61c21e78c | 227 | // float x=ain; |
rohangala | 5:c0f61c21e78c | 228 | //led=x; |