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
Diff: Ambient.h
- Revision:
- 0:7dca16f75bae
- Child:
- 1:dcc2714b5bcb
diff -r 000000000000 -r 7dca16f75bae Ambient.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Ambient.h Sat May 07 01:40:02 2016 +0000
@@ -0,0 +1,112 @@
+#ifndef AMBIENT_H
+#define AMBIENT_H
+
+#include "mbed.h"
+#include "TCPSocketConnection.h"
+
+#define AMBIENT_WRITEKEY_SIZE 18
+#define AMBIENT_MAX_RETRY 5
+#define AMBIENT_DATA_SIZE 24
+#define AMBIENT_NUM_PARAMS 11
+
+/** AMBIENT class
+ * to send data to Ambient service.
+ *
+ * Exsample:
+ * @code
+ * #include "mbed.h"
+ * #include "EthernetInterface.h"
+ * #include "Ambient.h"
+ * #include "HDC1000.h"
+ *
+ * unsigned int channelId = 100;
+ * const char* writeKey = "ライトキー";
+ * AMBIENT ambient;
+ *
+ * HDC1000 hdc1000(p9,p10);
+ *
+ * int main() {
+ * printf("start\r\n");
+ *
+ * EthernetInterface eth;
+ * eth.init(); //Use DHCP
+ * eth.connect();
+ *
+ * TCPSocketConnection socket;
+ * ambient.init(channelId, writeKey, &socket);
+ *
+ * printf("Ambient send to ch: %d\r\n", channelId);
+ *
+ * while (true) {
+ * float temp, humid;
+ * char tempbuf[12], humidbuf[12];
+ *
+ * hdc1000.get();
+ * temp = hdc1000.temperature();
+ * humid = hdc1000.humidity();
+ *
+ * sprintf(tempbuf, "%2.1f", temp);
+ * ambient.set(1, tempbuf);
+ * sprintf(humidbuf, "%2.0f", humid);
+ * ambient.set(2, humidbuf);
+ * printf("Temp: %s C, Humid: %s %%\r\n", tempbuf, humidbuf);
+ *
+ * ambient.send();
+ *
+ * wait(30.0);
+ * }
+ * }
+ * @endcode
+ */
+class AMBIENT
+{
+public:
+ /** Create AMBIENT instance
+ */
+ AMBIENT(void);
+
+ /** Initialize the instance
+ * @param channelId Initialize the Ambient instance with channelId.
+ * @param writeKey and writeKey
+ * @param s and pointer to socket
+ * @returns
+ * true on success,
+ * false on error
+ */
+ bool init(unsigned int channelId, const char * writeKey, TCPSocketConnection * s, int dev = 0);
+ /** Set data on field-th field of payload.
+ * @param field index of payload (1 to 8)
+ * @param data data
+ * @returns
+ * true on success,
+ * false on error
+ */
+ bool set(int field, char * data);
+ /** Clear data on field-th field of payload.
+ * @param field index of payload (1 to 8)
+ * @returns
+ * true on success,
+ * false on error
+ */
+ bool clear(int field);
+
+ /** Send data to Ambient
+ */
+ bool send(void);
+
+private:
+
+ TCPSocketConnection * s;
+ unsigned int channelId;
+ char writeKey[AMBIENT_WRITEKEY_SIZE];
+ int dev;
+ char host[18];
+ int port;
+
+ struct {
+ int set;
+ char item[AMBIENT_DATA_SIZE];
+ } data[AMBIENT_NUM_PARAMS];
+};
+
+#endif // AMBIENT_H
\ No newline at end of file
Takehiko Shimojima
Ambient