FAN ARM Controller UDP Client with WiFi

Dependencies:   WizFi250Interface mbed

http://www.instructables.com/id/My-FAN-ARM-control-servo-with-WiFi/

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?

UserRevisionLine numberNew 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 }