Ambient library. It provides "set" function to set data to a packet and "send" function to send the packet to the Ambient server. It also provides "bulk_send" function to send multiple data. (Japanese: IoT用のクラウドサービス「Ambient」のデーター送信ライブラリーです。Ambientはマイコンから送られたセンサーデーターを受信し、蓄積し、可視化(グラフ化)します。http://ambidata.io)

Dependents:   AmbientExampleSITB AmbientHeartRateMonitor AmbientHeartBeat AmbientExampleSITB_ws ... more

Committer:
AmbientData
Date:
Mon Jun 06 11:41:56 2016 +0000
Revision:
1:dcc2714b5bcb
Parent:
0:7dca16f75bae
Child:
3:a724fe60de46
Change Class name from AMBIENT to Ambient

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AmbientData 1:dcc2714b5bcb 1 #ifndef Ambient_h
AmbientData 1:dcc2714b5bcb 2 #define Ambient_h
AmbientData 0:7dca16f75bae 3
AmbientData 0:7dca16f75bae 4 #include "mbed.h"
AmbientData 0:7dca16f75bae 5 #include "TCPSocketConnection.h"
AmbientData 0:7dca16f75bae 6
AmbientData 0:7dca16f75bae 7 #define AMBIENT_WRITEKEY_SIZE 18
AmbientData 0:7dca16f75bae 8 #define AMBIENT_MAX_RETRY 5
AmbientData 0:7dca16f75bae 9 #define AMBIENT_DATA_SIZE 24
AmbientData 0:7dca16f75bae 10 #define AMBIENT_NUM_PARAMS 11
AmbientData 0:7dca16f75bae 11
AmbientData 1:dcc2714b5bcb 12 /** Ambient class
AmbientData 0:7dca16f75bae 13 * to send data to Ambient service.
AmbientData 0:7dca16f75bae 14 *
AmbientData 0:7dca16f75bae 15 * Exsample:
AmbientData 0:7dca16f75bae 16 * @code
AmbientData 0:7dca16f75bae 17 * #include "mbed.h"
AmbientData 0:7dca16f75bae 18 * #include "EthernetInterface.h"
AmbientData 0:7dca16f75bae 19 * #include "Ambient.h"
AmbientData 0:7dca16f75bae 20 * #include "HDC1000.h"
AmbientData 0:7dca16f75bae 21 *
AmbientData 0:7dca16f75bae 22 * unsigned int channelId = 100;
AmbientData 0:7dca16f75bae 23 * const char* writeKey = "ライトキー";
AmbientData 1:dcc2714b5bcb 24 * Ambient ambient;
AmbientData 0:7dca16f75bae 25 *
AmbientData 0:7dca16f75bae 26 * HDC1000 hdc1000(p9,p10);
AmbientData 0:7dca16f75bae 27 *
AmbientData 0:7dca16f75bae 28 * int main() {
AmbientData 0:7dca16f75bae 29 * printf("start\r\n");
AmbientData 0:7dca16f75bae 30 *
AmbientData 0:7dca16f75bae 31 * EthernetInterface eth;
AmbientData 0:7dca16f75bae 32 * eth.init(); //Use DHCP
AmbientData 0:7dca16f75bae 33 * eth.connect();
AmbientData 0:7dca16f75bae 34 *
AmbientData 0:7dca16f75bae 35 * TCPSocketConnection socket;
AmbientData 0:7dca16f75bae 36 * ambient.init(channelId, writeKey, &socket);
AmbientData 0:7dca16f75bae 37 *
AmbientData 0:7dca16f75bae 38 * printf("Ambient send to ch: %d\r\n", channelId);
AmbientData 0:7dca16f75bae 39 *
AmbientData 0:7dca16f75bae 40 * while (true) {
AmbientData 0:7dca16f75bae 41 * float temp, humid;
AmbientData 0:7dca16f75bae 42 * char tempbuf[12], humidbuf[12];
AmbientData 0:7dca16f75bae 43 *
AmbientData 0:7dca16f75bae 44 * hdc1000.get();
AmbientData 0:7dca16f75bae 45 * temp = hdc1000.temperature();
AmbientData 0:7dca16f75bae 46 * humid = hdc1000.humidity();
AmbientData 0:7dca16f75bae 47 *
AmbientData 0:7dca16f75bae 48 * sprintf(tempbuf, "%2.1f", temp);
AmbientData 0:7dca16f75bae 49 * ambient.set(1, tempbuf);
AmbientData 0:7dca16f75bae 50 * sprintf(humidbuf, "%2.0f", humid);
AmbientData 0:7dca16f75bae 51 * ambient.set(2, humidbuf);
AmbientData 0:7dca16f75bae 52 * printf("Temp: %s C, Humid: %s %%\r\n", tempbuf, humidbuf);
AmbientData 0:7dca16f75bae 53 *
AmbientData 0:7dca16f75bae 54 * ambient.send();
AmbientData 0:7dca16f75bae 55 *
AmbientData 0:7dca16f75bae 56 * wait(30.0);
AmbientData 0:7dca16f75bae 57 * }
AmbientData 0:7dca16f75bae 58 * }
AmbientData 0:7dca16f75bae 59 * @endcode
AmbientData 0:7dca16f75bae 60 */
AmbientData 1:dcc2714b5bcb 61 class Ambient
AmbientData 0:7dca16f75bae 62 {
AmbientData 0:7dca16f75bae 63 public:
AmbientData 1:dcc2714b5bcb 64 /** Create Ambient instance
AmbientData 0:7dca16f75bae 65 */
AmbientData 1:dcc2714b5bcb 66 Ambient(void);
AmbientData 0:7dca16f75bae 67
AmbientData 0:7dca16f75bae 68 /** Initialize the instance
AmbientData 0:7dca16f75bae 69 * @param channelId Initialize the Ambient instance with channelId.
AmbientData 0:7dca16f75bae 70 * @param writeKey and writeKey
AmbientData 0:7dca16f75bae 71 * @param s and pointer to socket
AmbientData 0:7dca16f75bae 72 * @returns
AmbientData 0:7dca16f75bae 73 * true on success,
AmbientData 0:7dca16f75bae 74 * false on error
AmbientData 0:7dca16f75bae 75 */
AmbientData 0:7dca16f75bae 76 bool init(unsigned int channelId, const char * writeKey, TCPSocketConnection * s, int dev = 0);
AmbientData 0:7dca16f75bae 77 /** Set data on field-th field of payload.
AmbientData 0:7dca16f75bae 78 * @param field index of payload (1 to 8)
AmbientData 0:7dca16f75bae 79 * @param data data
AmbientData 0:7dca16f75bae 80 * @returns
AmbientData 0:7dca16f75bae 81 * true on success,
AmbientData 0:7dca16f75bae 82 * false on error
AmbientData 0:7dca16f75bae 83 */
AmbientData 0:7dca16f75bae 84 bool set(int field, char * data);
AmbientData 0:7dca16f75bae 85 /** Clear data on field-th field of payload.
AmbientData 0:7dca16f75bae 86 * @param field index of payload (1 to 8)
AmbientData 0:7dca16f75bae 87 * @returns
AmbientData 0:7dca16f75bae 88 * true on success,
AmbientData 0:7dca16f75bae 89 * false on error
AmbientData 0:7dca16f75bae 90 */
AmbientData 0:7dca16f75bae 91 bool clear(int field);
AmbientData 0:7dca16f75bae 92
AmbientData 0:7dca16f75bae 93 /** Send data to Ambient
AmbientData 0:7dca16f75bae 94 */
AmbientData 0:7dca16f75bae 95 bool send(void);
AmbientData 0:7dca16f75bae 96
AmbientData 0:7dca16f75bae 97 private:
AmbientData 0:7dca16f75bae 98
AmbientData 0:7dca16f75bae 99 TCPSocketConnection * s;
AmbientData 0:7dca16f75bae 100 unsigned int channelId;
AmbientData 0:7dca16f75bae 101 char writeKey[AMBIENT_WRITEKEY_SIZE];
AmbientData 0:7dca16f75bae 102 int dev;
AmbientData 0:7dca16f75bae 103 char host[18];
AmbientData 0:7dca16f75bae 104 int port;
AmbientData 0:7dca16f75bae 105
AmbientData 0:7dca16f75bae 106 struct {
AmbientData 0:7dca16f75bae 107 int set;
AmbientData 0:7dca16f75bae 108 char item[AMBIENT_DATA_SIZE];
AmbientData 0:7dca16f75bae 109 } data[AMBIENT_NUM_PARAMS];
AmbientData 0:7dca16f75bae 110 };
AmbientData 0:7dca16f75bae 111
AmbientData 1:dcc2714b5bcb 112 #endif // Ambient_h