温度センサLM75BとWi-FiモジュールESP-WROOM-02をmbed LPC1114FN28に繋げて、温度をIFTTTのMaker Channelに出力するプログラム

Dependencies:   LM75B mbed

Committer:
jksoft
Date:
Sun May 15 11:47:02 2016 +0000
Revision:
0:53a512d5a7ba
??

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:53a512d5a7ba 1 /* mbed Microcontroller Library
jksoft 0:53a512d5a7ba 2 * Copyright (c) 2006-2013 ARM Limited
jksoft 0:53a512d5a7ba 3 *
jksoft 0:53a512d5a7ba 4 * Licensed under the Apache License, Version 2.0 (the "License");
jksoft 0:53a512d5a7ba 5 * you may not use this file except in compliance with the License.
jksoft 0:53a512d5a7ba 6 * You may obtain a copy of the License at
jksoft 0:53a512d5a7ba 7 *
jksoft 0:53a512d5a7ba 8 * http://www.apache.org/licenses/LICENSE-2.0
jksoft 0:53a512d5a7ba 9 *
jksoft 0:53a512d5a7ba 10 * Unless required by applicable law or agreed to in writing, software
jksoft 0:53a512d5a7ba 11 * distributed under the License is distributed on an "AS IS" BASIS,
jksoft 0:53a512d5a7ba 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
jksoft 0:53a512d5a7ba 13 * See the License for the specific language governing permissions and
jksoft 0:53a512d5a7ba 14 * limitations under the License.
jksoft 0:53a512d5a7ba 15 */
jksoft 0:53a512d5a7ba 16 #ifndef IFTTT_H
jksoft 0:53a512d5a7ba 17 #define IFTTT_H
jksoft 0:53a512d5a7ba 18
jksoft 0:53a512d5a7ba 19 #include "mbed.h"
jksoft 0:53a512d5a7ba 20 #include "TCPSocketConnection.h"
jksoft 0:53a512d5a7ba 21
jksoft 0:53a512d5a7ba 22 #define IFTTT_FAIL -1
jksoft 0:53a512d5a7ba 23 #define IFTTT_SUCCESS 0
jksoft 0:53a512d5a7ba 24
jksoft 0:53a512d5a7ba 25 #define IFTTT_MAX_RETRY 5
jksoft 0:53a512d5a7ba 26 #define IFTTT_MAX_SIZE_SECRETKEY 50
jksoft 0:53a512d5a7ba 27 #define IFTTT_MAX_SIZE_EVENTNAME 50
jksoft 0:53a512d5a7ba 28 #define IFTTT_MAX_SIZE_STRING 512
jksoft 0:53a512d5a7ba 29
jksoft 0:53a512d5a7ba 30 #define IFTTT_IP "maker.ifttt.com"
jksoft 0:53a512d5a7ba 31 #define IFTTT_PORT 80
jksoft 0:53a512d5a7ba 32
jksoft 0:53a512d5a7ba 33 #define IFTTT_GET 0
jksoft 0:53a512d5a7ba 34 #define IFTTT_POST 1
jksoft 0:53a512d5a7ba 35
jksoft 0:53a512d5a7ba 36
jksoft 0:53a512d5a7ba 37 /**
jksoft 0:53a512d5a7ba 38 * The IFTTT class (if this then that)
jksoft 0:53a512d5a7ba 39 */
jksoft 0:53a512d5a7ba 40 class IFTTT
jksoft 0:53a512d5a7ba 41 {
jksoft 0:53a512d5a7ba 42
jksoft 0:53a512d5a7ba 43 public:
jksoft 0:53a512d5a7ba 44
jksoft 0:53a512d5a7ba 45 /**
jksoft 0:53a512d5a7ba 46 * Constructor, initialize the Event Name and Secret Key to be used
jksoft 0:53a512d5a7ba 47 *
jksoft 0:53a512d5a7ba 48 * @param event event name of trigger
jksoft 0:53a512d5a7ba 49 * @param key secret key provided by the maker channel for your event
jksoft 0:53a512d5a7ba 50 */
jksoft 0:53a512d5a7ba 51 IFTTT(const char * event, const char * key, TCPSocketConnection * s = NULL);
jksoft 0:53a512d5a7ba 52
jksoft 0:53a512d5a7ba 53 /**
jksoft 0:53a512d5a7ba 54 * Add ingredients (values) to be sent to maker.ifttt.com
jksoft 0:53a512d5a7ba 55 *
jksoft 0:53a512d5a7ba 56 * @param v1 value 1 to send
jksoft 0:53a512d5a7ba 57 * @param v2 value 2 to send
jksoft 0:53a512d5a7ba 58 * @param v3 value 3 to send
jksoft 0:53a512d5a7ba 59 *
jksoft 0:53a512d5a7ba 60 * @return true if successful, false if failed
jksoft 0:53a512d5a7ba 61 */
jksoft 0:53a512d5a7ba 62 bool addIngredients(char * v1 = NULL, char * v2 = NULL, char * v3 = NULL);
jksoft 0:53a512d5a7ba 63
jksoft 0:53a512d5a7ba 64 /**
jksoft 0:53a512d5a7ba 65 * Add ingredients (values) to be sent to maker.ifttt.com
jksoft 0:53a512d5a7ba 66 *
jksoft 0:53a512d5a7ba 67 * @param v1 value 1 to send
jksoft 0:53a512d5a7ba 68 * @param v2 value 2 to send
jksoft 0:53a512d5a7ba 69 * @param v3 value 3 to send
jksoft 0:53a512d5a7ba 70 *
jksoft 0:53a512d5a7ba 71 * @return true if successful, false if failed
jksoft 0:53a512d5a7ba 72 */
jksoft 0:53a512d5a7ba 73 bool addIngredients(int v1 = NULL, int v2 = NULL, int v3 = NULL);
jksoft 0:53a512d5a7ba 74
jksoft 0:53a512d5a7ba 75 /**
jksoft 0:53a512d5a7ba 76 * Send data via POST or GET to maker.ifttt.com
jksoft 0:53a512d5a7ba 77 *
jksoft 0:53a512d5a7ba 78 * @param iftttType specifies how to send the data. POST by default, GET optional.
jksoft 0:53a512d5a7ba 79 *
jksoft 0:53a512d5a7ba 80 * @return true if successful, false if failed
jksoft 0:53a512d5a7ba 81 */
jksoft 0:53a512d5a7ba 82 bool trigger(int triggerType = IFTTT_POST);
jksoft 0:53a512d5a7ba 83
jksoft 0:53a512d5a7ba 84 private:
jksoft 0:53a512d5a7ba 85
jksoft 0:53a512d5a7ba 86 /**
jksoft 0:53a512d5a7ba 87 * Send data to maker.ifttt.com via GET Query parameters
jksoft 0:53a512d5a7ba 88 *
jksoft 0:53a512d5a7ba 89 * @param name explanation
jksoft 0:53a512d5a7ba 90 *
jksoft 0:53a512d5a7ba 91 * @return true if successful, false if failed
jksoft 0:53a512d5a7ba 92 */
jksoft 0:53a512d5a7ba 93 bool get();
jksoft 0:53a512d5a7ba 94
jksoft 0:53a512d5a7ba 95 /**
jksoft 0:53a512d5a7ba 96 * Send data to maker.ifttt.com via POST payload, encoded as JSON
jksoft 0:53a512d5a7ba 97 *
jksoft 0:53a512d5a7ba 98 * @param name explanation
jksoft 0:53a512d5a7ba 99 *
jksoft 0:53a512d5a7ba 100 * @return true if successful, false if failed
jksoft 0:53a512d5a7ba 101 */
jksoft 0:53a512d5a7ba 102 bool post();
jksoft 0:53a512d5a7ba 103
jksoft 0:53a512d5a7ba 104 TCPSocketConnection * socket;
jksoft 0:53a512d5a7ba 105 char eventName[IFTTT_MAX_SIZE_EVENTNAME];
jksoft 0:53a512d5a7ba 106 char secretKey[IFTTT_MAX_SIZE_SECRETKEY];
jksoft 0:53a512d5a7ba 107 const char * v1;
jksoft 0:53a512d5a7ba 108 const char * v2;
jksoft 0:53a512d5a7ba 109 const char * v3;
jksoft 0:53a512d5a7ba 110 const char * host;
jksoft 0:53a512d5a7ba 111 int port;
jksoft 0:53a512d5a7ba 112
jksoft 0:53a512d5a7ba 113 };
jksoft 0:53a512d5a7ba 114
jksoft 0:53a512d5a7ba 115 #endif // IFTTT_H