FAN ARM Controller UDP Client with WiFi
Dependencies: WizFi250Interface mbed
http://www.instructables.com/id/My-FAN-ARM-control-servo-with-WiFi/
main.cpp@0:31c053b12d9a, 2015-09-23 (annotated)
- Committer:
- joon874
- Date:
- Wed Sep 23 00:51:24 2015 +0000
- Revision:
- 0:31c053b12d9a
FAN ARM Controller UDP Client
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
joon874 | 0:31c053b12d9a | 1 | |
joon874 | 0:31c053b12d9a | 2 | #include <stdio.h> |
joon874 | 0:31c053b12d9a | 3 | #include "mbed.h" |
joon874 | 0:31c053b12d9a | 4 | #include "WizFi250Interface.h" |
joon874 | 0:31c053b12d9a | 5 | |
joon874 | 0:31c053b12d9a | 6 | #define SERVER_ADDRESS "192.168.100.1" |
joon874 | 0:31c053b12d9a | 7 | #define SERVER_PORT 5000 |
joon874 | 0:31c053b12d9a | 8 | |
joon874 | 0:31c053b12d9a | 9 | #define CLIENT_PORT 3000 |
joon874 | 0:31c053b12d9a | 10 | |
joon874 | 0:31c053b12d9a | 11 | #define SECURE WizFi250::SEC_AUTO |
joon874 | 0:31c053b12d9a | 12 | #define SSID "WizFi250_AP_Test" |
joon874 | 0:31c053b12d9a | 13 | #define PASS "1234567890" |
joon874 | 0:31c053b12d9a | 14 | |
joon874 | 0:31c053b12d9a | 15 | #if defined(TARGET_WIZwiki_W7500) |
joon874 | 0:31c053b12d9a | 16 | WizFi250Interface wizfi250(D1,D0,D7,D8,PA_12,NC,115200); |
joon874 | 0:31c053b12d9a | 17 | Serial pc(USBTX, USBRX); |
joon874 | 0:31c053b12d9a | 18 | #endif |
joon874 | 0:31c053b12d9a | 19 | |
joon874 | 0:31c053b12d9a | 20 | AnalogIn xAxis(A0); |
joon874 | 0:31c053b12d9a | 21 | AnalogIn yAxis(A1); |
joon874 | 0:31c053b12d9a | 22 | |
joon874 | 0:31c053b12d9a | 23 | DigitalIn Fanon(D4); |
joon874 | 0:31c053b12d9a | 24 | DigitalIn Fanoff(D3); |
joon874 | 0:31c053b12d9a | 25 | |
joon874 | 0:31c053b12d9a | 26 | DigitalOut red(LED1); |
joon874 | 0:31c053b12d9a | 27 | DigitalOut green(LED2); |
joon874 | 0:31c053b12d9a | 28 | |
joon874 | 0:31c053b12d9a | 29 | void UDPClient(); |
joon874 | 0:31c053b12d9a | 30 | |
joon874 | 0:31c053b12d9a | 31 | |
joon874 | 0:31c053b12d9a | 32 | int main() |
joon874 | 0:31c053b12d9a | 33 | { |
joon874 | 0:31c053b12d9a | 34 | pc.baud(115200); |
joon874 | 0:31c053b12d9a | 35 | |
joon874 | 0:31c053b12d9a | 36 | printf("WizFi250 Hello World demo. \r\n"); |
joon874 | 0:31c053b12d9a | 37 | wizfi250.init(); |
joon874 | 0:31c053b12d9a | 38 | //wizfi250.setAddress("192.168.100.10","255.255.255.0","192.168.100.1"); |
joon874 | 0:31c053b12d9a | 39 | if ( wizfi250.connect(SECURE, SSID, PASS)) return -1; |
joon874 | 0:31c053b12d9a | 40 | printf("IP Address is %s\r\n", wizfi250.getIPAddress()); |
joon874 | 0:31c053b12d9a | 41 | |
joon874 | 0:31c053b12d9a | 42 | wait(1.0); |
joon874 | 0:31c053b12d9a | 43 | |
joon874 | 0:31c053b12d9a | 44 | UDPClient(); |
joon874 | 0:31c053b12d9a | 45 | |
joon874 | 0:31c053b12d9a | 46 | wizfi250.disconnect(); |
joon874 | 0:31c053b12d9a | 47 | } |
joon874 | 0:31c053b12d9a | 48 | |
joon874 | 0:31c053b12d9a | 49 | |
joon874 | 0:31c053b12d9a | 50 | void UDPClient() |
joon874 | 0:31c053b12d9a | 51 | { |
joon874 | 0:31c053b12d9a | 52 | |
joon874 | 0:31c053b12d9a | 53 | UDPSocket client; |
joon874 | 0:31c053b12d9a | 54 | printf("Socket opened\r\n"); |
joon874 | 0:31c053b12d9a | 55 | |
joon874 | 0:31c053b12d9a | 56 | client.set_blocking(false); |
joon874 | 0:31c053b12d9a | 57 | client.bind(CLIENT_PORT); |
joon874 | 0:31c053b12d9a | 58 | |
joon874 | 0:31c053b12d9a | 59 | Endpoint server; |
joon874 | 0:31c053b12d9a | 60 | |
joon874 | 0:31c053b12d9a | 61 | server.set_address(SERVER_ADDRESS, SERVER_PORT); |
joon874 | 0:31c053b12d9a | 62 | |
joon874 | 0:31c053b12d9a | 63 | /* ready sign */ |
joon874 | 0:31c053b12d9a | 64 | green = 0; |
joon874 | 0:31c053b12d9a | 65 | wait(0.3); |
joon874 | 0:31c053b12d9a | 66 | green = 1; |
joon874 | 0:31c053b12d9a | 67 | wait(0.3); |
joon874 | 0:31c053b12d9a | 68 | green = 0; |
joon874 | 0:31c053b12d9a | 69 | wait(0.3); |
joon874 | 0:31c053b12d9a | 70 | green = 1; |
joon874 | 0:31c053b12d9a | 71 | wait(0.3); |
joon874 | 0:31c053b12d9a | 72 | green = 0; |
joon874 | 0:31c053b12d9a | 73 | |
joon874 | 0:31c053b12d9a | 74 | while(true) |
joon874 | 0:31c053b12d9a | 75 | { |
joon874 | 0:31c053b12d9a | 76 | int x,y; |
joon874 | 0:31c053b12d9a | 77 | |
joon874 | 0:31c053b12d9a | 78 | char *cmd1 = "left"; |
joon874 | 0:31c053b12d9a | 79 | char *cmd2 = "right"; |
joon874 | 0:31c053b12d9a | 80 | char *cmd3 = "up"; |
joon874 | 0:31c053b12d9a | 81 | char *cmd4 = "down"; |
joon874 | 0:31c053b12d9a | 82 | char *cmd5 = "init"; |
joon874 | 0:31c053b12d9a | 83 | char *cmd6 = "fanon"; |
joon874 | 0:31c053b12d9a | 84 | char *cmd7 = "fanoff"; |
joon874 | 0:31c053b12d9a | 85 | |
joon874 | 0:31c053b12d9a | 86 | char send_data[10]; |
joon874 | 0:31c053b12d9a | 87 | |
joon874 | 0:31c053b12d9a | 88 | x = xAxis.read() * 1000; // float (0->1) to int (0-1000) |
joon874 | 0:31c053b12d9a | 89 | y = yAxis.read() * 1000; |
joon874 | 0:31c053b12d9a | 90 | |
joon874 | 0:31c053b12d9a | 91 | if ( (x < 10) || ((y > 350)&&(y < 420)) ) |
joon874 | 0:31c053b12d9a | 92 | { |
joon874 | 0:31c053b12d9a | 93 | sprintf(send_data, "%s", cmd1); |
joon874 | 0:31c053b12d9a | 94 | printf("left\r\n"); |
joon874 | 0:31c053b12d9a | 95 | } |
joon874 | 0:31c053b12d9a | 96 | else if ( (x > 990) || ((y > 520)&&(y < 620)) ) |
joon874 | 0:31c053b12d9a | 97 | { |
joon874 | 0:31c053b12d9a | 98 | sprintf(send_data, "%s", cmd2); |
joon874 | 0:31c053b12d9a | 99 | printf("right\r\n"); |
joon874 | 0:31c053b12d9a | 100 | } |
joon874 | 0:31c053b12d9a | 101 | else if ( ((x > 480)&&(x < 570)) || (y > 990) ) |
joon874 | 0:31c053b12d9a | 102 | { |
joon874 | 0:31c053b12d9a | 103 | sprintf(send_data, "%s", cmd3); |
joon874 | 0:31c053b12d9a | 104 | printf("up\r\n"); |
joon874 | 0:31c053b12d9a | 105 | } |
joon874 | 0:31c053b12d9a | 106 | else if ( ((x > 350)&&(x < 420)) || (y < 10) ) |
joon874 | 0:31c053b12d9a | 107 | { |
joon874 | 0:31c053b12d9a | 108 | sprintf(send_data, "%s", cmd4); |
joon874 | 0:31c053b12d9a | 109 | printf("down\r\n"); |
joon874 | 0:31c053b12d9a | 110 | } |
joon874 | 0:31c053b12d9a | 111 | else if (Fanon == 1) |
joon874 | 0:31c053b12d9a | 112 | { |
joon874 | 0:31c053b12d9a | 113 | sprintf(send_data, "%s", cmd6); |
joon874 | 0:31c053b12d9a | 114 | printf("fan on\r\n"); |
joon874 | 0:31c053b12d9a | 115 | } |
joon874 | 0:31c053b12d9a | 116 | else if (Fanoff == 1) |
joon874 | 0:31c053b12d9a | 117 | { |
joon874 | 0:31c053b12d9a | 118 | sprintf(send_data, "%s", cmd7); |
joon874 | 0:31c053b12d9a | 119 | printf("fan off\r\n"); |
joon874 | 0:31c053b12d9a | 120 | } |
joon874 | 0:31c053b12d9a | 121 | else |
joon874 | 0:31c053b12d9a | 122 | { |
joon874 | 0:31c053b12d9a | 123 | sprintf(send_data, "%s", cmd5); |
joon874 | 0:31c053b12d9a | 124 | printf("init\r\n"); |
joon874 | 0:31c053b12d9a | 125 | } |
joon874 | 0:31c053b12d9a | 126 | |
joon874 | 0:31c053b12d9a | 127 | |
joon874 | 0:31c053b12d9a | 128 | client.sendTo(server, send_data, sizeof(send_data)); |
joon874 | 0:31c053b12d9a | 129 | |
joon874 | 0:31c053b12d9a | 130 | char in_buffer[256]; |
joon874 | 0:31c053b12d9a | 131 | int n = client.receiveFrom(server, in_buffer, sizeof(in_buffer)); |
joon874 | 0:31c053b12d9a | 132 | in_buffer[n] = '\0'; |
joon874 | 0:31c053b12d9a | 133 | |
joon874 | 0:31c053b12d9a | 134 | if( n > 0 ) |
joon874 | 0:31c053b12d9a | 135 | printf("%s\r\n", in_buffer); |
joon874 | 0:31c053b12d9a | 136 | |
joon874 | 0:31c053b12d9a | 137 | wait(1.0); |
joon874 | 0:31c053b12d9a | 138 | }; |
joon874 | 0:31c053b12d9a | 139 | |
joon874 | 0:31c053b12d9a | 140 | client.close(); |
joon874 | 0:31c053b12d9a | 141 | } |