Demo for Mbed Connect Cloud board and an IFTTT integration with Google Sheets
Dependencies: mbed-http C12832
View the tutorial for this demo here.
working/main_working.h@0:e7e395d6f1fc, 2017-11-10 (annotated)
- Committer:
- Jenny Plunkett
- Date:
- Fri Nov 10 15:56:35 2017 -0600
- Revision:
- 0:e7e395d6f1fc
- Child:
- 2:ba90e563a0d0
Blank program for tutorial (with working main)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenny Plunkett |
0:e7e395d6f1fc | 1 | //---------------------------------------------------------------------------- |
Jenny Plunkett |
0:e7e395d6f1fc | 2 | // The confidential and proprietary information contained in this file may |
Jenny Plunkett |
0:e7e395d6f1fc | 3 | // only be used by a person authorised under and to the extent permitted |
Jenny Plunkett |
0:e7e395d6f1fc | 4 | // by a subsisting licensing agreement from ARM Limited or its affiliates. |
Jenny Plunkett |
0:e7e395d6f1fc | 5 | // |
Jenny Plunkett |
0:e7e395d6f1fc | 6 | // (C) COPYRIGHT 2016 ARM Limited or its affiliates. |
Jenny Plunkett |
0:e7e395d6f1fc | 7 | // ALL RIGHTS RESERVED |
Jenny Plunkett |
0:e7e395d6f1fc | 8 | // |
Jenny Plunkett |
0:e7e395d6f1fc | 9 | // This entire notice must be reproduced on all copies of this file |
Jenny Plunkett |
0:e7e395d6f1fc | 10 | // and copies of this file may only be made by a person if such person is |
Jenny Plunkett |
0:e7e395d6f1fc | 11 | // permitted to do so under the terms of a subsisting license agreement |
Jenny Plunkett |
0:e7e395d6f1fc | 12 | // from ARM Limited or its affiliates. |
Jenny Plunkett |
0:e7e395d6f1fc | 13 | //---------------------------------------------------------------------------- |
Jenny Plunkett |
0:e7e395d6f1fc | 14 | #include "mbed.h" |
Jenny Plunkett |
0:e7e395d6f1fc | 15 | #include "OdinWiFiInterface.h" |
Jenny Plunkett |
0:e7e395d6f1fc | 16 | #include "TCPSocket.h" |
Jenny Plunkett |
0:e7e395d6f1fc | 17 | #include "http_request.h" |
Jenny Plunkett |
0:e7e395d6f1fc | 18 | |
Jenny Plunkett |
0:e7e395d6f1fc | 19 | // GLOBAL VARIABLES HERE |
Jenny Plunkett |
0:e7e395d6f1fc | 20 | |
Jenny Plunkett |
0:e7e395d6f1fc | 21 | OdinWiFiInterface wifi; |
Jenny Plunkett |
0:e7e395d6f1fc | 22 | InterruptIn button(PF_2); |
Jenny Plunkett |
0:e7e395d6f1fc | 23 | volatile int count = 0; |
Jenny Plunkett |
0:e7e395d6f1fc | 24 | volatile bool clicked = false; |
Jenny Plunkett |
0:e7e395d6f1fc | 25 | |
Jenny Plunkett |
0:e7e395d6f1fc | 26 | // FUNCTION DEFINTIONS HERE |
Jenny Plunkett |
0:e7e395d6f1fc | 27 | |
Jenny Plunkett |
0:e7e395d6f1fc | 28 | void button_clicked() { |
Jenny Plunkett |
0:e7e395d6f1fc | 29 | clicked = true; |
Jenny Plunkett |
0:e7e395d6f1fc | 30 | count += 1; |
Jenny Plunkett |
0:e7e395d6f1fc | 31 | printf("Button Clicked %d\n\r", count); |
Jenny Plunkett |
0:e7e395d6f1fc | 32 | } |
Jenny Plunkett |
0:e7e395d6f1fc | 33 | |
Jenny Plunkett |
0:e7e395d6f1fc | 34 | int main() { |
Jenny Plunkett |
0:e7e395d6f1fc | 35 | |
Jenny Plunkett |
0:e7e395d6f1fc | 36 | // MAIN CODE HERE |
Jenny Plunkett |
0:e7e395d6f1fc | 37 | |
Jenny Plunkett |
0:e7e395d6f1fc | 38 | printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID); |
Jenny Plunkett |
0:e7e395d6f1fc | 39 | int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2); |
Jenny Plunkett |
0:e7e395d6f1fc | 40 | if (ret != 0) { |
Jenny Plunkett |
0:e7e395d6f1fc | 41 | printf("\nConnection error\n"); |
Jenny Plunkett |
0:e7e395d6f1fc | 42 | return -1; |
Jenny Plunkett |
0:e7e395d6f1fc | 43 | } |
Jenny Plunkett |
0:e7e395d6f1fc | 44 | printf("Success\n\n"); |
Jenny Plunkett |
0:e7e395d6f1fc | 45 | printf("MAC: %s\n", wifi.get_mac_address()); |
Jenny Plunkett |
0:e7e395d6f1fc | 46 | printf("IP: %s\n", wifi.get_ip_address()); |
Jenny Plunkett |
0:e7e395d6f1fc | 47 | printf("Netmask: %s\n", wifi.get_netmask()); |
Jenny Plunkett |
0:e7e395d6f1fc | 48 | printf("Gateway: %s\n", wifi.get_gateway()); |
Jenny Plunkett |
0:e7e395d6f1fc | 49 | printf("RSSI: %d\n\n", wifi.get_rssi()); |
Jenny Plunkett |
0:e7e395d6f1fc | 50 | |
Jenny Plunkett |
0:e7e395d6f1fc | 51 | button.rise(&button_clicked); |
Jenny Plunkett |
0:e7e395d6f1fc | 52 | |
Jenny Plunkett |
0:e7e395d6f1fc | 53 | while (true) { |
Jenny Plunkett |
0:e7e395d6f1fc | 54 | if (clicked) { |
Jenny Plunkett |
0:e7e395d6f1fc | 55 | clicked = false; |
Jenny Plunkett |
0:e7e395d6f1fc | 56 | char body[140]; |
Jenny Plunkett |
0:e7e395d6f1fc | 57 | char event_name[] = "Button Clicked"; |
Jenny Plunkett |
0:e7e395d6f1fc | 58 | NetworkInterface* net = &wifi; |
Jenny Plunkett |
0:e7e395d6f1fc | 59 | HttpRequest* request = new HttpRequest(net, HTTP_POST, "http://maker.ifttt.com/trigger/mbed_connect/with/key/SECRETKEY"); |
Jenny Plunkett |
0:e7e395d6f1fc | 60 | request->set_header("Content-Type", "application/json"); |
Jenny Plunkett |
0:e7e395d6f1fc | 61 | sprintf(body, "{\"value1\":\"%s\", \"value2\":\"%d\"}", event_name, count); |
Jenny Plunkett |
0:e7e395d6f1fc | 62 | HttpResponse* response = request->send(body, strlen(body)); |
Jenny Plunkett |
0:e7e395d6f1fc | 63 | printf("%s\n\r", response->get_body_as_string().c_str()); |
Jenny Plunkett |
0:e7e395d6f1fc | 64 | delete request; |
Jenny Plunkett |
0:e7e395d6f1fc | 65 | } |
Jenny Plunkett |
0:e7e395d6f1fc | 66 | } |
Jenny Plunkett |
0:e7e395d6f1fc | 67 | |
Jenny Plunkett |
0:e7e395d6f1fc | 68 | } |