Simple IoT boardと電力計測モジュールINA226PRCを使ったサンプルプログラムです。計測したデータをIFTTTのMakerチャネルに送っています。 サンプリングは0.1秒刻みで、10秒間(100回計測)したら電圧、電流、電力それぞれについて平均、最大値、最小値を計算してIFTTTに送る仕様になっています。

Dependencies:   INA226PRC SimpleIoTBoardLib mbed

Committer:
leibun
Date:
Wed Dec 09 16:07:35 2015 +0000
Revision:
1:0dc207174476
Parent:
0:0b921803a9ba
First commit.

Who changed what in which revision?

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