IoT用クラウドサービス「Ambient」と心拍センサーを使った心拍モニターです。心拍センサー「Pulse Sensor Amped」の値をmbed「Simple IoT Board」で読み、「Ambient」に送信してモニターします。 https://ambidata.io
Dependencies: AmbientLib SimpleIoTBoardLib mbed
Diff: main.cpp
- Revision:
- 0:16d0c9ce5afb
- Child:
- 2:dd2248c73ad5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sat Jun 04 02:35:48 2016 +0000
@@ -0,0 +1,53 @@
+/*
+ * Every 5 seconds, send the BPM value to Ambient.
+ * Turn on and off the LED.
+ */
+#include "mbed.h"
+#include "math.h"
+#include "ESP8266Interface.h"
+#include "TCPSocketConnection.h"
+#include "SoftSerialSendOnry.h"
+#include "Ambient.h"
+
+ESP8266Interface wifi(dp16,dp15,dp4,"ssid","password",115200); // TX,RX,Reset,SSID,Password,Baud
+
+SoftSerialSendOnry pc(dp10);
+
+unsigned int channelId = 100;
+const char* writeKey = "ライトキー";
+AMBIENT ambient;
+
+extern void interruptSetup();
+
+// Volatile Variables, used in the interrupt service routine!
+extern volatile bool QS; // becomes true when Arduoino finds a beat.
+extern volatile int BPM; // int that holds raw Analog in 0. updated every 2mS
+
+int main() {
+ TCPSocketConnection socket;
+
+ pc.baud(9600);
+
+ wifi.init(); //Reset
+ wifi.connect(); //Use DHCP
+ pc.printf("IP Address is %s\r\n", wifi.getIPAddress());
+ ambient.init(channelId, writeKey, &socket);
+
+ interruptSetup();
+
+ while (true) {
+ char bpmbuf[12];
+
+ if (QS == true){ // A Heartbeat Was Found
+ // BPM and IBI have been Determined
+ // Quantified Self "QS" true when mbed finds a heartbeat
+ sprintf(bpmbuf, "%3d", BPM);
+ pc.printf("BPM:%s\r\n", bpmbuf);
+ ambient.set(1, bpmbuf);
+ ambient.send();
+
+ QS = false; // reset the Quantified Self flag for next time
+ }
+ wait(5); // take a break
+ }
+}
Takehiko Shimojima