IoT用クラウドサービス「Ambient」と心拍センサーを使った心拍モニターです。心拍センサー「Pulse Sensor Amped」の値をmbed「Simple IoT Board」で読み、「Ambient」に送信してモニターします。 https://ambidata.io

Dependencies:   AmbientLib SimpleIoTBoardLib mbed

Committer:
AmbientData
Date:
Mon Jun 13 12:08:40 2016 +0000
Revision:
4:ec1aa2beefce
Parent:
2:dd2248c73ad5
AmbientLib updated

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AmbientData 0:16d0c9ce5afb 1 /*
AmbientData 0:16d0c9ce5afb 2 * Every 5 seconds, send the BPM value to Ambient.
AmbientData 0:16d0c9ce5afb 3 * Turn on and off the LED.
AmbientData 0:16d0c9ce5afb 4 */
AmbientData 0:16d0c9ce5afb 5 #include "mbed.h"
AmbientData 0:16d0c9ce5afb 6 #include "math.h"
AmbientData 0:16d0c9ce5afb 7 #include "ESP8266Interface.h"
AmbientData 0:16d0c9ce5afb 8 #include "TCPSocketConnection.h"
AmbientData 0:16d0c9ce5afb 9 #include "SoftSerialSendOnry.h"
AmbientData 0:16d0c9ce5afb 10 #include "Ambient.h"
AmbientData 0:16d0c9ce5afb 11
AmbientData 0:16d0c9ce5afb 12 ESP8266Interface wifi(dp16,dp15,dp4,"ssid","password",115200); // TX,RX,Reset,SSID,Password,Baud
AmbientData 0:16d0c9ce5afb 13
AmbientData 0:16d0c9ce5afb 14 SoftSerialSendOnry pc(dp10);
AmbientData 0:16d0c9ce5afb 15
AmbientData 0:16d0c9ce5afb 16 unsigned int channelId = 100;
AmbientData 0:16d0c9ce5afb 17 const char* writeKey = "ライトキー";
AmbientData 2:dd2248c73ad5 18 Ambient ambient;
AmbientData 0:16d0c9ce5afb 19
AmbientData 0:16d0c9ce5afb 20 extern void interruptSetup();
AmbientData 0:16d0c9ce5afb 21
AmbientData 0:16d0c9ce5afb 22 // Volatile Variables, used in the interrupt service routine!
AmbientData 0:16d0c9ce5afb 23 extern volatile bool QS; // becomes true when Arduoino finds a beat.
AmbientData 0:16d0c9ce5afb 24 extern volatile int BPM; // int that holds raw Analog in 0. updated every 2mS
AmbientData 0:16d0c9ce5afb 25
AmbientData 0:16d0c9ce5afb 26 int main() {
AmbientData 0:16d0c9ce5afb 27 TCPSocketConnection socket;
AmbientData 0:16d0c9ce5afb 28
AmbientData 0:16d0c9ce5afb 29 pc.baud(9600);
AmbientData 0:16d0c9ce5afb 30
AmbientData 0:16d0c9ce5afb 31 wifi.init(); //Reset
AmbientData 0:16d0c9ce5afb 32 wifi.connect(); //Use DHCP
AmbientData 0:16d0c9ce5afb 33 pc.printf("IP Address is %s\r\n", wifi.getIPAddress());
AmbientData 0:16d0c9ce5afb 34 ambient.init(channelId, writeKey, &socket);
AmbientData 0:16d0c9ce5afb 35
AmbientData 0:16d0c9ce5afb 36 interruptSetup();
AmbientData 0:16d0c9ce5afb 37
AmbientData 0:16d0c9ce5afb 38 while (true) {
AmbientData 0:16d0c9ce5afb 39 char bpmbuf[12];
AmbientData 0:16d0c9ce5afb 40
AmbientData 0:16d0c9ce5afb 41 if (QS == true){ // A Heartbeat Was Found
AmbientData 0:16d0c9ce5afb 42 // BPM and IBI have been Determined
AmbientData 0:16d0c9ce5afb 43 // Quantified Self "QS" true when mbed finds a heartbeat
AmbientData 0:16d0c9ce5afb 44 sprintf(bpmbuf, "%3d", BPM);
AmbientData 0:16d0c9ce5afb 45 pc.printf("BPM:%s\r\n", bpmbuf);
AmbientData 0:16d0c9ce5afb 46 ambient.set(1, bpmbuf);
AmbientData 0:16d0c9ce5afb 47 ambient.send();
AmbientData 0:16d0c9ce5afb 48
AmbientData 0:16d0c9ce5afb 49 QS = false; // reset the Quantified Self flag for next time
AmbientData 0:16d0c9ce5afb 50 }
AmbientData 0:16d0c9ce5afb 51 wait(5); // take a break
AmbientData 0:16d0c9ce5afb 52 }
AmbientData 0:16d0c9ce5afb 53 }