final
Dependencies: KS0108 WIZnet_Library mbed
Fork of bigthingRec by
main.cpp@4:a4ec8ea99d70, 2016-05-12 (annotated)
- Committer:
- rohangala
- Date:
- Thu May 12 06:22:14 2016 +0000
- Revision:
- 4:a4ec8ea99d70
- Parent:
- 3:0ee289161a2a
- Child:
- 5:c0f61c21e78c
big thing rec final withoout led display;
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 | 4:a4ec8ea99d70 | 6 | PwmOut led(PTA12); |
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 | 2:015a5a76bb82 | 22 | float luxm(void) |
rohangala | 2:015a5a76bb82 | 23 | { |
rohangala | 4:a4ec8ea99d70 | 24 | |
rohangala | 2:015a5a76bb82 | 25 | |
rohangala | 3:0ee289161a2a | 26 | float vr=0; |
rohangala | 4:a4ec8ea99d70 | 27 | float lr=0; |
rohangala | 4:a4ec8ea99d70 | 28 | float vol[13]={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}; |
rohangala | 4:a4ec8ea99d70 | 29 | float lux[13]={27000,20000,16000,11000,7000,4000,1500,833,578,201,104,40,23}; |
rohangala | 2:015a5a76bb82 | 30 | |
rohangala | 2:015a5a76bb82 | 31 | int i; |
rohangala | 2:015a5a76bb82 | 32 | float m=0; |
rohangala | 4:a4ec8ea99d70 | 33 | |
rohangala | 2:015a5a76bb82 | 34 | vr=ain*3.3; |
rohangala | 4:a4ec8ea99d70 | 35 | |
rohangala | 2:015a5a76bb82 | 36 | for(i=0; vr> vol[i];i++); |
rohangala | 2:015a5a76bb82 | 37 | m = ((lux[i]-lux[i+1])/(vol[i]-vol[i+1])); |
rohangala | 2:015a5a76bb82 | 38 | lr=lux[i+1]+(m*(vr-(vol[i+1]))); |
rohangala | 4:a4ec8ea99d70 | 39 | |
rohangala | 4:a4ec8ea99d70 | 40 | return lr; |
rohangala | 2:015a5a76bb82 | 41 | } |
rohangala | 2:015a5a76bb82 | 42 | |
rohangala | 1:630aef63181c | 43 | uint8_t val; |
rohangala | 0:98be6bf27557 | 44 | |
rohangala | 0:98be6bf27557 | 45 | int main() |
rohangala | 2:015a5a76bb82 | 46 | { |
rohangala | 0:98be6bf27557 | 47 | while(1) |
rohangala | 0:98be6bf27557 | 48 | { |
rohangala | 3:0ee289161a2a | 49 | pc.printf("Start\r\n"); |
rohangala | 3:0ee289161a2a | 50 | val=0x00; |
rohangala | 3:0ee289161a2a | 51 | int ret = ethernet.init(MAC_Addr); |
rohangala | 3:0ee289161a2a | 52 | |
rohangala | 3:0ee289161a2a | 53 | if (!ret) |
rohangala | 3:0ee289161a2a | 54 | { |
rohangala | 3:0ee289161a2a | 55 | pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); |
rohangala | 3:0ee289161a2a | 56 | ret = ethernet.connect(); |
rohangala | 3:0ee289161a2a | 57 | if (!ret) |
rohangala | 3:0ee289161a2a | 58 | { |
rohangala | 3:0ee289161a2a | 59 | pc.printf("IP: %s, MASK: %s, GW: %s\r\n", |
rohangala | 3:0ee289161a2a | 60 | ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); |
rohangala | 3:0ee289161a2a | 61 | } |
rohangala | 3:0ee289161a2a | 62 | else |
rohangala | 3:0ee289161a2a | 63 | { |
rohangala | 3:0ee289161a2a | 64 | pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); |
rohangala | 3:0ee289161a2a | 65 | val=0xff; |
rohangala | 3:0ee289161a2a | 66 | } |
rohangala | 3:0ee289161a2a | 67 | |
rohangala | 3:0ee289161a2a | 68 | } |
rohangala | 3:0ee289161a2a | 69 | else |
rohangala | 3:0ee289161a2a | 70 | { |
rohangala | 3:0ee289161a2a | 71 | pc.printf("Error ethernet.init() - 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 | TCPSocketConnection sock; |
rohangala | 3:0ee289161a2a | 77 | sock.connect("api.thingspeak.com", 80); |
rohangala | 3:0ee289161a2a | 78 | if(sock.is_connected()) |
rohangala | 3:0ee289161a2a | 79 | pc.printf("Socket Connected\n\r"); |
rohangala | 3:0ee289161a2a | 80 | else |
rohangala | 3:0ee289161a2a | 81 | pc.printf("Socket NoT Connected\n\r"); |
rohangala | 3:0ee289161a2a | 82 | |
rohangala | 3:0ee289161a2a | 83 | |
rohangala | 3:0ee289161a2a | 84 | |
rohangala | 3:0ee289161a2a | 85 | char buffer[300]; |
rohangala | 3:0ee289161a2a | 86 | int ret_t; |
rohangala | 3:0ee289161a2a | 87 | char http_cmd[256]; |
rohangala | 4:a4ec8ea99d70 | 88 | |
rohangala | 4:a4ec8ea99d70 | 89 | int l=luxm(); |
rohangala | 4:a4ec8ea99d70 | 90 | |
rohangala | 4:a4ec8ea99d70 | 91 | |
rohangala | 4:a4ec8ea99d70 | 92 | |
rohangala | 4:a4ec8ea99d70 | 93 | |
rohangala | 3:0ee289161a2a | 94 | while(val==0x00) |
rohangala | 3:0ee289161a2a | 95 | { |
rohangala | 4:a4ec8ea99d70 | 96 | float x=ain; |
rohangala | 4:a4ec8ea99d70 | 97 | led=x; |
rohangala | 4:a4ec8ea99d70 | 98 | |
rohangala | 0:98be6bf27557 | 99 | if(micro.readable()) |
rohangala | 0:98be6bf27557 | 100 | { |
rohangala | 1:630aef63181c | 101 | val=(micro.getc()); |
rohangala | 3:0ee289161a2a | 102 | if(val == 0x01) |
rohangala | 4:a4ec8ea99d70 | 103 | { |
rohangala | 4:a4ec8ea99d70 | 104 | |
rohangala | 4:a4ec8ea99d70 | 105 | pc.printf("%.2f ",l); |
rohangala | 4:a4ec8ea99d70 | 106 | |
rohangala | 3:0ee289161a2a | 107 | |
rohangala | 3:0ee289161a2a | 108 | |
rohangala | 3:0ee289161a2a | 109 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field1= %.2f HTTP/1.0\n\n",luxm()); |
rohangala | 3:0ee289161a2a | 110 | printf("Running - %s\r\n",http_cmd); |
rohangala | 3:0ee289161a2a | 111 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 3:0ee289161a2a | 112 | |
rohangala | 3:0ee289161a2a | 113 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 3:0ee289161a2a | 114 | buffer[ret_t] = '\0'; |
rohangala | 3:0ee289161a2a | 115 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 3:0ee289161a2a | 116 | |
rohangala | 1:630aef63181c | 117 | } |
rohangala | 0:98be6bf27557 | 118 | |
rohangala | 3:0ee289161a2a | 119 | else if(val == 0x02) |
rohangala | 1:630aef63181c | 120 | { |
rohangala | 3:0ee289161a2a | 121 | pc.printf("%.2f ",ax*3.3); |
rohangala | 1:630aef63181c | 122 | |
rohangala | 3:0ee289161a2a | 123 | |
rohangala | 4:a4ec8ea99d70 | 124 | sprintf(http_cmd,"GET /update?key=L055HRYFCBL1LTM2&field2= %.2f HTTP/1.0\n\n",ax*3.3*17); |
rohangala | 3:0ee289161a2a | 125 | printf("Running - %s\r\n",http_cmd); |
rohangala | 3:0ee289161a2a | 126 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rohangala | 3:0ee289161a2a | 127 | |
rohangala | 3:0ee289161a2a | 128 | ret_t = sock.receive(buffer, sizeof(buffer)-1); |
rohangala | 3:0ee289161a2a | 129 | buffer[ret_t] = '\0'; |
rohangala | 3:0ee289161a2a | 130 | printf("Received %d chars from server:\n%s\r\n", ret_t, buffer); |
rohangala | 3:0ee289161a2a | 131 | |
rohangala | 1:630aef63181c | 132 | } |
rohangala | 0:98be6bf27557 | 133 | |
rohangala | 3:0ee289161a2a | 134 | else |
rohangala | 1:630aef63181c | 135 | val=0x00; |
rohangala | 1:630aef63181c | 136 | |
rohangala | 1:630aef63181c | 137 | wait(2); |
rohangala | 3:0ee289161a2a | 138 | |
rohangala | 0:98be6bf27557 | 139 | } |
rohangala | 3:0ee289161a2a | 140 | |
rohangala | 3:0ee289161a2a | 141 | } |
rohangala | 3:0ee289161a2a | 142 | |
rohangala | 3:0ee289161a2a | 143 | sock.close(); |
rohangala | 3:0ee289161a2a | 144 | |
rohangala | 3:0ee289161a2a | 145 | ethernet.disconnect(); |
rohangala | 3:0ee289161a2a | 146 | printf("Socket Closed"); |
rohangala | 0:98be6bf27557 | 147 | } |
rohangala | 0:98be6bf27557 | 148 | } |