Demo for Mbed Connect Cloud board and an IFTTT integration with Google Sheets

Dependencies:   mbed-http C12832

View the tutorial for this demo here.

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?

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