Tweet to #DrivingIoT and get some candy
Dependencies: EthernetInterface HTTPClient mbed-rtos mbed
Fork of FreedomK64F_Ethernet by
Tweet for Candy, Images of the build
Descriptions will be added and pages need to be organized on the Wiki
main.cpp@2:4e65bd216494, 2015-02-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |