final
Dependencies: KS0108 WIZnet_Library mbed
Fork of bigthingRec by
main.cpp@5:c0f61c21e78c, 2016-05-20 (annotated)
- Committer:
- rohangala
- Date:
- Fri May 20 18:30:52 2016 +0000
- Revision:
- 5:c0f61c21e78c
- Parent:
- 4:a4ec8ea99d70
- Child:
- 6:6744a42b8824
final with hourly update
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 | 5:c0f61c21e78c | 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 | 5:c0f61c21e78c | 41 | for(i=0; vr>= vol[i];i++); |
rohangala | 5:c0f61c21e78c | 42 | m = ((lux[i]-lux[i+1])/(vol[i]-vol[i+1])); |
rohangala | 5:c0f61c21e78c | 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 | 1:630aef63181c | 48 | uint8_t val; |
rohangala | 5:c0f61c21e78c | 49 | |
rohangala | 0:98be6bf27557 | 50 | int main() |
rohangala | 2:015a5a76bb82 | 51 | { |
rohangala | 3:0ee289161a2a | 52 | pc.printf("Start\r\n"); |
rohangala | 5:c0f61c21e78c | 53 | |
rohangala | 5:c0f61c21e78c | 54 | do |
rohangala | 5:c0f61c21e78c | 55 | { |
rohangala | 5:c0f61c21e78c | 56 | int ret = ethernet.init(MAC_Addr); |
rohangala | 3:0ee289161a2a | 57 | |
rohangala | 3:0ee289161a2a | 58 | if (!ret) |
rohangala | 3:0ee289161a2a | 59 | { |
rohangala | 3:0ee289161a2a | 60 | pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); |
rohangala | 3:0ee289161a2a | 61 | ret = ethernet.connect(); |
rohangala | 3:0ee289161a2a | 62 | if (!ret) |
rohangala | 3:0ee289161a2a | 63 | { |
rohangala | 3:0ee289161a2a | 64 | pc.printf("IP: %s, MASK: %s, GW: %s\r\n", |
rohangala | 3:0ee289161a2a | 65 | ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); |
rohangala | 5:c0f61c21e78c | 66 | val=0x00; |
rohangala | 3:0ee289161a2a | 67 | } |
rohangala | 3:0ee289161a2a | 68 | else |
rohangala | 3:0ee289161a2a | 69 | { |
rohangala | 3:0ee289161a2a | 70 | pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); |
rohangala | 3:0ee289161a2a | 71 | val=0xff; |
rohangala | 3:0ee289161a2a | 72 | } |
rohangala | 3:0ee289161a2a | 73 | |
rohangala | 3:0ee289161a2a | 74 | } |
rohangala | 3:0ee289161a2a | 75 | else |
rohangala | 3:0ee289161a2a | 76 | { |
rohangala | 3:0ee289161a2a | 77 | pc.printf("Error ethernet.init() - ret = %d\r\n", ret); |
rohangala | 3:0ee289161a2a | 78 | val=0xff;; |
rohangala | 5:c0f61c21e78c | 79 | } |
rohangala | 5:c0f61c21e78c | 80 | }while(val==0xff); |
rohangala | 5:c0f61c21e78c | 81 | |
rohangala | 5:c0f61c21e78c | 82 | TCPSocketConnection sock; |
rohangala | 5:c0f61c21e78c | 83 | do |
rohangala | 5:c0f61c21e78c | 84 | { |
rohangala | 3:0ee289161a2a | 85 | sock.connect("api.thingspeak.com", 80); |
rohangala | 3:0ee289161a2a | 86 | if(sock.is_connected()) |
rohangala | 5:c0f61c21e78c | 87 | { |
rohangala | 5:c0f61c21e78c | 88 | pc.printf("Socket Connected\n\r"); |
rohangala | 5:c0f61c21e78c | 89 | val=0x00; |
rohangala | 5:c0f61c21e78c | 90 | } |
rohangala | 3:0ee289161a2a | 91 | else |
rohangala | 5:c0f61c21e78c | 92 | { |
rohangala | 5:c0f61c21e78c | 93 | pc.printf("Socket NoT Connected\n\r"); |
rohangala | 5:c0f61c21e78c | 94 | val=0xff; |
rohangala | 5:c0f61c21e78c | 95 | } |
rohangala | 3:0ee289161a2a | 96 | |
rohangala | 5:c0f61c21e78c | 97 | }while(val==0xff); |
rohangala | 5:c0f61c21e78c | 98 | |
rohangala | 5:c0f61c21e78c | 99 | char buffer[300]; |
rohangala | 3:0ee289161a2a | 100 | int ret_t; |
rohangala | 3:0ee289161a2a | 101 | char http_cmd[256]; |
rohangala | 4:a4ec8ea99d70 | 102 | |
rohangala | 5:c0f61c21e78c | 103 | int i; |
rohangala | 5:c0f61c21e78c | 104 | int j=0; |
rohangala | 5:c0f61c21e78c | 105 | while(1) |
rohangala | 5:c0f61c21e78c | 106 | { |
rohangala | 4:a4ec8ea99d70 | 107 | |
rohangala | 4:a4ec8ea99d70 | 108 | |
rohangala | 5:c0f61c21e78c | 109 | while(val==0x00) |
rohangala | 5:c0f61c21e78c | 110 | { |
rohangala | 5:c0f61c21e78c | 111 | for(i=j;i<20;i++) |
rohangala | 5:c0f61c21e78c | 112 | { |
rohangala | 5:c0f61c21e78c | 113 | float l=ain; |
rohangala | 5:c0f61c21e78c | 114 | float t=ax; |
rohangala | 5:c0f61c21e78c | 115 | |
rohangala | 5:c0f61c21e78c | 116 | ledout=1.0-l; |
rohangala | 5:c0f61c21e78c | 117 | |
rohangala | 5:c0f61c21e78c | 118 | if(l>=0 && l<0.25) |
rohangala | 5:c0f61c21e78c | 119 | SevSeg1 = 0x01; |
rohangala | 5:c0f61c21e78c | 120 | else if (l>=0.25 && l<0.5) |
rohangala | 5:c0f61c21e78c | 121 | SevSeg1 = 0x03 ; |
rohangala | 5:c0f61c21e78c | 122 | else if (l>=0.5 && l<0.75) |
rohangala | 5:c0f61c21e78c | 123 | SevSeg1 = 0x07; |
rohangala | 5:c0f61c21e78c | 124 | else if (l>=0.75 && l<=1.0) |
rohangala | 5:c0f61c21e78c | 125 | SevSeg1 = 0x00; |
rohangala | 5:c0f61c21e78c | 126 | |
rohangala | 5:c0f61c21e78c | 127 | if(micro.readable()) |
rohangala | 5:c0f61c21e78c | 128 | { |
rohangala | 5:c0f61c21e78c | 129 | val=(micro.getc()); |
rohangala | 5:c0f61c21e78c | 130 | j=i; |
rohangala | 5:c0f61c21e78c | 131 | i=25; |
rohangala | 5:c0f61c21e78c | 132 | } |
rohangala | 5:c0f61c21e78c | 133 | |
rohangala | 5:c0f61c21e78c | 134 | else |
rohangala | 5:c0f61c21e78c | 135 | wait(1); |
rohangala | 5:c0f61c21e78c | 136 | } |
rohangala | 3:0ee289161a2a | 137 | |
rohangala | 3:0ee289161a2a | 138 | |
rohangala | 5:c0f61c21e78c | 139 | if(val == 0x00) |
rohangala | 5:c0f61c21e78c | 140 | { |
rohangala | 5:c0f61c21e78c | 141 | pc.printf("%.2f ",luxm()); |
rohangala | 5:c0f61c21e78c | 142 | |
rohangala | 5:c0f61c21e78c | 143 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field1= %.2f HTTP/1.0\n\n",luxm()); |
rohangala | 5:c0f61c21e78c | 144 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 145 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 146 | |
rohangala | 5:c0f61c21e78c | 147 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 148 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 149 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 0:98be6bf27557 | 150 | |
rohangala | 5:c0f61c21e78c | 151 | |
rohangala | 5:c0f61c21e78c | 152 | pc.printf("%.2f ",ax*3.3); |
rohangala | 3:0ee289161a2a | 153 | |
rohangala | 5:c0f61c21e78c | 154 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field2= %.2f HTTP/1.0\n\n",ax*3.3*17); |
rohangala | 5:c0f61c21e78c | 155 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 156 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 157 | |
rohangala | 5:c0f61c21e78c | 158 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 159 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 160 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 161 | val=0x00; |
rohangala | 5:c0f61c21e78c | 162 | j=0; |
rohangala | 5:c0f61c21e78c | 163 | } |
rohangala | 5:c0f61c21e78c | 164 | else if(val == 0x01) |
rohangala | 5:c0f61c21e78c | 165 | { |
rohangala | 5:c0f61c21e78c | 166 | pc.printf("%.2f ",luxm()); |
rohangala | 5:c0f61c21e78c | 167 | |
rohangala | 5:c0f61c21e78c | 168 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field1= %.2f HTTP/1.0\n\n",luxm()); |
rohangala | 5:c0f61c21e78c | 169 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 170 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 3:0ee289161a2a | 171 | |
rohangala | 5:c0f61c21e78c | 172 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 173 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 174 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 175 | val=0x00; |
rohangala | 5:c0f61c21e78c | 176 | } |
rohangala | 5:c0f61c21e78c | 177 | |
rohangala | 5:c0f61c21e78c | 178 | else if(val == 0x02) |
rohangala | 5:c0f61c21e78c | 179 | { |
rohangala | 5:c0f61c21e78c | 180 | pc.printf("%.2f ",ax*3.3); |
rohangala | 5:c0f61c21e78c | 181 | |
rohangala | 5:c0f61c21e78c | 182 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field2= %.2f HTTP/1.0\n\n",ax*3.3*17); |
rohangala | 5:c0f61c21e78c | 183 | printf("Running - %s\r\n",http_cmd); |
rohangala | 5:c0f61c21e78c | 184 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 5:c0f61c21e78c | 185 | |
rohangala | 5:c0f61c21e78c | 186 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 5:c0f61c21e78c | 187 | buffer[ret_t] = '\0'; |
rohangala | 5:c0f61c21e78c | 188 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 5:c0f61c21e78c | 189 | val=0x00; |
rohangala | 5:c0f61c21e78c | 190 | } |
rohangala | 1:630aef63181c | 191 | } |
rohangala | 5:c0f61c21e78c | 192 | |
rohangala | 5:c0f61c21e78c | 193 | } |
rohangala | 5:c0f61c21e78c | 194 | |
rohangala | 5:c0f61c21e78c | 195 | //sock.close(); |
rohangala | 5:c0f61c21e78c | 196 | |
rohangala | 5:c0f61c21e78c | 197 | //ethernet.disconnect(); |
rohangala | 5:c0f61c21e78c | 198 | //printf("Socket Closed"); |
rohangala | 5:c0f61c21e78c | 199 | } |
rohangala | 0:98be6bf27557 | 200 | |
rohangala | 5:c0f61c21e78c | 201 | // float x=ain; |
rohangala | 5:c0f61c21e78c | 202 | //led=x; |