Tweet to #DrivingIoT and get some candy

Dependencies:   EthernetInterface HTTPClient mbed-rtos mbed

Fork of FreedomK64F_Ethernet by Jose Romero

Tweet for Candy, Images of the build

Descriptions will be added and pages need to be organized on the Wiki

/media/uploads/igalloway/img_20141126_121905.jpg /media/uploads/igalloway/img_20141126_121913.jpg /media/uploads/igalloway/img_20141126_121929.jpg /media/uploads/igalloway/img_20141126_121935.jpg /media/uploads/igalloway/img_20141126_121945.jpg /media/uploads/igalloway/img_20141126_161344.jpg /media/uploads/igalloway/img_20141126_161400.jpg /media/uploads/igalloway/img_20141126_171349.jpg /media/uploads/igalloway/img_20141126_171621.jpg /media/uploads/igalloway/img_20141126_171659.jpg /media/uploads/igalloway/img_20141126_171902.jpg /media/uploads/igalloway/img_20141126_174121.jpg /media/uploads/igalloway/img_20141126_175707.jpg

Committer:
Spookmx
Date:
Mon Feb 09 18:59:23 2015 +0000
Revision:
2:4e65bd216494
Parent:
1:9eb6f83066db
Final URL for production tweet check service

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Spookmx 0:ce7b80583a29 1 #include "mbed.h"
Spookmx 0:ce7b80583a29 2 #include "EthernetInterface.h"
Spookmx 0:ce7b80583a29 3 #include "HTTPClient.h"
Spookmx 0:ce7b80583a29 4
Spookmx 0:ce7b80583a29 5 EthernetInterface eth;
Spookmx 0:ce7b80583a29 6 HTTPClient http;
Spookmx 0:ce7b80583a29 7 char str[512];
Spookmx 0:ce7b80583a29 8
Spookmx 1:9eb6f83066db 9 // FRDM17511 I/O
Spookmx 1:9eb6f83066db 10 DigitalOut ENABLED(PTC7);
Spookmx 1:9eb6f83066db 11 DigitalOut READY(PTC5);
Spookmx 1:9eb6f83066db 12 DigitalOut OUT1(D2);
Spookmx 1:9eb6f83066db 13 DigitalOut OUT2(D3);
Spookmx 1:9eb6f83066db 14 DigitalIn SNS(PTC0);
Spookmx 1:9eb6f83066db 15
Spookmx 1:9eb6f83066db 16 // LED
Spookmx 0:ce7b80583a29 17 DigitalOut led_red(LED_RED);
Spookmx 0:ce7b80583a29 18 DigitalOut led_green(LED_GREEN);
Spookmx 0:ce7b80583a29 19 DigitalOut led_blue(LED_BLUE);
Spookmx 0:ce7b80583a29 20 Serial pc(USBTX, USBRX);
Spookmx 0:ce7b80583a29 21
Spookmx 0:ce7b80583a29 22 void check_color(void)
Spookmx 0:ce7b80583a29 23 {
Spookmx 0:ce7b80583a29 24 //GET data
Spookmx 0:ce7b80583a29 25 printf("\nTrying to fetch page...\n");
Spookmx 2:4e65bd216494 26 int ret = http.get("http://iot.freescale.com/components/com_ohanah/checkColor.php", str, 128);
Spookmx 0:ce7b80583a29 27 if (!ret) {
Spookmx 1:9eb6f83066db 28 if(strcmp(str,"AUTHORIZED")== 0) {
Spookmx 0:ce7b80583a29 29 led_green = 1;
Spookmx 1:9eb6f83066db 30 led_red = 1;
Spookmx 1:9eb6f83066db 31 led_blue = 0; // Found new tweet, we turn the led to blue
Spookmx 1:9eb6f83066db 32 OUT1 = 1;
Spookmx 1:9eb6f83066db 33 OUT2 = 0;
Spookmx 1:9eb6f83066db 34 wait(3); // Leaves the motor ON for 3 seconds
Spookmx 1:9eb6f83066db 35 OUT1 = 0; // We turn it off
Spookmx 1:9eb6f83066db 36 OUT2 = 0;
Spookmx 1:9eb6f83066db 37 led_green = 0; // We go back to green light
Spookmx 0:ce7b80583a29 38 led_red = 1;
Spookmx 0:ce7b80583a29 39 led_blue = 1;
Spookmx 1:9eb6f83066db 40 } else if(strcmp(str,"NOT AUTHORIZED")== 0) {
Spookmx 0:ce7b80583a29 41 led_green = 1;
Spookmx 1:9eb6f83066db 42 led_red = 0; // No new tweets, RED light
Spookmx 1:9eb6f83066db 43 led_blue = 1;
Spookmx 1:9eb6f83066db 44 wait(3);
Spookmx 1:9eb6f83066db 45 led_green = 0; // We go back to green light
Spookmx 0:ce7b80583a29 46 led_red = 1;
Spookmx 1:9eb6f83066db 47 led_blue = 1;
Spookmx 1:9eb6f83066db 48 } else if(strcmp(str,"NO DATA")== 0) {
Spookmx 1:9eb6f83066db 49 led_green = 1;
Spookmx 1:9eb6f83066db 50 led_red = 0; // No data from the server, goes to PURPLE
Spookmx 0:ce7b80583a29 51 led_blue = 0;
Spookmx 1:9eb6f83066db 52 wait(3);
Spookmx 1:9eb6f83066db 53 led_green = 0; // We go back to green light
Spookmx 1:9eb6f83066db 54 led_red = 1;
Spookmx 1:9eb6f83066db 55 led_blue = 1;
Spookmx 0:ce7b80583a29 56 } else {
Spookmx 2:4e65bd216494 57 led_green = 0; // If the server provides a different response go to YELLOW, check server side code.
Spookmx 0:ce7b80583a29 58 led_red = 0;
Spookmx 0:ce7b80583a29 59 led_blue = 1;
Spookmx 0:ce7b80583a29 60 }
Spookmx 0:ce7b80583a29 61 printf("Page fetched successfully - read %d characters\n", strlen(str));
Spookmx 0:ce7b80583a29 62 printf("Result: %s\n", str);
Spookmx 0:ce7b80583a29 63 } else {
Spookmx 0:ce7b80583a29 64 printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
Spookmx 0:ce7b80583a29 65 }
Spookmx 0:ce7b80583a29 66 }
Spookmx 0:ce7b80583a29 67
Spookmx 0:ce7b80583a29 68
Spookmx 0:ce7b80583a29 69 int main()
Spookmx 0:ce7b80583a29 70 {
Spookmx 0:ce7b80583a29 71 eth.init(); //Use DHCP
Spookmx 0:ce7b80583a29 72 eth.connect();
Spookmx 1:9eb6f83066db 73 led_green = 0;
Spookmx 0:ce7b80583a29 74 led_red = 1;
Spookmx 0:ce7b80583a29 75 led_blue = 1;
Spookmx 1:9eb6f83066db 76 ENABLED = 1;
Spookmx 1:9eb6f83066db 77 READY = 1;
Spookmx 2:4e65bd216494 78
Spookmx 0:ce7b80583a29 79 while (true) {
Spookmx 0:ce7b80583a29 80 check_color();
Spookmx 1:9eb6f83066db 81 wait(5); // Check for a tweet every 5 seconds
Spookmx 0:ce7b80583a29 82 }
Spookmx 0:ce7b80583a29 83 }