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 17 16:03:04 2017 -0600
Revision:
5:597c63117d91
Parent:
4:0160ae8489f3
Fixed typo

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 2:ba90e563a0d0 15 #include "C12832.h"
Jenny Plunkett 0:e7e395d6f1fc 16 #include "OdinWiFiInterface.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 2:ba90e563a0d0 21 C12832 lcd(PE_14, PE_12, PD_12, PD_11, PE_9);
Jenny Plunkett 0:e7e395d6f1fc 22 OdinWiFiInterface wifi;
Jenny Plunkett 0:e7e395d6f1fc 23 InterruptIn button(PF_2);
Jenny Plunkett 0:e7e395d6f1fc 24 volatile int count = 0;
Jenny Plunkett 0:e7e395d6f1fc 25 volatile bool clicked = false;
Jenny Plunkett 0:e7e395d6f1fc 26
Jenny Plunkett 0:e7e395d6f1fc 27 // FUNCTION DEFINTIONS HERE
Jenny Plunkett 0:e7e395d6f1fc 28
Jenny Plunkett 2:ba90e563a0d0 29 void lcd_print(const char* message) {
Jenny Plunkett 2:ba90e563a0d0 30 lcd.cls();
Jenny Plunkett 2:ba90e563a0d0 31 lcd.locate(0, 3);
Jenny Plunkett 2:ba90e563a0d0 32 lcd.printf(message);
Jenny Plunkett 2:ba90e563a0d0 33 }
Jenny Plunkett 2:ba90e563a0d0 34
Jenny Plunkett 0:e7e395d6f1fc 35 void button_clicked() {
Jenny Plunkett 0:e7e395d6f1fc 36 clicked = true;
Jenny Plunkett 0:e7e395d6f1fc 37 count += 1;
Jenny Plunkett 2:ba90e563a0d0 38 char val[32];
Jenny Plunkett 2:ba90e563a0d0 39 sprintf(val, "# of clicks = %d", count);
Jenny Plunkett 2:ba90e563a0d0 40 lcd_print(val);
Jenny Plunkett 0:e7e395d6f1fc 41 }
Jenny Plunkett 0:e7e395d6f1fc 42
Jenny Plunkett 0:e7e395d6f1fc 43 int main() {
Jenny Plunkett 0:e7e395d6f1fc 44
Jenny Plunkett 0:e7e395d6f1fc 45 // MAIN CODE HERE
Jenny Plunkett 4:0160ae8489f3 46
Jenny Plunkett 2:ba90e563a0d0 47 lcd_print("Connecting...");
Jenny Plunkett 0:e7e395d6f1fc 48 int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
Jenny Plunkett 0:e7e395d6f1fc 49 if (ret != 0) {
Jenny Plunkett 2:ba90e563a0d0 50 lcd_print("Connection error.");
Jenny Plunkett 0:e7e395d6f1fc 51 return -1;
Jenny Plunkett 0:e7e395d6f1fc 52 }
Jenny Plunkett 2:ba90e563a0d0 53 lcd_print("Successfully connected!");
Jenny Plunkett 0:e7e395d6f1fc 54
Jenny Plunkett 0:e7e395d6f1fc 55 button.rise(&button_clicked);
Jenny Plunkett 0:e7e395d6f1fc 56
Jenny Plunkett 0:e7e395d6f1fc 57 while (true) {
Jenny Plunkett 4:0160ae8489f3 58 // WHILE LOOP CODE HERE
Jenny Plunkett 4:0160ae8489f3 59
Jenny Plunkett 0:e7e395d6f1fc 60 if (clicked) {
Jenny Plunkett 0:e7e395d6f1fc 61 clicked = false;
Jenny Plunkett 0:e7e395d6f1fc 62 char body[140];
Jenny Plunkett 0:e7e395d6f1fc 63 char event_name[] = "Button Clicked";
Jenny Plunkett 0:e7e395d6f1fc 64 NetworkInterface* net = &wifi;
Jenny Plunkett 4:0160ae8489f3 65 HttpRequest* request = new HttpRequest(net, HTTP_POST, "http://maker.ifttt.com/trigger/mbed_connect/with/key/SECRET_KEY_HERE");
Jenny Plunkett 0:e7e395d6f1fc 66 request->set_header("Content-Type", "application/json");
Jenny Plunkett 0:e7e395d6f1fc 67 sprintf(body, "{\"value1\":\"%s\", \"value2\":\"%d\"}", event_name, count);
Jenny Plunkett 0:e7e395d6f1fc 68 HttpResponse* response = request->send(body, strlen(body));
Jenny Plunkett 0:e7e395d6f1fc 69 delete request;
Jenny Plunkett 0:e7e395d6f1fc 70 }
Jenny Plunkett 0:e7e395d6f1fc 71 }
Jenny Plunkett 0:e7e395d6f1fc 72
Jenny Plunkett 0:e7e395d6f1fc 73 }