Send Location and current time from GPS data to Twitter with Proxy server

Dependencies:   GPS WIZnetInterface mbed

Committer:
joon874
Date:
Wed Aug 26 08:32:27 2015 +0000
Revision:
0:d7eff6596497
Send Location and current time from GPS data to Twitter with Proxy server

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joon874 0:d7eff6596497 1
joon874 0:d7eff6596497 2 #include "mbed.h"
joon874 0:d7eff6596497 3 #include "EthernetInterface.h"
joon874 0:d7eff6596497 4 #include "GPS.h"
joon874 0:d7eff6596497 5
joon874 0:d7eff6596497 6 GPS gpsAda(D1, D0, 9600);
joon874 0:d7eff6596497 7
joon874 0:d7eff6596497 8 InterruptIn mysw(D7);
joon874 0:d7eff6596497 9 DigitalOut myled1(LED3);
joon874 0:d7eff6596497 10
joon874 0:d7eff6596497 11 #define TOKEN "3252156354-fG0b1utXYAg5IqeJNMSJFlenx1rgSRXm5wgk21l"
joon874 0:d7eff6596497 12
joon874 0:d7eff6596497 13 void exin() {
joon874 0:d7eff6596497 14
joon874 0:d7eff6596497 15 int phy_link;
joon874 0:d7eff6596497 16 printf("Wait a second...\r\n");
joon874 0:d7eff6596497 17 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x03, 0x04, 0x02};
joon874 0:d7eff6596497 18
joon874 0:d7eff6596497 19 EthernetInterface eth;
joon874 0:d7eff6596497 20 eth.init(mac_addr); //Use DHCP
joon874 0:d7eff6596497 21
joon874 0:d7eff6596497 22 while(1){
joon874 0:d7eff6596497 23
joon874 0:d7eff6596497 24 eth.connect();
joon874 0:d7eff6596497 25
joon874 0:d7eff6596497 26 /* phy link */
joon874 0:d7eff6596497 27 do{
joon874 0:d7eff6596497 28 phy_link = eth.ethernet_link();
joon874 0:d7eff6596497 29 printf("...");
joon874 0:d7eff6596497 30 wait(2);
joon874 0:d7eff6596497 31 }while(!phy_link);
joon874 0:d7eff6596497 32 printf("\r\n");
joon874 0:d7eff6596497 33
joon874 0:d7eff6596497 34 printf("IP Address is %s\r\n", eth.getIPAddress());
joon874 0:d7eff6596497 35
joon874 0:d7eff6596497 36
joon874 0:d7eff6596497 37 /* TCP socket connect */
joon874 0:d7eff6596497 38 TCPSocketConnection sock;
joon874 0:d7eff6596497 39 sock.connect("arduino-tweet.appspot.com", 80);
joon874 0:d7eff6596497 40
joon874 0:d7eff6596497 41 printf("connected\r\n");
joon874 0:d7eff6596497 42
joon874 0:d7eff6596497 43 float longi = 0;
joon874 0:d7eff6596497 44 float latit = 0;
joon874 0:d7eff6596497 45 int time;
joon874 0:d7eff6596497 46
joon874 0:d7eff6596497 47 char message1[] = "Alert!!\r\nSunae-Station";
joon874 0:d7eff6596497 48 char message2[] = "\r\nTime:";
joon874 0:d7eff6596497 49
joon874 0:d7eff6596497 50 char message[36] = {0};
joon874 0:d7eff6596497 51
joon874 0:d7eff6596497 52 /* get gps data */
joon874 0:d7eff6596497 53 if(gpsAda.sample())
joon874 0:d7eff6596497 54 {
joon874 0:d7eff6596497 55 longi = gpsAda.longitude;
joon874 0:d7eff6596497 56 latit = gpsAda.latitude;
joon874 0:d7eff6596497 57 time = gpsAda.time + 90000;
joon874 0:d7eff6596497 58 // printf("%f,%f,%d\r\n\r\n",longi,latit,time);
joon874 0:d7eff6596497 59 }
joon874 0:d7eff6596497 60
joon874 0:d7eff6596497 61 /* gps time data */
joon874 0:d7eff6596497 62 char time_data[6]={0};
joon874 0:d7eff6596497 63 int hour10 = 0;
joon874 0:d7eff6596497 64 int hour1 = 0;
joon874 0:d7eff6596497 65 int min10 = 0;
joon874 0:d7eff6596497 66 int min1 = 0;
joon874 0:d7eff6596497 67 int sec10 = 0;
joon874 0:d7eff6596497 68 int sec1 = 0;
joon874 0:d7eff6596497 69
joon874 0:d7eff6596497 70 hour10 = time/100000;
joon874 0:d7eff6596497 71 hour1 = (time-hour10*100000)/10000;
joon874 0:d7eff6596497 72 min10 = (time-hour10*100000-hour1*10000)/1000;
joon874 0:d7eff6596497 73 min1 = (time-hour10*100000-hour1*10000-min10*1000)/100;
joon874 0:d7eff6596497 74 sec10 = (time-hour10*100000-hour1*10000-min10*1000-min1*100)/10;
joon874 0:d7eff6596497 75 sec1 = time-hour10*100000-hour1*10000-min10*1000-min1*100-sec10*10;
joon874 0:d7eff6596497 76
joon874 0:d7eff6596497 77 time_data[5] = sec1 + 48;
joon874 0:d7eff6596497 78 time_data[4] = sec10 + 48;
joon874 0:d7eff6596497 79 time_data[3] = min1 + 48;
joon874 0:d7eff6596497 80 time_data[2] = min10 + 48;
joon874 0:d7eff6596497 81 time_data[1] = hour1 + 48;
joon874 0:d7eff6596497 82 time_data[0] = hour10 + 48;
joon874 0:d7eff6596497 83
joon874 0:d7eff6596497 84 // printf("%s\r\n",time_data);
joon874 0:d7eff6596497 85
joon874 0:d7eff6596497 86
joon874 0:d7eff6596497 87 /* gps location data, time data on message */
joon874 0:d7eff6596497 88 if((longi> 27.109287)&&(longi<127.120232))
joon874 0:d7eff6596497 89 {
joon874 0:d7eff6596497 90 if((latit>37.374869)&&(latit<37.381587))
joon874 0:d7eff6596497 91 {
joon874 0:d7eff6596497 92 // printf("alright\r\n");
joon874 0:d7eff6596497 93 sprintf(message, "%s%s%s", message1, message2, time_data);
joon874 0:d7eff6596497 94 }else{
joon874 0:d7eff6596497 95 sprintf(message, "%s%s%s", message1, message2, time_data);
joon874 0:d7eff6596497 96 }
joon874 0:d7eff6596497 97 }else{
joon874 0:d7eff6596497 98 sprintf(message, "%s%s%s", message1, message2, time_data);
joon874 0:d7eff6596497 99 }
joon874 0:d7eff6596497 100
joon874 0:d7eff6596497 101 //sprintf(message, "%s%s%s", message1, message2, time_data);
joon874 0:d7eff6596497 102
joon874 0:d7eff6596497 103 /* data length measure */
joon874 0:d7eff6596497 104 char data_len[2]={0};
joon874 0:d7eff6596497 105 int ten=0;
joon874 0:d7eff6596497 106 int one=0;
joon874 0:d7eff6596497 107
joon874 0:d7eff6596497 108 int length = sizeof(message) - 1 + sizeof(TOKEN) - 1 + 14;
joon874 0:d7eff6596497 109
joon874 0:d7eff6596497 110 // printf("%d\r\n\r\n",length);
joon874 0:d7eff6596497 111
joon874 0:d7eff6596497 112 ten = length/10;
joon874 0:d7eff6596497 113 one = length%10;
joon874 0:d7eff6596497 114 data_len[1] = one + 48;
joon874 0:d7eff6596497 115 data_len[0] = ten + 48;
joon874 0:d7eff6596497 116
joon874 0:d7eff6596497 117 /* send message on format data to proxy server */
joon874 0:d7eff6596497 118 char *cmd1 = "POST http://arduino-tweet.appspot.com/update HTTP/1.0\r\nContent-Length:";
joon874 0:d7eff6596497 119 char *cmd2 = data_len;
joon874 0:d7eff6596497 120 char *cmd3 = "\r\n\r\ntoken=";
joon874 0:d7eff6596497 121 char *cmd4 = TOKEN;
joon874 0:d7eff6596497 122 char *cmd5 = "&status=";
joon874 0:d7eff6596497 123 char *cmd6 = message;
joon874 0:d7eff6596497 124 char *cmd7 = "\r\n";
joon874 0:d7eff6596497 125
joon874 0:d7eff6596497 126 char send_data[1024];
joon874 0:d7eff6596497 127 sprintf(send_data, "%s%s%s%s%s%s%s", cmd1, cmd2, cmd3, cmd4, cmd5, cmd6, cmd7);
joon874 0:d7eff6596497 128
joon874 0:d7eff6596497 129 sock.send_all(send_data, sizeof(send_data)-1);
joon874 0:d7eff6596497 130
joon874 0:d7eff6596497 131 printf("%s\r\n",send_data);
joon874 0:d7eff6596497 132 printf("send message done\r\n");
joon874 0:d7eff6596497 133
joon874 0:d7eff6596497 134 /* receive data from server */
joon874 0:d7eff6596497 135 char buffer[1024];
joon874 0:d7eff6596497 136
joon874 0:d7eff6596497 137 sock.receive(buffer, sizeof(buffer)-1);
joon874 0:d7eff6596497 138 printf("%s\r\n",buffer);
joon874 0:d7eff6596497 139
joon874 0:d7eff6596497 140 /* sock close */
joon874 0:d7eff6596497 141 sock.close();
joon874 0:d7eff6596497 142
joon874 0:d7eff6596497 143 eth.disconnect();
joon874 0:d7eff6596497 144
joon874 0:d7eff6596497 145 wait(70.0);
joon874 0:d7eff6596497 146
joon874 0:d7eff6596497 147 };
joon874 0:d7eff6596497 148
joon874 0:d7eff6596497 149 }
joon874 0:d7eff6596497 150
joon874 0:d7eff6596497 151 int main() {
joon874 0:d7eff6596497 152
joon874 0:d7eff6596497 153 printf("Run now...\r\n");
joon874 0:d7eff6596497 154
joon874 0:d7eff6596497 155 mysw.rise(&exin);
joon874 0:d7eff6596497 156
joon874 0:d7eff6596497 157 while(1) {
joon874 0:d7eff6596497 158 myled1 = !myled1;
joon874 0:d7eff6596497 159 wait(1.0);
joon874 0:d7eff6596497 160 }
joon874 0:d7eff6596497 161 }
joon874 0:d7eff6596497 162
joon874 0:d7eff6596497 163
joon874 0:d7eff6596497 164
joon874 0:d7eff6596497 165 /*
joon874 0:d7eff6596497 166 #include "mbed.h"
joon874 0:d7eff6596497 167 #include "EthernetInterface.h"
joon874 0:d7eff6596497 168
joon874 0:d7eff6596497 169 #define TOKEN "3252156354-fG0b1utXYAg5IqeJNMSJFlenx1rgSRXm5wgk21l"
joon874 0:d7eff6596497 170
joon874 0:d7eff6596497 171 int main()
joon874 0:d7eff6596497 172 {
joon874 0:d7eff6596497 173
joon874 0:d7eff6596497 174 int phy_link;
joon874 0:d7eff6596497 175 printf("wait a second...\r\n");
joon874 0:d7eff6596497 176 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x03, 0x04, 0x02};
joon874 0:d7eff6596497 177
joon874 0:d7eff6596497 178 EthernetInterface eth;
joon874 0:d7eff6596497 179 eth.init(mac_addr); //Use DHCP
joon874 0:d7eff6596497 180
joon874 0:d7eff6596497 181 while(1) {
joon874 0:d7eff6596497 182
joon874 0:d7eff6596497 183 eth.connect();
joon874 0:d7eff6596497 184
joon874 0:d7eff6596497 185 phy link
joon874 0:d7eff6596497 186 do {
joon874 0:d7eff6596497 187 phy_link = eth.ethernet_link();
joon874 0:d7eff6596497 188 printf("...");
joon874 0:d7eff6596497 189 wait(2);
joon874 0:d7eff6596497 190 } while(!phy_link);
joon874 0:d7eff6596497 191 printf("\r\n");
joon874 0:d7eff6596497 192
joon874 0:d7eff6596497 193 printf("IP Address is %s\r\n", eth.getIPAddress());
joon874 0:d7eff6596497 194
joon874 0:d7eff6596497 195 TCP socket connect
joon874 0:d7eff6596497 196 TCPSocketConnection sock;
joon874 0:d7eff6596497 197 sock.connect("arduino-tweet.appspot.com", 80);
joon874 0:d7eff6596497 198
joon874 0:d7eff6596497 199 printf("connected\r\n");
joon874 0:d7eff6596497 200
joon874 0:d7eff6596497 201 char message[] = "test1234";
joon874 0:d7eff6596497 202
joon874 0:d7eff6596497 203 char len[10];
joon874 0:d7eff6596497 204 char str[10];
joon874 0:d7eff6596497 205
joon874 0:d7eff6596497 206 int length = sizeof(message) - 1 + sizeof(TOKEN) - 1 + 14;
joon874 0:d7eff6596497 207
joon874 0:d7eff6596497 208 printf("%d\r\n",length);
joon874 0:d7eff6596497 209
joon874 0:d7eff6596497 210
joon874 0:d7eff6596497 211 char *cmd1 = "POST http://arduino-tweet.appspot.com/update HTTP/1.0\r\nContent-Length:";
joon874 0:d7eff6596497 212 char *cmd2 = "72";
joon874 0:d7eff6596497 213 char *cmd3 = "\r\n\r\ntoken=";
joon874 0:d7eff6596497 214 char *cmd4 = TOKEN;
joon874 0:d7eff6596497 215 char *cmd5 = "&status=";
joon874 0:d7eff6596497 216 char *cmd6 = message;
joon874 0:d7eff6596497 217 char *cmd7 = "\r\n";
joon874 0:d7eff6596497 218
joon874 0:d7eff6596497 219
joon874 0:d7eff6596497 220 char send_data[1024];
joon874 0:d7eff6596497 221 char buffer[1024];
joon874 0:d7eff6596497 222 sprintf(send_data, "%s%s%s%s%s%s%s", cmd1, cmd2, cmd3, cmd4, cmd5, cmd6, cmd7);
joon874 0:d7eff6596497 223
joon874 0:d7eff6596497 224 sock.send_all(send_data, sizeof(send_data)-1);
joon874 0:d7eff6596497 225
joon874 0:d7eff6596497 226 printf("%s\r\n",send_data);
joon874 0:d7eff6596497 227 printf("send message done\r\n");
joon874 0:d7eff6596497 228
joon874 0:d7eff6596497 229 sock.receive(buffer, sizeof(buffer)-1);
joon874 0:d7eff6596497 230
joon874 0:d7eff6596497 231 printf("%s\r\n",buffer);
joon874 0:d7eff6596497 232
joon874 0:d7eff6596497 233 sock.close();
joon874 0:d7eff6596497 234
joon874 0:d7eff6596497 235 eth.disconnect();
joon874 0:d7eff6596497 236
joon874 0:d7eff6596497 237 wait(70.0);
joon874 0:d7eff6596497 238
joon874 0:d7eff6596497 239 };
joon874 0:d7eff6596497 240
joon874 0:d7eff6596497 241 }
joon874 0:d7eff6596497 242
joon874 0:d7eff6596497 243 */