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@5:597c63117d91, 2017-11-17 (annotated)
- 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?
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 |
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 | } |